📜  使用外键添加列 mysql - SQL (1)

📅  最后修改于: 2023-12-03 15:06:55.872000             🧑  作者: Mango

使用外键添加列 MySQL - SQL

在 MySQL 中,使用外键可以建立表之间的关联关系。在一个表中,如果需要引用另一个表的数据,可以使用外键来实现。本文将介绍如何使用外键添加列。

创建两个相关表

在创建外键之前,我们需要先创建两个相关的表。一个表将包含作为主键的课程 ID 和名称,另一个表将包含学生和他们所选课程的 ID。

-- 创建课程表
CREATE TABLE courses (
    course_id INT PRIMARY KEY,
    name VARCHAR(50)
);

-- 创建学生表
CREATE TABLE students (
    student_id INT PRIMARY KEY,
    name VARCHAR(50),
    course_id INT,
    FOREIGN KEY (course_id) REFERENCES courses(course_id)
);

在学生表中,我们添加了一个名为 course_id 的列,并将其作为外键,引用了课程表中的 course_id 列。这意味着,course_id 列中的值必须是课程表中已有的 course_id 的值。

插入数据

现在我们可以向两个表中插入数据。首先向课程表中插入数据:

INSERT INTO courses (course_id, name) VALUES (1, 'Database Systems');
INSERT INTO courses (course_id, name) VALUES (2, 'Web Development');
INSERT INTO courses (course_id, name) VALUES (3, 'Data Science');

然后向学生表中插入数据,其中包含了选修的课程 ID:

INSERT INTO students (student_id, name, course_id) VALUES (1, 'Alice', 1);
INSERT INTO students (student_id, name, course_id) VALUES (2, 'Bob', 2);
INSERT INTO students (student_id, name, course_id) VALUES (3, 'Charlie', 3);
查询数据

我们可以使用 JOIN 操作符将两个表连接起来,查看学生选修的课程名称:

SELECT students.name, courses.name AS course
FROM students
JOIN courses ON students.course_id = courses.course_id;

结果如下:

+---------+-------------------+
| name    | course            |
+---------+-------------------+
| Alice   | Database Systems  |
| Bob     | Web Development   |
| Charlie | Data Science      |
+---------+-------------------+
总结

在 MySQL 中,使用外键可以建立表之间的关联关系。在相应的列上添加外键约束后,确保该列只引用表中已存在的行。外键可用于执行关系型数据库中的多种操作,例如级联操作和引用完整性。了解和掌握外键的使用可以提高数据库的结构和性能。