刪除表和更改表名
刪除表非常簡單,但它是一個(gè)不可逆轉(zhuǎn)的行為。 語法: DROP TABLE [schema.] table_name [CASCADE CONSTRAINTS] 刪除表后,表上的索引、觸發(fā)器、權(quán)限、完整性約束也同時(shí)刪除。ORACLE不能刪除視圖,或其他程序單元,但oracle將標(biāo)示他們無效。如果刪除的表涉及引用主鍵或唯一關(guān)鍵字的完整性約束時(shí),那么DROP TABLE語句就必須包含CASCADE CONSTRAINTS子串。 更改表名 RENAME命令用于給表和其他數(shù)據(jù)庫對象改名。ORACLE系統(tǒng)自動(dòng)將基于舊表的完整性約束、索引、權(quán)限轉(zhuǎn)移到新表中。ORACLE同時(shí)使所有基于舊表的數(shù)據(jù)庫對象,比如視圖、程序、函數(shù)等,為不合法。 語法: RENAME old_name TO new_name; 例: SQL> RENAME orders TO purchase_orders; TABLE RENAMED 截短表 TRUNCATE命令與DROP命令相似, 但他不是刪除整個(gè)數(shù)據(jù)表,所以索引、完整性約束、觸發(fā)器、權(quán)限等都不會(huì)被刪除。缺省情況下將釋放部分表和視圖空間,如果用戶不希望釋放表空間,TRUNCATE語句中要包含REUSE STORAGE子串。TRUNCATE命令語法如下: TRUNCATE {TABLE|CLUSTER} [schema.] name {DROP|REUSE STORAGE} 例: SQL> TRUNCATE TABLE t1; TABLE truncate. 管理視圖 視圖是一個(gè)或多個(gè)表中的數(shù)據(jù)的簡化描述,用戶可以將視圖看成一個(gè)存儲(chǔ)查詢(stored query)或一個(gè)虛擬表(virtual table).查詢僅僅存儲(chǔ)在oracle數(shù)據(jù)字典中,實(shí)際的數(shù)據(jù)沒有存放在任何其它地方,所以建立視圖不用消耗其他的空間。視圖也可以隱藏復(fù)雜查詢,比如多表查詢,但用戶只能看見視圖。視圖可以有與他所基于表的列名不同的列名。用戶可以建立限制其他用戶訪問的視圖。 建立視圖 CREATE VIEW命令創(chuàng)建視圖,定義視圖的查詢可以建立在一個(gè)或多個(gè)表,或其他視圖上。查詢不能有FOR UPDATE子串,在早期的ORACLE8i版本中不支持ORDER BY子串,現(xiàn)在的版本中CREATE VIEW可以擁有ORDER BY子串。 例: SQL> CREATE VIEW TOP_EMP AS SELECT empno EMPLOYEE_ID,ename EMPLOYEE_NAME,salary FROM emp WHERE salary >2000 用戶可以在創(chuàng)建視圖的同時(shí)更改列名,方法是在視圖名后立即加上要命名的列名。重新定義視圖需要包含OR REPLACE子串。 SQL> CREATE VIEW TOP_EMP (EMPLOYEE_ID, |
|