表中字段约束的概念以及基本使用
文章目录
1.约束的概念
所谓约束指的肯定就是某些限制,在数据库中,约束的是作用表中字段上的一个限制规则,用于限制存在在表中的数据,写入数据时必须满足表中字段的约束策略,否则将无法写入成功。
约束的目的是为了保证数据库中的数据的正确性、完整性、有效性、一致性等等。
约束有以下几种类型:
约束是作用于表中的字段的,是在创建表、修改表的时候添加约束。
2.使用约束的命令格式
1)主键约束
字段 数据类型 PRIMARY KEY
2)唯一约束
字段 数据类型 UNIQUE
3)非空约束
字段 数据类型 NOT NULL
4)默认约束
字段 数据类型 DEFAULT '默认值'
5)检查约束
字段 数据类型 CHECK ( 条件1 && 条件2 )
3.创建一张数据表为表字段应用常见的约束
3.1.数据表的约束需求
该张数据表的约束条件如下,根据不同字段的不同约束,完成数据表的创建。
3.2.根据约束需求创建出数据表
create table erp_user (
id int primary key auto_increment comment '主键id',
xm varchar(10) not null unique comment '姓名',
nl int check ( nl > 0 && nl <= 120 ) comment '年龄',
zt char(1) default '1' comment '状态',
xb char(1) comment '性别'
) comment '用户表'
3.2.在表中写入数据严重约束是否生效
1)验证id字段的主键约束
首先在表中写入2条数据,不指定id字段的数据,验证id字段是否会自动增长并且都是唯一的。
insert into erp_user (xm,nl,zt,xb) values('小明','19','1','男'),('小红','26','1','女');
数据写入成功,可以看到虽然没有指定id字段写入数据,但是我们对id字段设置了主键约束,因此数据写入后,id字段会自动增长并且还是唯一的。
2)验证xm字段的不为空、不允许重复的约束
我们在表中再写入一条数据,指定xm字段为null,观察效果。
insert into erp_user (xm,nl,zt,xb) values(null,'36','1','男');
当xm字段为null时,就提示我们写入失败了,并且返回说xm字段不允许为空。
然后我们再写入一条xm为小明的数据,验证姓名字段是否不为空。
insert into erp_user (xm,nl,zt,xb) values('小明','36','1','男');
此时依旧插入数据失败,并且提示我们说xm字段已经包含小明了,不允许插入。
3)验证nl字段的check检查约束
在前面指定nl字段的check条件为大于0并且小于120岁的数据,下面我们来插入一条年龄在0-120岁之间的数据,观察数据写入情况。
insert into erp_user (xm,nl,zt,xb) values('小江','88','1','男');
数据写入成功了,但是也会看到主键的ID不一样了,变成了,不应该是3吗,那是应为在前面验证数据唯一性时,数据虽然插入失败了,但是却向表中申请了一个主键。
现在在表中插入一条大于120岁的数据,观察写入效果。
insert into erp_user (xm,nl,zt,xb) values('小哦','129','1','男');
由于nl字段规定的条件就是0-120,超过120就认为违反条件了,此时就会拒绝写入,由于内容并不符合约束条件,因此不会去申请一个主键。
4)验证zt字段的默认值约束
向表中写入一条数据,不指定zt字段,观察写入效果。
insert into erp_user (xm,nl,xb) values('小花','21','男');
数据写入成功,当不指定zt字段时,应用默认约束,自动写入1。