SQLServer数据库六⼤约束⼀、数据完整性设计
数据完整性就是确保数据库中数据的⼀致性和正确性
数据完整性包括数据的完整性和参照的完整性
⼆、SQL Server数据完整性
1. PRIMARY KEY约束
2. FOREIGN KEY约束
3. UNIQUE约束
4. CHECK约束
5. DEFAULT约束
6. 允许空值
三、SQL Server六⼤约束
约束名称主键约束
(PRIMARY KEY)
唯⼀约束(UNIQUE)
外键约束
(FOREIGN KEY)
检查约束
(CHECK)
⾮空约束(NOT
NULL)
默认值约束
(DEFAULT)
定义/特征在表中常有⼀列或多
列的组合,其值能唯
⼀标识表中的每⼀
⾏。这样的⼀列或多
列成为表的主键
(Primary Key)。⼀
个表只能有⼀个主
键,⽽且主键约束中
的列不能为空值。
UNIQUE约束⽤于确保表中的两
个数据⾏在⾮主键中没有相同的
列值。与PRIMARY KEY约束
类似,UNIQUE约束也强制唯⼀
性,但UNIQUE约束⽤于⾮主键
的⼀列或多列组合,且⼀个表可
以定义多个UNIQUE约束,另外
UNIQUE约束可以⽤于定义多列
组合。
外键(Foreign Key)
是⽤于建⽴和加强两
个表(主表与从表)的
⼀列或多列数据之间
的连接的。创建约束
的顺序是先定义主表
的主键,再对从表定
义外键约束。
CHECK约束⽤于
限制输⼊⼀列或多
列的值的范围,通
过逻辑表达式来判
断数据的有效性。
⼀个列的输⼊内容
必须满⾜CHECK
约束的条件,否则
数据⽆法正常输
⼊。
确定这个字段中的数
据必须不能为空。
若在表中某列定
义了DEFAULT
约束,⽤户在插
⼊新的数据⾏
时,如果该列没
有指定数据,那
么系统将默认值
赋给该列,当然
该默认值也可以
是空值
(NULL)。
作⽤确保主键所对应的列
没有空值或没有重复
的值。
确保在⾮主键列中不输⼊重复的
值。
控制可以存储在外键
中的数据和控制对主
键表中数据的更改。
限制列中允许的取
值以及多个列之间
的关系。
该列是否允许为空
值。
默认值约束是在
⼀个表内针对某
⼀个字段定义
的, 仅对该字段
有效。
针对某种完整性实体完整性实体完整性参照完整性
域完整性、⾃定义
完整性
域完整性域完整性
⿏标设置⽅法右键单击表,选择设
计。选中要创建主键
的列,然后单击上⾯
的⼩钥匙。也可以右
键需要创建主键的
列,然后单击⼩钥
匙。
右键单击要设置的列选择索引/
键。然后单击添加按钮。选择需
要设置的列,可以是⼀列也可以
是多列的组合。关闭并保存设
置。
右键单击需要设置外
键的列(此时的表是
作为从表在外键中出
现),选择关系。接
下来点击添加–>表
和列规范。在主键表
中选择主表和主表的
主键列。设置完后保
存即可。
右键单击要设置的
列选择CHECK约
束。然后单击添加
按钮。选择需要设
置的列。接下来点
击添加–>表达式。
设置相应的表达
式。设置完后保存
即可。
指定⾮空约束的列不
能没有值,也就是说
在插⼊记录时,对添
加了⾮空约束的列⼀
定要给值;在修改记
录时,不能把⾮空列
的值设置为NULL。
右键单击表,选
择设计。选中需
要设置默认值的
标识列,在列属
性中选择默认值
或绑定,为其设
置默认值。设置
完后保存即可。
修改表ALTER TABLE 设置⽅法alter table 表名
add constraint 约
束名 Primary
key(字段名)
alter table 表名
add constraint 约束名
unique(字段名)
alter table 从表
add constraint 约
束名 foreign
key(字段名)
references 外表名
(字段名)
alter table 表名
add constraint
约束名 check(条
创建唯一约束sql语句
件)
alter table 表名
alter column 字段
名 类型 not null
alter table 表
名
add
constraint 约
束名 default
值 for 字段名uId int
学号nvarchar(2)
NOT NULL
uSex nchar(1) not
null
uAge int not
null
创建表CREATE TABLE 设置⽅法identity(1,1)
primary key,–创
建了⼀个列名为 uId
的列,并设置了主键
约束
uName nvarchar(8) not null
unique,创建了⼀个列名为
uName的列,并设置了唯⼀约
束
NOT NULL
CONSTRAINT FK
_成绩表_STUDENT
FOREIGN KEY
REFERENCES
STUDENT (学号)
email varchar(50)
check (email like
‘%@%’))
null
check(uSex=‘男’
or uSex=‘⼥’)
default(‘男’),–
设置了⾮空和默认约
束
check(uAge>0
and
uAge<100)
default(18),–
设置了⾮空、检
查、默认约束
验证⽅法输⼊重复值或空值
NULL时,计算机会
显⽰错误提⽰
输⼊重复值时,计算机会显⽰错
误提⽰
主表与⼦表会根据外
键的设置产⽣级联、
限制、忽略的关系
输⼊错误值时,计
算机会显⽰错误提
⽰
设置⾮空约束,输⼊
空值时,计算机会显
⽰错误提⽰
不输⼊信息时,
会显⽰所设置的
默认信息
约束名称主键约束
(PRIMARY KEY)
唯⼀约束(UNIQUE)
外键约束
(FOREIGN KEY)
检查约束
(CHECK)
⾮空约束(NOT
NULL)
默认值约束
(DEFAULT)
四、参照完整性外键具体动作介绍
动作命令参数SQL Server Management Studio中
的设置
主键引发修改主键值删除记录外键的反应
限制NO ACTION默认值参数
(选项)
默认设置/⽆操作,不⽤改动
操作⽆法进⾏, 原因是有对应的外
键存在
⽆操作,⽆任何反应
级联CASCADE层叠操作可以正常进⾏⾃动跟随主键完成修改或删
除动作
取空值SET NULL设置空操作可以正常进⾏NULL
取默认
值
SET DEFAULT设置默认值操作可以正常进⾏⾃动填⼊默认值
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论