我们项目中都会有很多表。

为什么不使用单表呢?查询效率低,数据冗余。

为什么要使用多表?查询效率高,数据不冗余。

由多表引入外键这个概念:什么是外键呢?举例来讲,

员工表有:

部门表有:

员工表中部门dept_id与部门表中部门id对应,那员工表的部门dept_id就叫做外键。拥有外键的员工表被称为从表,与外键对应的主键所在的部门表叫做主表。

创建外键约束格式:

添加外键约束CONSTRAINTemp_dept_fkFOREIGNKEY(dept_id)REFERENCESdepartment(id));

删除外键格式:

例子,删除employee表中的外键约束,外键约束名emp_dept_fkaltertableemployeedropforeignkeyemp_dept_fk;

添加外键格式:

例子,添加employee表外键约束altertableemployeeaddforeignkey(dept_id)referencesdepartment(id);

注意:

从表外键类型必须与主表主键类型一致,否则创建失败

添加数据时,应该先添加主表中的数据

删除数据时,应该先删除从表中的数据