mysql外键说明书(MySQL之外键约束)
我们项目中都会有很多表。
为什么不使用单表呢?查询效率低,数据冗余。
为什么要使用多表?查询效率高,数据不冗余。
由多表引入外键这个概念:什么是外键呢?举例来讲,
员工表有:
部门表有:
员工表中部门 dept_id 与部门表中部门 id 对应,那员工表的部门 dept_id 就叫做外键。拥有外键的员工表被称为从表 , 与外键对应的主键所在的部门表叫做主表。
创建外键约束格式:
#创建employee员工表,添加外键约束
CREATETABLEemployee(
eidINTPRIMARYKEYAUTO_INCREMENT,
enameVARCHAR(20),
ageINT,
dept_idINT,
# 添加外键约束
CONSTRAINTemp_dept_fkFOREIGNKEY(dept_id)REFERENCESdepartment(id)
);
删除外键格式:
# 语法格式
altertable从表dropforeignkey外键约束字段;
# 例子,删除 employee 表中的外键约束,外键约束名 emp_dept_fk
alter tableemployeedrop foreign keyemp_dept_fk;
添加外键格式:
# 语法格式
altertable从表addforeignkey(外键约束字段)references主表(主键字段);
# 例子,添加 employee 表外键约束
alter table employee add foreign key (dept_id) references department (id);
注意:
从表外键类型必须与主表主键类型一致,否则创建失败
添加数据时,应该先添加主表中的数据
删除数据时,应该先删除从表中的数据
,
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com