首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 表管理核心技術:建立、修改欄位、刪除欄位與標記未用

     編輯:Oracle 資料庫基礎

表基礎

表為關聯資料庫核心儲存結構。Oracle 8 引入分區表/物件表,8i 引入暫存表。建表需定義表名、欄位、資料類型與大小。

CREATE TABLE PRODUCTS(
  PROD_ID NUMBER(4),
  PROD_NAME VARCHAR2(20),
  STOCK_QTY NUMBER(5,3)
);

命名規則

  • 最長 30 字元
  • 首字母為字母
  • 可含數字、底線、#、$
  • 盡量語意化命名

以查詢結果建表 (CTAS)

CREATE TABLE EMP AS SELECT * FROM EMPLOYEE;
CREATE TABLE Y AS SELECT * FROM X WHERE NO=2;
-- 注意:涉及 LONG 型別時 CTAS 失效

修改表定義 (ALTER TABLE)

1. 新增欄位

ALTER TABLE ORDERS ADD ORDER_DATE DATE;
-- 既有列新欄位值為 NULL

2. 修改欄位屬性

ALTER TABLE ORDERS MODIFY (QUANTITY NUMBER(10,3), STATUS VARCHAR2(15));
-- 規則:
-- 字元型可增長、數值型可增精度
-- 縮減長度/精度需該欄全 NULL
-- 變更資料型別需該欄全 NULL
-- 數值精度不可降低

3. 刪除欄位

ALTER TABLE T DROP {COLUMN COL_NAME | (COL1, COL2)} [CASCADE CONSTRAINTS];
-- 同步刪除相關索引與約束
-- CASCADE CONSTRAINTS:若為多欄約束一部分,整個約束連帶刪除

4. 標記為未用欄位 (避免大表刪除鎖定過久)

ALTER TABLE T SET UNUSED {COLUMN COL_NAME | (COL1, COL2)} [CASCADE CONSTRAINTS];
-- 不刪資料、不釋放空間、視圖/字典隱藏、名稱可重用
-- 索引、約束、統計資訊同步刪除

5. 真正刪除未用欄位

ALTER TABLE T DROP {UNUSED COLUMNS | COLUMNS CONTINUE};
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved