1.外键约束
关键词:foregin key
--外键约束
[constraint <外键名> foreign key 字段名1,字段名2 references <主表名> 主键列1,主键列2
--示例:方式1:
create table if not exists dept(
deptId varchar(20) primary key, --部门编号
name varchar(20) --部门名字
);
create table if not exists employees(
employee_id varchar(20) primary key, --员工编号
employee_name varchar(20), --员工名字
age int, --员工年龄
dept_id varchar(20), --员工所属部门编号
constraint employees_fk foreign key (dept_id) references dept (deptId)
);
--方式2:
alter table <数据表名> add constraint <外键名> foreign key (列名) references <主表名> (<列名>)
1)必须先给主表添加数据
2)从表添加数据时,外键列的值不能随便写,必须依赖主表的主键列
3)删除数据时,主表的数据被从表依赖时,不能删除,从表的数据可以随便删除
2.删除外键约束
概念:当一个表中不需要外键约束时,就需要从表中将其删除,外键一旦删除,就会解除主表和从表间的关联关系
--删除外键约束
alter table <表名> drop foreign key <外键约束名>;
--示例:
alter table employees drop foreign key dept_id;
3.外键约束-多对多
--学生表和课程表(多对多)
--1.创建学生表student
create table if not exists student(
sid int primary key auto_increment, --自增长主键
name varchar(20),
age int,
gender varchar(20)
);
--2.创建课程表course
create table course(
cid int primary key aoto_incremnet,
cidname varchar(20)
);
--3.创建中间表student_score
create table student_score(
sid int,
cid int,
score double
);
--4.建立外键约束
alter table student_score add constraint student_fk foreign key(sid) references student(sid);
alter table student_score add constraint course_fk foreign key(sid) references course(sid);