约束定义关于字段中允许值的规则,是强制完整性的标准机制。使用约束优先于使用触发器、规则和默认值。查询优化器也使用约束定义生成高性能的查询执行计划,约束就是一种强制性的规定,SQLServer提供的约束是通过定义字段的取值规则来维护数据完整性的。
严格说来,在SQLServer中支持六类约束:NOTNULL(非空)约束、CHECK(检查)约束、UNIQUE(唯一)约束、PRIMARYKEY(主键)约束、FOREIGNKEY(外键)约束和DEFAULT(默认)约束。
1.NOTNULL指定不接受NULL值的列非空约束用来强制数据的域完整性,它用来设定某列值不能为空。
2.CHECK约束对可以放入列中的值进行限制,以强制执行域的完整性CHECK约束指定应用于列中输入的所有值的布尔(取值为TRUE或FALSE)搜索条件,拒绝所有不取值为TRUE的值。可以为每列指定多个CHECK约束。
3.UNIQUE约束在列集内强制执行值的唯一性对于UNIQUE约束中的列,表中不允许有两行包含相同的非空值。主键也强制执行唯一性,但主键不允许空值。主键约束优先于唯一索引。
4.PRIMARYKEY约束标识列或列集,这些列或列集的值唯一标识表中的行在一个表中,不能有两行包含相同的主键值。不能在主键内的任何列中输入空值。在数据库中“空”是特殊值,代表不同于空白和0值的未知值。建议使用一个小的整数列作为主键。每个表都应有一个主键。
5.FOREIGNKEY约束标识表之间的关系外键是在一个数据表中的一个列或多个列,它不应该是该表的主键,但是它可以是其他表的主键。一个表的外键指向另一个表的候选键。利用外键可以维护数据表之间的关系。
6.DEFAULT约束为列填入默认值利用默认值可以为未填入值的列强制填入一个默认情况下的值。约束可以是列约束或表约束:约束被指定为列定义的一部分,并且仅适用于那个列。约束的声明与列的定义无关,可以适用于表中一个以上的列。当一个约束中必须包含一个以上的列时,必须使用表约束。
02约束的创建(一)创建主键约束
1.用对象资源管理器创建主键约束方法:
(1)在“对象资源管理器”窗格中右击表名—。
(2)在“表设计器”窗口中,选择需要设为主键的字段,如果需要选择多个字段,可按住键再选择其他列(单击选定栏位置)。
(3)选择好后右击该字段,从弹出的快捷菜单中选择命令。执行完命令后,在该列前面会出现钥匙图样,说明主键设置成功。
(4)单击按钮。
注意:因为主键是唯一的,所以表中的列原来有数据,并且数据有重复,那么在设置主键时会出现错误。
2.使用SQL语句创建主键约束
(1)创建表时创建主键约束
格式:CREATETABLE表名(字段名数据类型CONSTRAINT约束名PRIMARYKEY,字段名?)
说明:主键约束名如果不指定,系统会自动生成一个约束名。
(二)创建唯一约束
在一张数据表中,有时除主键需要具有唯一性外,还有其他列也需要具有唯一性,这时就需要创建表中的唯一约束。例如,在“系部”表中,主键为“系部代码”,但是另外一个字段“系部名称”虽不是主键,也需保证它的唯一性。、
1.使用对象资源管理器创建唯一约束
方法:
(1)在“对象资源管理器”窗格中右击表名—。
(2)在“表设计器”窗口中,右击需要设置为唯一约束的字段————。
2.使用SQL语句创建唯一约束
格式:ALTERTABLE表名ADDCONSTRAINT约束名UNIQUE[CLUSTERED
NONCLUSTERED]{(字段名[,…n])}
功能:为已经存在的表创建唯一约束。
(三)创建检查约束
检查约束对输入的数据的值做检查,可以限定数据输入,从而维护数据的域完整性。
1.使用对象资源管理器创建检查约束
方法:
(1)在“对象资源管理器”窗格中右击表名—。
(2)在“表设计器”窗口中,右击需要设置为检查约束的字段————约束名——约束条件—。
2.使用SQL语句创建检查约束
格式:ALTERTABLE表名ADDCONSTRAINT约束名CHECK(约束条件表达式)
功能:在已经创建好的表中创建检查约束。
(四)创建默认约束
需要自动输入默认值时,可以对数据表创建默认约束。
1.使用对象资源管理器创建默认约束
方法:
(1)在“对象资源管理器”窗格中右击表名—。
(2)在“表设计器”窗口中,选择需要设置为默认约束的字段———输入默认值。
说明:
(1)删除默认约束可以在表设计器中将默认值删除即可。
(2)刷新查看删除结果。
2.使用SQL语句创建默认约束
格式:ALTERTABLE表名ADDCONSTRAINT约束名DEFAULT默认值[FOR字段名]
功能:为已存在的表创建默认约束。
(五)创建外键约束
外键是用来维护表与表之间对应唯一关系的一种方法。
1.使用对象资源管理器创建外键约束
方法:在“对象资源管理器”窗格中,右击需要创建外键约束的表——右击需要创建外键约束的字段—关系—外键关系—添加—表和列规范—主键表—选择表名—外键表—表名—分别在“主键表”和“外键表”的下面选择字段名—确定—关闭—保存。
说明:单击该表下面的可以查看外键约束名称
2.使用SQL语句创建外键约束
格式:ALTERTABLE外键表ADDCONTRAINT约束名[FOREIGNKEY]{(字段名[,…n])}REFERENCES主键表[(字段名[,…n])]。
03查看与修改约束的定义利用对象资源管理器查看约束信息
方法:右击该约束名,在弹出的快捷菜单中选择“修改”命令或在“表设计器”中查看约束信息。
04删除约束1.用对象资源管理器来删除表约束
方法:主键约束、唯一键约束、外键约束打开右击约束名,删除即可。检查约束打开右击约束名,删除即可。删除默认约束可以在表设计器中将默认值删除即可。
2.使用DROP命令删除表约束
格式:ALTERTABLE表名DROPCONSTRAINT约束名[,…n]
上期回顾:
渗透测试-漏洞扫描篇03
数据库-数据完整性
计算机网络知识点总结
数据库-视图
渗透测试-漏洞扫描篇02
数据库-索引
渗透测试-漏洞扫描篇01
渗透测试-信息收集篇03
数据查询-连接查询
渗透测试-信息收集篇02
数据查询-简单查询
渗透测试-信息收集篇01
数据库中表的操作
SQLServer表概述
渗透测试流程
维护数据库
开源蜜罐平台T-pot
创建数据库
SQLServer安装与使用
SQL注入专题(三)
SQLServer数据库的基本知识与概念
SQL注入专题(二)
SQL注入专题(一)
SQLServer概述
主流数据库
属于自己的CTF训练场—CTFd平台
Docker容器
数据库设计
企业SRC搭建
关系数据库
初识数据库
自己动手搭建私有云笔记+博客平台
预览时标签不可点收录于话题#个上一篇下一篇