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