多表操作
一、外键
定义: 外键是指引用另一个表中的一列或多列,被引用的列应该是具有主键约束或唯一性约束.外键用于建立
和加强两个表数据之间的连接.
添加外键约束:
alter table 表名 add constraint PK_ID foreign key(外键字段名) references 外表表名(主键字段名)
在为表添加外键约束时,需要注意以下地方:
(1) 建立外键的表必须是InnoDB型,不能是临时表.因为在mySQL中只有InnoDB类型的表才支持外键.
(2) 定义外键名时,不能加引号,如constraint 'FK_ID'是错误的.
其他
alter table 表名 add constraint FK_ID foreign key (外键名) references 外表表名(主键字段名);
[ON DELETE {CASCADE | SET NULL | NO ACTION | RESTRICT }]
[ON UPDATE {CASCADE | SET NULL | NO ACTION | RESTRICT }]
RESTRICT 是默认设置.
删除外键约束:
alter table 表名 drop foreign key 外键名;
二、操作关联表
2. 0 MySQL中的关联关系
多对一: 如员工和部门. 在多对一的表关系中,应该将外键建立在多的一方,否则会造成数据的冗余.
多对多: 如学生和课程. 需要定义一张中间表,该表会存在两个外键,分别参照课程表和学生表.
在多对多的表关系中,连接两个表的外键都是可以重复的,但是两个外键之间的关系是不能重复的,
所以这两个外键又是连接表的联合主键.
一对一: 如人和身份证. 人为主表, 身份证为外表, 通常会直接用从表中的主键作为外键.
2.1 添加数据