SQL server完整性约束的操作

完整性约束:三类完整性约束
SQL server给完整性约束命名及删除完整性约束:戳这里!!!
 

本文对在创建表时或者创建表后如何设置约束条件(列级、表级)做了详细说明,希望可以帮到大家!!!

 
【注】:完整性约束条件涉及到该表的多个属性列时,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。

 

实体完整性的操作

一、创建表时,可以规定实体完整性

CREATE TABLE语句中使用PRIMARY KEY定义哪些列为主码(主键)。

需要注意:
1.主键必须包含唯一的值。
2.主键列不能包含 NULL 值。
3.每个表都应该有一个主键,并且每个表只能有一个主键。

定义为列级约束条件:

CREATE TABLE SC
(
	column_name datatype PRIMARY KEY,
	column_name datatype,
	......
);

定义为表级约束条件:

CREATE TABLE SC
(
	column_name datatype,
	column_name datatype,
	......
	PRIMARY KEY(column_name,column_name...)
);

表级约束条件中,括号中的列共同作为主键。

二、表创建好后,定义实体完整性

基本语法:

ALTER TABLE table_name
ADD PRIMARY KEY (column_name,column_name...)

需要注意的是,该列不能取空值。

 

参照完整性的操作

一、创建表时,可以定义参照完整性

CREATE TABLE语句中用FOREIGN KEY短语定义哪些列为外码。
REFERENCES短语指明这些外码参照哪些表的主码。
指定外码后,参照完整性规则自动生效。

定义为列级约束条件:

CREATE TABLE SC
(
	column_name datatype FOREIGN KEY [该列名] REFERENCES table_name(column_name),
	column_name datatype,
	......
);
//定义列级参照完整性约束时,其中[该列名]可以省略

定义为表级约束条件:

CREATE TABLE SC
(
	column_name datatype,
	column_name datatype,
	......
	FOREIGN KEY(column_name,column_name) REFERENCES table_name(column_name)
);

二、表创建好后,定义参照完整性

基本语法:

ALTER TABLE table_name
ADD FOREIGN KEY (column_name)
REFERENCES table2_name(column_name);

 

用户定义的完整性操作

一、创建表时,可以定义 用户定义的完整性

定义为列级约束条件:

CREATE TABLE SC
(
	column_name datatype NOT NULL,
	column_name datatype UNIQUE,
	column_name datatype CHECK(该列要满足的条件),
	......
);

定义为表级约束条件:

1.NOT NULL
值得注意的是:NOT NULLDEFAULT不能在表级完整性约束处定义。(有关DEFAULT大家可以自行查询)

2.UNIQUE

CREATE TABLE SC
(
	......
	UNIQUE(column_name,column_name......)
);

3.CHECK
如果CHECK约束是定义多列之间的取值约束,则只能在表级完整性约束处定义。

CREATE TABLE SC
(
	......
	CHECK(column1_name满足的条件 AND column2_name满足的条件......)
);

二、表创建好后,定义用户定义的完整性操作

1.NOT NULL

ALTER TABLE table_name 
ALTER COLUMN column datatype NOT NULL; 

2.UNIQUE

ALTER TABLE table_name
ADD UNIQUE (column_name);

3.CHECK

ALTER TABLE table_name
ADD CHECK (column_name要满足的条件);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值