MySQL外键怎么关联表
时间 : 2023-03-08 22:03:02声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

在MySQL中,外键是用来建立数据表之间关系的一种约束条件。可以通过外键将多个表连接在一起,使它们形成一种关系。在关系型数据库中,外键可以用来维护数据的一致性和完整性,以及保证数据的正确性。那么,怎么建立外键关系呢?下面为您详细介绍MySQL外键怎么关联表。

一、创建外键

要在MySQL中创建外键,需要使用ALTER TABLE语句来添加外键约束。

语法格式如下:

ALTER TABLE 表名 ADD CONSTRAINT 约束名 FOREIGN KEY (列名) REFERENCES 关联表名(列名) [ON DELETE 级联方式] [ON UPDATE 级联方式];

其中,ADD CONSTRAINT用于添加约束,FOREIGN KEY用于定义外键,REFERENCES用于指定关联表和关联列。

例如,在创建学生表和课程表时,可以使用外键来建立它们之间的关系,语句如下:

CREATE TABLE student (

id INT PRIMARY KEY,

name VARCHAR(20),

age INT,

gender VARCHAR(2),

class_id INT,

FOREIGN KEY (class_id) REFERENCES class(id)

);

CREATE TABLE class (

id INT PRIMARY KEY,

name VARCHAR(20),

teacher VARCHAR(20)

);

在上面的语句中,我们为学生表添加了一个外键约束,用于关联班级表的id列。这样,学生表和班级表之间就建立了一种关系。

二、级联删除和级联更新

在MySQL中,外键还支持级联删除和级联更新。如果设置了级联删除规则,那么当主表的某一行被删除时,从表与主表的关联行也会被自动删除。同样的,如果设置了级联更新规则,那么当主表的某一行被修改时,从表与主表的关联行也会自动更新。

例如,我们可以为学生表添加级联删除和级联更新规则,语句如下:

ALTER TABLE student ADD CONSTRAINT class_fk FOREIGN KEY (class_id) REFERENCES class(id) ON DELETE CASCADE ON UPDATE CASCADE;

三、查看外键

在MySQL中,可以使用show create table语句来查看某张表的相关信息,包括外键信息。

例如,我们使用下面的语句来查看学生表的创建信息:

show create table student;

查询结果如下:

CREATE TABLE `student` (

`id` int(11) NOT NULL,

`name` varchar(20) DEFAULT NULL,

`age` int(11) DEFAULT NULL,

`gender` varchar(2) DEFAULT NULL,

`class_id` int(11) DEFAULT NULL,

PRIMARY KEY (`id`),

KEY `class_fk` (`class_id`),

CONSTRAINT `class_fk` FOREIGN KEY (`class_id`) REFERENCES `class` (`id`) ON DELETE CASCADE ON UPDATE CASCADE

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

从上面的结果中可以看到,学生表包含一个外键约束,它与班级表的id列关联,级联删除和级联更新均被设置为CASCADE。

四、删除外键

如果需要删除MySQL中的外键,可以使用ALTER TABLE语句来实现。

语法格式如下:

ALTER TABLE 表名 DROP FOREIGN KEY 外键名;

例如,我们可以使用下面的语句来删除学生表的外键约束:

ALTER TABLE student DROP FOREIGN KEY class_fk;

这样,学生表与班级表之间的关联就被删除了。

总结

MySQL外键的建立,可以通过ALTER TABLE语句来实现。添加外键约束需要指定关联表和关联列,以及级联删除和级联更新规则。外键可以通过show create table语句来查看,也可以通过ALTER TABLE语句来删除。外键的建立可以有效的维护数据的一致性和完整性,保证数据的正确性。