目录
1.概述
1.概念:约束作用于表中字段的规则,限制存在表中的数据。
保证数据库的正确,有效和完整性;
2.分类
注意:约束作用于表中字段上的,可以在创建表/修改表时添加约束。
2.演示
1.创建用户表(多个约束之间用空格隔开)
create table user(
id int primary key auto_increment comment 'ID唯一标识',#主键约束
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 '用户表';
3.外键约束
1.概念:
外键用来然两张表的数据建立连接,从而保证数据的一致性和完整性。
2.添加外键语法
/*创建表时添加外键*/
create table 表名(
字段名 类型,
字段名 类型,
constraint [外键名称] foreign key (外键字段) references 主表名(主列表名)
);
/* 单独添加外键*/
alter table 表名 add constraint [外键名称] foreign key (外键字段) references 主表名(主列表名);
3.外键约束演示
1.员工表
2.部门表
/*员工表*/
create table emp(
id int primary key auto_increment comment 'ID唯一标识',#主键约束
name varchar(10) NOT NULL unique comment '姓名',#非空约束
age int check ( age>0 && age<=120 ) comment '年龄',#检查约束
dept_ID int comment '部门ID'
)comment '员工表';
insert into emp(name,age,dept_ID) values ('张三丰',22,1),('张无忌',25,2),('相柳',18,3);
/*部门表*/
create table dept(
id int primary key comment 'ID唯一标识',#主键约束
name varchar(10) NOT NULL unique comment '姓名'#非空约束
)comment '部门表';
insert into dept (name,id)values ('青年志愿者协会',1),('党服工作室',2),('摄影部',3);
/* 设置外键关联*/
alter table emp add constraint dept_ID foreign key (dept_ID) references dept(id);
4.删除外键语法
alter table 表名 drop foreign key 外键名称;
4.外键删除更新行为
1.语法
alter table 表名 add constraint [外键名称] foreign key (外键字段) references 主表名(主列表名) on update cascade on delete cascade;
alter table 表名 add constraint [外键名称] foreign key (外键字段) references 主表名(主列表名)on update set null on delete set null;