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

Oracle UNIQUE 唯一約束完整語法與實戰範例

     編輯:Oracle 教學

Oracle UNIQUE 唯一約束完整語法與實戰範例

UNIQUE 約束確保欄位或欄位組合的值在表中**不重複**,允許 NULL (單欄位時多個 NULL 被視為不同值)。本文系統整理建立、修改、刪除、複合唯一鍵與實戰操作。

語法總覽

建表時定義 (欄位級)

CREATE TABLE table_name (
  col1 data_type,
  col2 data_type,
  ...
  [CONSTRAINT constraint_name] UNIQUE (col1, col2, ...)
);

事後新增 (ALTER TABLE)

-- 指定欄位 (單欄位唯一鍵)
ALTER TABLE table_name DROP UNIQUE (column_name);

-- 指定約束名稱 (通用,複合鍵必須用此法)
ALTER TABLE table_name DROP CONSTRAINT constraint_name;

實戰操作範例

範例 1:單欄位唯一約束

CREATE TABLE p2 (
  pid NUMBER(4),
  pname VARCHAR2(20),
  psex CHAR(2),
  CONSTRAINT p2_unique UNIQUE (pid, pname)  -- 複合鍵:pid+pname 組合唯一
);

-- 測試
INSERT INTO p2 VALUES (1, 'Alice', 'F');  -- 成功
INSERT INTO p2 VALUES (1, 'Bob', 'M');    -- 成功 (pid 相同但 pname 不同)
INSERT INTO p2 VALUES (2, 'Alice', 'F');  -- 成功 (pname 相同但 pid 不同)
INSERT INTO p2 VALUES (1, 'Alice', 'M');  -- 失敗 (pid+pname 完全相同)

範例 3:事後新增與刪除

特性UNIQUEPRIMARY KEY
允許 NULL是 (單欄位多個 NULL 視為不同)否 (隱含 NOT NULL)
每表數量多個僅一個
預設索引非叢集 (Non-unique Index)叢集/唯一索引
外鍵參考可被參考標準參考目標
語義含義業務唯一性 (Email、身分證)實體識別鍵


查詢現有唯一約束

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