多表操作

Posted zhajiye

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多表操作相关的知识,希望对你有一定的参考价值。

外键

①外键是指引用另一个表中的一列或多列(被引用的列应具有主键约束或唯一性约束),建立和加强两个表数据之间的链接

首先,创建两个名为student和class的表并给表添加数据

(student表中的class_id是引入了class表中的主键id,从而建立了两个表数据之间的连接。即class_id作为student表的外键)

(被引用的表class是主表,引用外键的表student是从表,两表是主从关系)

(注意:建立的表都必须是INNODB型,不能是临时表,不然不能使用外键)

 技术图片

 技术图片

 技术图片

(注意:引入外键后,外键列只能插入参照列存在的值,参照列被参照的值不能被删除,保证了数据的参照完整性)

(例:下图class表中的id被student表中的class_id引用,那么class表中的id列就不能被删除。如果将student表中class_id列的1913都改为1923或者把1913的那几条学生信息都删掉,那class表中id列的1913那一行就可以成功删除了)

 技术图片

 技术图片

②为表添加外键约束

ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY(外键字段名) REFERENCES 外表表名(主键字段名);

(注意:定义外键名时,不能加引号。如:constraint ‘FK_ID‘ 或 constraint " FK_ID "都是错误的)

 技术图片

 技术图片

添加外键约束的参数说明

ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY(外键字段名) REFERENCES 外表表名(主键字段名);

【ON DELETE {CASCADE或SET NULL或NO ACTION或RESTRICT }】

【ON UPDATA {CASCADE或SET NULL或NO ACTION或RESTRICT }】

 技术图片

③删除外键约束

ALTER TABLE表名DROP FOREIGN KEY 外键名;

 技术图片

以上是关于多表操作的主要内容,如果未能解决你的问题,请参考以下文章

多表查询_左连接多表操作_子查询

Oracle笔记 多表查询

day17 dbutils 和 jdbc 多表操作

单表多表操作 联表查询

django-模型层(model)-多表相关操作(图书管理练习)

多表操作