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

Oracle ALTER TABLE 修改表結構完整語法速查

     編輯:Oracle 資料庫基礎

掌握 Oracle ALTER TABLE 核心 DDL 操作

ALTER TABLE 是資料庫結構變更的核心指令。本文整理新增/刪除/修改欄位、重命名、主鍵約束、重組儲存等常用語法,並釐清 Oracle 與 SQL Server 語法差異,做為 DBA 開發參考手冊。

核心語法速查表

操作類別Oracle 語法範例備註
新增欄位ALTER TABLE tbl ADD (col datatype [DEFAULT val] [CONSTRAINT...]);ALTER TABLE docdsp ADD (dspcode CHAR(200));支援一次新增多欄位
刪除欄位ALTER TABLE tbl DROP COLUMN col;ALTER TABLE docdsp DROP COLUMN dspcode;12c+ 支援 DROP UNUSED COLUMNS 釋放空間
修改欄位型別/預設值ALTER TABLE tbl MODIFY (col new_datatype [DEFAULT val]);ALTER TABLE emp MODIFY (sal NUMBER(10,2) DEFAULT 0);有資料時受型別相容限制
重命名欄位ALTER TABLE tbl RENAME COLUMN old_name TO new_name;ALTER TABLE emp RENAME COLUMN sal TO salary;10g+ 支援,舊版需重建表
重命名表RENAME old_table TO new_table;RENAME emp TO employees;非 ALTER TABLE,獨立 DDL
新增主鍵ALTER TABLE tbl ADD CONSTRAINT pk_name PRIMARY KEY (col);ALTER TABLE emp ADD CONSTRAINT pk_emp PRIMARY KEY (empno);自動建立唯一索引
新增外鍵ALTER TABLE child ADD CONSTRAINT fk_name FOREIGN KEY (col) REFERENCES parent(pcol);ALTER TABLE emp ADD CONSTRAINT fk_dept FOREIGN KEY (deptno) REFERENCES dept(deptno);需父表有主鍵/唯一鍵
啟用/停用約束ALTER TABLE tbl ENABLE/DISABLE CONSTRAINT constr_name;ALTER TABLE emp DISABLE CONSTRAINT fk_dept;大量載入資料時暫停約束提升效能
移動表空間ALTER TABLE tbl MOVE TABLESPACE new_ts;ALTER TABLE big_table MOVE TABLESPACE users_large;會鎖表,建議配合 ONLINE (12c+)
壓縮表ALTER TABLE tbl MOVE COMPRESS FOR OLTP;ALTER TABLE sales MOVE COMPRESS FOR QUERY HIGH;需 Advanced Compression 授權

Oracle vs SQL Server 語法差異提醒

  • SQL Server 修改欄位用 ALTER COLUMN,Oracle 用 MODIFY
  • SQL Server 重命名用 sp_rename 預存程序,Oracle 用 RENAME COLUMN / RENAME TABLE
  • SQL Server IDENTITY 對應 Oracle Sequence/Identity Column

實務操作檢查清單

  1. 變更前備份結構與資料
  2. 確認無長時間鎖定衝突 (V$LOCKED_OBJECT)
  3. 大表操作排程在維護窗口
  4. 變更後驗證應用程式相容性
  5. 記錄變更歷程 (DDL 觸發器自動稽核)

熟練 ALTER TABLE 語法並建立標準化變更流程,是資料庫結構演進的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved