SQL UNIQUE 约束

SQL UNIQUE
UNIQUE约束唯一标识数据库表中的每一条记录。
UNIQUE和PRIMARY KEY约束均为列或列集合提供了唯一性的保证。
PRIMARY KEY 拥有自动定义的UNIQUE约束。
请注意,每个表可以有多个UNIQUE约束,但是每个表只能有一个PRIMARY KEY 约束。


SQL UNIQYE CONSTRAINT ON CREATE TABLE
在STAFF表创建时在”IDNUMBER”列创建UNIQUE约束:
MySQL

CREATE TABLE STAFF(IDUNMBER NUMBER(6) NOT NULL,NAME VARCHAR2(20) NOT NULL,ADDRESS VARCHAR2(255),UNIQUE(IDUNMBER));

SQL Server / Oracle / MS Access:

CREATE TABLE STAFF(IDUNMBER NUMBER(6) NOT NULL UNIQUE,NAME VARCHAR2(20) NOT NULL,ADDRESS VARCHAR2(255));

如需要命名UNIQUE约束,以及为对个列定义UNIQUE约束,
MySQL / SQL Server / Oracle / MS Access

CREATE TABLE STAFF(IDUNMBER NUMBER(6) NOT NULL,NAME VARCHAR2(20) NOT NULL,ADDRESS VARCHAR2(255),CONSTRAINT UC_IDUNIQUE(IDNUMBER,NAME));

其中的“UC 是一个约束名 !上面建的是唯一约束,为了方便区别约束名一般起得有规律点比如UC(就是UNIQUE CONSTRAINT的缩写意思是唯一约束)UC 就是对表中的STAFFID 建唯一约束,强制约束IDUNMBER和NAME唯一


SQL UNIQUE CONSTRAINT ON ALTER TABLE
当表已经被创建时,需要在”IDNUMBER”l列创建UNIQUE约束:
MySQL / SQL Server / Oracle / MS Access

ASLTER TABLE STAFF ADD UNIQUE(IDNUMBER,NAME)

如需命名UNIQUE约束,并定义多个列的UNIQUE约束
MySQL / SQL Server / Oracle / MS Access

ALTER TABLE STAFF ADD CONSTRAINT UC_ID UNIQUE(IDNUMBER,NAME)

撤销UNIQUE约束
如需撤销UNIQUE约束
MySQL

ALTER TABLE STAFF DROP INDEX UC_ID  
ALTER TABLE STAFF DROP COLUMN COLUMN_NAME

SQL Server / Oracle / MS Access

ALTER TABLE STAFF DROP CONSTRAINT UC_ID

ps:不给约束起名字系统会默认起名字,通过下面的SQL查询名称:

SELECT T.*,I.INDEX_TYPE FROM USER_IND_COLUMN T,USER_INDEXES I WHERE T.INDEX_NAME = I.INDEX_NAME AND T.TABLE_NAME = I.TABLE_NAME AND T.TABLE_NAME = 'STAFF';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值