表為關聯資料庫核心儲存結構。Oracle 8 引入分區表/物件表,8i 引入暫存表。建表需定義表名、欄位、資料類型與大小。
CREATE TABLE PRODUCTS(
PROD_ID NUMBER(4),
PROD_NAME VARCHAR2(20),
STOCK_QTY NUMBER(5,3)
);
CREATE TABLE EMP AS SELECT * FROM EMPLOYEE;
CREATE TABLE Y AS SELECT * FROM X WHERE NO=2;
-- 注意:涉及 LONG 型別時 CTAS 失效
ALTER TABLE ORDERS ADD ORDER_DATE DATE;
-- 既有列新欄位值為 NULL
ALTER TABLE ORDERS MODIFY (QUANTITY NUMBER(10,3), STATUS VARCHAR2(15));
-- 規則:
-- 字元型可增長、數值型可增精度
-- 縮減長度/精度需該欄全 NULL
-- 變更資料型別需該欄全 NULL
-- 數值精度不可降低
ALTER TABLE T DROP {COLUMN COL_NAME | (COL1, COL2)} [CASCADE CONSTRAINTS];
-- 同步刪除相關索引與約束
-- CASCADE CONSTRAINTS:若為多欄約束一部分,整個約束連帶刪除
ALTER TABLE T SET UNUSED {COLUMN COL_NAME | (COL1, COL2)} [CASCADE CONSTRAINTS];
-- 不刪資料、不釋放空間、視圖/字典隱藏、名稱可重用
-- 索引、約束、統計資訊同步刪除
ALTER TABLE T DROP {UNUSED COLUMNS | COLUMNS CONTINUE};