mysql外键说明书(MySQL之外键约束)

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

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

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

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

员工表有:

mysql外键说明书(MySQL之外键约束)(1)

部门表有:

mysql外键说明书(MySQL之外键约束)(2)

员工表中部门 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

    分享
    投诉
    首页