mysql中怎么加外键
时间 : 2023-03-18 11:02:01声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

MySQL 中添加外键可以在创建表的时候或者已经创建好的表上进行操作,下面我将为您详细介绍两种情况下的操作方法。

创建表时添加外键

在创建表时添加外键需要使用 `FOREIGN KEY` 关键字,其语法如下:

CREATE TABLE table_name(

column1 datatype constraint,

column2 datatype constraint,

FOREIGN KEY (column_name) REFERENCES foreign_table_name (column_name)

);

其中,`column_name` 是当前表中的列名,`foreign_table_name` 是被引用的表名,`REFERENCES` 是关键字,它引用了被引用表中的 `column_name` 的值,这个值将会匹配到当前表中的 `column_name` 列。同时,`FOREIGN KEY` 后面是一对圆括号,其中是定义外键所依赖的列名,如果有多个,则用逗号隔开。

例如,我们创建一个学生表和一个课程表,学生表中有一个学生 ID 列,课程表中有一个课程 ID 和一个学生 ID 列,那么我们可以这样创建课程表:

CREATE TABLE course (

course_id INT NOT NULL AUTO_INCREMENT,

course_name VARCHAR(100) NOT NULL,

student_id INT NOT NULL,

PRIMARY KEY(course_id),

FOREIGN KEY (student_id) REFERENCES student (student_id)

);

这样,我们就在课程表中添加了一个外键,它的值将会匹配到学生表中的学生 ID 列上。

已创建表上添加外键

假设我们已经在 MySQL 中创建了两张表,一个学生表和一个课程表,现在我们需要在课程表上添加一个外键,它所依赖的是学生表中的 student_id 列。MySQL 中可以通过 `ALTER TABLE` 语句来添加外键,其语法如下:

ALTER TABLE table_name

ADD FOREIGN KEY (column_name) REFERENCES foreign_table_name (column_name);

其中,`table_name` 表示要添加外键的表名,`column_name` 是当前表中的列名,`foreign_table_name` 是被引用的表名,`REFERENCES` 是关键字,它引用了被引用表中的 `column_name` 的值,这个值将会匹配到当前表中的 `column_name` 列。同时,`FOREIGN KEY` 后面也是一对圆括号,其中是定义外键所依赖的列名,如果有多个,则用逗号隔开。

例如,我们需要在课程表上添加一个外键,它所依赖的是学生表中的 student_id 列,那么我们可以这样添加外键:

ALTER TABLE course

ADD FOREIGN KEY (student_id) REFERENCES student (student_id);

这样,我们就在课程表上添加了一个外键,它的值将会匹配到学生表中的学生 ID 列上。

总结

MySQL 中添加外键需要使用 `FOREIGN KEY` 关键字,并在 `REFERENCES` 后面引用被引用表中的列名,它将匹配到当前表中的列名。同时,添加外键可以在创建表的时候进行,也可以在已创建好的表上进行,前者需要在创建表的时候使用 `FOREIGN KEY` 关键字,后者需要使用 `ALTER TABLE` 语句。

MySQL中加外键的操作分为两部分,分别是创建外键和删除外键。以下是具体的操作步骤:

1.创建外键

在MySQL中,我们使用ALTER TABLE语句加外键。

语法如下:

ALTER TABLE 表1 ADD FOREIGN KEY(字段1) REFERENCES 表2(字段2);

解释:

- 表1:需要添加外键的表名。

- 字段1:需要添加外键的字段名。

- 表2:作为外键参照的表名。

- 字段2:作为外键参照的字段名。

例如,我们要在表orders中添加外键order_customer_id,引用表customers中的字段id:

ALTER TABLE orders ADD FOREIGN KEY(order_customer_id) REFERENCES customers(id);

2.删除外键

我们同样使用ALTER TABLE语句删除外键。

语法如下:

ALTER TABLE 表1 DROP FOREIGN KEY 外键名;

解释:

- 表1:需要删除外键的表名。

- 外键名:需要删除的外键名。

例如,我们要删除表orders中的外键order_customer_id:

ALTER TABLE orders DROP FOREIGN KEY order_customer_id;

提示:

在创建外键时,需要保证被引用的表和字段都存在。否则将会出现错误。

在删除外键时,外键名可以在创建外键时指定,也可以通过查询系统表(如information_schema.key_column_usage)获取。