實(shí)例詳解oracle添加唯一約束

本篇文章給大家?guī)砹岁P(guān)于oracle的相關(guān)知識,其中主要介紹了添加唯一約束的相關(guān)問題,唯一性約束指表中一個字段或者多個字段聯(lián)合起來可以唯一標(biāo)識一條記錄的約束,下面一起來看一下,希望對大家有幫助。

實(shí)例詳解oracle添加唯一約束

推薦教程:《oracle

1 目標(biāo)

用演示樣例演示怎樣創(chuàng)建、刪除、禁用和使用唯一性約束

2 什么是唯一性約束?

唯一性約束指表中一個字段或者多個字段聯(lián)合起來可以唯一標(biāo)識一條記錄的約束。

聯(lián)合字段中,可以包括空值。

注:在oracle中,唯一性約束最多能夠有32列。

唯一性約束能夠在創(chuàng)建表時或使用ALTER TABLE語句創(chuàng)建。

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

  • 主鍵(Primary Key):全部組成主鍵的列都不能包括空值。
  • 唯一性約束(Unique Constraint):假設(shè)唯一性約束由多列組成,當(dāng)中的部分列能夠包括空值。
  • Oracle中不容許在同樣列上既創(chuàng)建主鍵又創(chuàng)建唯一性約束。

4 創(chuàng)建表時定義唯一性約束

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)--創(chuàng)建表時創(chuàng)建唯一性約束 );

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) --定義復(fù)合唯一性約束 );

5 使用ALTER TABLE語法創(chuàng)建唯一性約束

1)語法

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

2)演示樣例準(zhǔn)備,先創(chuàng)建表

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

以上就是實(shí)例詳解

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊7 分享