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