1、概述
- 概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。
- 目的:保证数据库中数据的正确性、有效性和完整性。
- 分类:
2、约束演示
3、外键约束
外键用来让两张表之间建立连接,从而保证数据的一致性和完整性。
create table dept(
id int auto_increment comment '10' primary key ,
name varchar(50) not null comment '部门名称'
)comment '部门表';
insert into dept (id, name) values (1,'研发部'),(2,'市场部'),(3,'财务部'),(4,'销售部'),(5,'总经办');
create table emp(
id int auto_increment comment 'ID' primary key ,
name varchar(50) not null comment '姓名',
age int comment '年龄',
job varchar(20) comment '职位' ,
salsry int comment '薪水' ,
entrydate date comment '入职时间',
managerid int comment '直属部门',
dept_id int comment '部门ID'
)comment '员工表';
insert into emp (id, name, age, job, salsry, entrydate, managerid, dept_id) values
(1,'金庸',66,'总裁',20000,'2001-01-01',null,5),
(2,'张无忌',20,'项目经理',12500,'2005-12-05',1,1),
(3,'杨逍',33,'开发',8400,'2000-11-01',2,1),
(4,'韦一笑',48,'开发',11000,'2002-02-05',2,1),
(5,'常遇春',43,'开发',10500,'2004-09-07',3,1),
(6,'小昭',19,'程序员鼓励师',6600,'2004-10-12',2,1);
-- 增加外键
alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id);
-- 删除外键
alter table emp drop foreign key fk_emp_dept_id;
外键约束
alter table emp drop foreign key fk_emp_dept_id;
-- 使用cascade 约束 一旦需删除或修改表内容,另一个表也会跟着改变
alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id) on update cascade on delete cascade;
-- 使用set null 约束 一旦需删除或修改父表内容,另一个表对应的内容就会变为null(前提是该字段允许为null)
alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id) on update set null on delete set null ;
也可以使用图形化界面来设置 Modify table 修改表格