龙空技术网

SQL - 常见的几种约束,通过设计器设置具体约束 150

源丁编程 207

前言:

现时咱们对“sql给字段添加约束”可能比较讲究,姐妹们都需要剖析一些“sql给字段添加约束”的相关文章。那么小编在网摘上收集了一些关于“sql给字段添加约束””的相关文章,希望小伙伴们能喜欢,同学们快快来了解一下吧!

#头条创作挑战赛#

概念与功能

约束:就是对某个字段(列名)输入的数据进行限制,保证数据数据的完整性即保证数据的真实性与正确性(通过字段限制输入的数据)

如"年龄"字段,没有约束时输入20与输入2000都可以,输入的数据没有错,符号其数据类型,但不符合实际应用的要求

因此可以为"年龄"添加一个检查约束为年龄添加约束如年龄区间只能在0-120之间,当再次输入数据时数据库内部就会因这个约束自动检测输入的数据是否符合约束,不符合就会弹出报错的对话框提示用户重新输入

一旦建立约束,对表中数据的增删改查等操作都必须接受相关约束的限制

常见约束类型

MSSQL数据库中常见的约束有:(所有约束都是对数据表中某列数据的限制)

1)主键约束:(Primary Key Constraint)用于保证表中某一列或列组(几个列组成)的唯一性,并且不能为NULL;简言:每一行数据都具有唯一的标识符,避免了数据冗余和重复,如编号列

主键:SId学生编号

2)外键约束:(Foreign Key Constraint)用于保持表与表之间的引用完整性,并确保外键值在关联表中存在

外键可以将两个表之间的关系定义为主表(主键表)和从表(外键表)的关系,主表中的数据可以被从表引用,从表中的数据必须引用主表中已经存在的数据,如学生表中有班级编号,其编号编写为班级表中存在的班级编号,其中班级表为主键表,学生表为外键表

创建外键约束的规则一般是外键表中的一个字段引用了主键表中的主键

学生表中的外键 SCId 是 主键表中的主键

3)唯一约束:(Unique Constraint)用于保证表中某一列或列组的唯一性,允许为NULL;简单来说就是此列中的数据不能重复具有唯一性,如手机号列中只要有一个为188(代表11位)的,整个表中姓名列中不能再有手机号是188的

学生表中的 SPhone 添加唯一约束

唯一约束与主键约束的异同:

相同点:都可以表示唯一性,唯一标识数据表中的每一条记录

不同点:

1)插入数据的来源不同:主键的大多数都是自动编号结合primary key;唯一的大多数都是手动设置(数据不一定都是数字类型,如字符串类型的身份证号也可以表示唯一)

2)主键必须是非空,但是唯一不要求列必须是非空的,即可以输入null空值

3)一个数据表中如果有主键,只能有且仅有1个主键,但是一个数据表中可以有多个唯一约束即每个表中可以有多个 UNIQUE 约束,但每个表只能有一个 PRIMARY KEY 约束

主键一定满足唯一约束,但是唯一约束不一定是主键

4)默认约束:(Default Constraint)为某列设置默认值,如果插入数据时没有为该列输入对应类型的值,就会将默认值填写进当前列;如年龄,没有输入值时使用默认值 18

5)非空约束:(Not Null Constraint)用于限制列中的值不能为NULL

6)检查(检测)约束:(Check Constraint)添加对应的条件表达式用于限制列中的值必须满足这个条件,一般用于范围检测;如年龄必须在0-120;其他的如性别必须是男/女或0/1等

每个约束的字母含义建议理解掌握,下面添加约束时会用到

通过设计器添加约束

在"对象资源管理器中"右击要添加约束的表,选择"设计"选项,打开当前表的设计窗口

注意事项:1)表中数据一定要符合将要设置的约束,如SAge有一个值为150,将要设置约束0-120就会弹出报错窗口 2)每次设置后一定要进行保存,否则等于没有设置,单击"保存"图标即可

1)主键约束:主键一般是由一个列(常见)或列组构成,选中要设置主键的一列或列组,在其上右击选择"主键"即可

设置主键列为 SId,图中是设置列组的方式, 班级表中设置CId为其主键

2)外键约束:在外键表中进行设置,即外键表中的一个字段其值引用了主键表中的一个字段(几乎都是主键表的主键)在任意列上右击选择"关系.."选项,在下图中进行设置,最后保存

为学生表的 SCId 列 添加外键约束

3)唯一约束:在任意列上右击选择"索引/键"选项,在打开的窗口左侧选择"添加"按钮,在右侧进行设置,具体设置都在图中,设置约束后保存

学生表的 SPhone 列添加了唯一约束,如姓名也可以添加唯一约束

如果为Student表的SPhone列再次输入数据时如果输入的数据已存在就会弹报错对话框

因唯一约束 弹出报错对话框

由此看出唯一约束对有默认值的列也会进行检测,单击确定按钮,光标自动移至SPhone列

4)默认约束:单击选中要添加默认值的列,在下面"列属性"窗口中的"默认值或绑定"中设置

为 SGender 添加默认值

5)非空约束:在添加列名字段时最后一项就是设置非空约束的(空与null在数据库中是两个概念,在物理与函数中有区别,之后再说)

设置字段是否允许为空

6)检测约束:在任意列上右击选择"CHECK 约束..."选项,在打开的窗口左侧选择"添加"按钮,在右侧进行设置,具体设置都在图中,设置约束后保存(之前输入的数据在设置的区间内)

check窗口中可以使用的运算符,主要有=,>,<,and ,or,not,like,in等,以后遇到再说

为 SAge 添加检测约束

为哪个列添加检测约束,只需编写对应列名(一定要正确)的条件(与其类型对应)即可

如果某个约束不需要了通过上面步骤或下图中选中右击删除即可

查看约束

在每个表的下面有一个"约束"文件夹,文件夹中包含当前表中已有的约束,可通过它删除不要的约束,如果需要添加/修改相应约束按照上面的步骤操作即可

标签: #sql给字段添加约束 #数据库设置非空约束 #数据表非空约束怎么设置 #限制性别字段中只能输入男或女采用的约束是 #限制性别列的取值只能是男和女的check