本篇文章給大家?guī)砹岁P(guān)于Oracle的相關(guān)知識(shí),其中主要介紹了添加唯一約束的相關(guān)問題,唯一性約束指表中一個(gè)字段或者多個(gè)字段聯(lián)合起來可以唯一標(biāo)識(shí)一條記錄的約束,下面一起來看一下,希望對(duì)大家有幫助。
推薦教程:《Oracle視頻教程》
1 目標(biāo)
用演示樣例演示怎樣創(chuàng)建、刪除、禁用和使用唯一性約束
2 什么是唯一性約束?
唯一性約束指表中一個(gè)字段或者多個(gè)字段聯(lián)合起來可以唯一標(biāo)識(shí)一條記錄的約束。
聯(lián)合字段中,可以包括空值。
注:在Oracle中,唯一性約束最多能夠有32列。
唯一性約束能夠在創(chuàng)建表時(shí)或使用ALTER TABLE語句創(chuàng)建。
3 唯一性約束和主鍵的差別
- 主鍵(Primary Key):全部組成主鍵的列都不能包括空值。
- 唯一性約束(Unique Constraint):假設(shè)唯一性約束由多列組成,當(dāng)中的部分列能夠包括空值。
- Oracle中不容許在同樣列上既創(chuàng)建主鍵又創(chuàng)建唯一性約束。
4 創(chuàng)建表時(shí)定義唯一性約束
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)建表時(shí)創(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教程》