程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle之唯一性約束(UNIQUEConstraint)用法詳解

Oracle之唯一性約束(UNIQUEConstraint)用法詳解

編輯:Oracle教程

Oracle之唯一性約束(UNIQUEConstraint)用法詳解


Oracle | PL/SQL唯一索引(Unique Constraint)用法

1 目標

用示例演示如何創建、刪除、禁用和使用唯一性約束。

2 什麼是唯一性約束?

唯一性約束指表中一個字段或者多個字段聯合起來能夠唯一標識一條記錄的約束。聯合字段中,可以包含空值。

注:在Oracle中,唯一性約束最多可以有32列。

唯一性約束可以在創建表時或使用ALTER TABLE語句創建。

3 唯一性約束和主鍵的區別

 

主鍵(Primary Key):所有組成主鍵的列都不能包含空值。唯一性約束(Unique Constraint):如果唯一性約束由多列組成,其中的部分列可以包含空值。Oracle中不容許在相同列上既創建主鍵又創建唯一性約束。

 

4 創建表時定義唯一性約束

1)語法:

 

CREATE TABLE table_name
(
    column1 datatype null/not null,
    column2 datatype null/not null,
    ...
    CONSTRAINT constraint_name UNIQUE (column1, column2,...,column_n)
);

2)基於單列的唯一性約束示例:

create table tb_supplier
(
  supplier_id          number not null
 ,supplier_name        varchar2(50)
 ,contact_name         varchar2(50)
 ,CONSTRAINT tb_supplier_u1 UNIQUE (supplier_id)--創建表時創建唯一性約束
);

3)基於多列的唯一性約束示例:

create table tb_products
(
  product_id        number not null,
  product_name      number not null,
  product_type      varchar2(50),
  supplier_id       number,
  CONSTRAINT tb_products_u1 UNIQUE (product_id, product_name) --定義復合唯一性約束
);

5 使用ALTER TABLE語法創建唯一性約束

1)語法

ALTER TABLE table_name
ADD CONSTRAINT constraint_name
UNIQUE (column1, column2, ... , column_n);

2)示例准備,先創建表

drop table tb_supplier;
drop table tb_products;

create table tb_supplier
(
  supplier_id          number not null
 ,supplier_name        varchar2(50)
 ,contact_name         varchar2(50)
);

create table tb_products
(
  product_id        number not null,
  product_name      number not null,
  product_type      varchar2(50),
  supplier_id       number
);

3)基於單列的唯一性約束

alter table tb_supplier
add constraint  tb_supplier_u1
unique (supplier_id);

4)基於多列的唯一性約束

alter table tb_products
add constraint  tb_products_u1
unique (product_id,product_name);

6 禁用唯一性約束

1)語法:

ALTER TABLE table_name
DISABLE CONSTRAINT constraint_name;

2)示例:

ALTER TABLE tb_supplier
DISABLE CONSTRAINT  tb_supplier_u1;

7 使用唯一性約束

1)語法:

ALTER TABLE table_name
ENABLE CONSTRAINT constraint_name;

2)示例:

ALTER TABLE tb_supplier
ENABLE CONSTRAINT tb_supplier_u1;

8 刪除唯一性約束

1)語法:

ALTER TABLE table_name
DROP CONSTRAINT constraint_name;

2)示例:

ALTER TABLE tb_supplier DROP CONSTRAINT tb_supplier_u1;
ALTER TABLE tb_products DROP CONSTRAINT tb_products_u1;
---------------------------------------------------------------------------------------------------------

如果您們在嘗試的過程中遇到什麼問題或者我的代碼有錯誤的地方,請給予指正,非常感謝!

聯系方式:[email protected]

版權@:轉載請標明出處!
----------------------------------------------------------------------------------------------------------

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved