一、多表
1、主键:
用来唯一标识一条记录,不能有重复的,不允许为空,用来保证数据的完整性,并且主键只能有一个
2、外键:
表的外键是另一个表的主键,外键可以重复,可以 为空,但是为空数据就跟与之相关联的表没关系了
外键主要使用来和其他表建立联系用的,其他表就叫做主表。一个表可以多有个外键
3、 从表:
外键所在的表就叫做从表,也就是被约束的表
4、 主表:
主键id所在的表就叫做主表,也就是约束别的表
5、 外键约束:
1)外键约束主要是让两张表之间产生一个对应的关系,从而保证主从表引用的完整性
2)创建外键约束:
1) 新建表时添加外键
CREATE TABLE employee(
eid INT PRIMARY KEY AUTO_INCREMENT,
ename VARCHAR(20),
age INT,
dept_id INT,
-- 添加外键约束
CONSTRAINT emp_dept_fk FOREIGN KEY(dept_id) REFERENCES department(id)
);
[CONSTRAINT] [外键约束名称] FOREIGN KEY(外键字段名) REFERENCES 主表名(主键字段名)
2) 已有表添加外键
ALTER TABLE 从表 ADD [CONSTRAINT] [外键约束名称] FOREIGN KEY (外键字段名) REFERENCES 主表(主键字段名);
3)删除外键约束:
ALTER TABLE 从表 DROP FOREIGN KEY 外键约束名称;
ps:如果不知道约束名可以通过: show create table 表名; 来查看外键名
4)删除外键约束的注意事项
1) 从表外键类型必须与主表主键类型一致 否则创建失败.
2) 添加数据时, 应该先添加主表中的数据.
3) 删除数据时,应该先删除从表中的数据.
6、级联删除操作: 在删除主表数据的同时也需要删除从表的数据的话,就可以使用级联删除操作
1) 级联删除: ON DELETE CASCADE
2) 案例:创建表时添加级联删除
CRE