首頁  >  文章  >  資料庫  >  實例詳解oracle添加唯一約束

實例詳解oracle添加唯一約束

WBOY
WBOY轉載
2022-04-13 18:59:465379瀏覽

本篇文章為大家帶來了關於Oracle的相關知識,其中主要介紹了添加唯一約束的相關問題,唯一性約束指表中一個字段或者多個字段聯合起來可以唯一標識一筆記錄的約束,下面一起來看一下,希望對大家有幫助。

實例詳解oracle添加唯一約束

推薦教學:《Oracle影片教學

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 tb_supplier
ENABLE CONSTRAINT tb_supplier_u1;

2)示範範例:

ALTER TABLE tb_supplier
ENABLE CONSTRAINT tb_supplier_u1;

7刪除唯一性約束

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;

推薦教學:《Oracle教學

以上是實例詳解oracle添加唯一約束的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除