mysql系列02----约束
一、概述
1、概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据
2、目的:保证数据库中数据的正确,有效性和完整性。
3、分类
二、约束演示
创建一个用户表
create table myuser( id int primary key auto_increment comment '主键', name varchar(10) not null unique comment '姓名', age int check (age >0 && age<=120) comment '年龄', status char(1) default '1' comment '状态', gender char(1) comment '性别' ) comment '用户表'
在这个表中,我们在Id字段上用了主键,在name字段上有了非空,唯一约束,在age字段上用了检查约束,在status上用了状态约束,在gender上用了性别约束。
插入两条数据不能id值,id会自增长,status会有默认值1
再来更新一条数据
报错了,提示我们有检查约束。
三、外键约束
1、概念:外键用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性
2、创建外键约束
图中父表dept和员工表虽然是父子表的关系,但是并没有建立外建,如查删了父表中的记录id为1,子表中还是保留了dept_id为1的记录。这样就会出现数据不完整。所以我们要建立外建
alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id)
3、删除外键行为