数据库多对一连接: 外键实现示例
使用外键(Foreign Key)可以实现数据库表的多对一连接。以下是一个示例:
首先,创建两个表,一个是学生表(students),另一个是班级表(classes):
CREATE TABLE classes (
id INT PRIMARY KEY,
name VARCHAR(50)
);
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50),
class_id INT,
FOREIGN KEY (class_id) REFERENCES classes(id)
);
在学生表(students)中,class_id列是外键,引用了班级表(classes)的id列。
接下来,可以插入一些示例数据:
INSERT INTO classes(id, name) VALUES (1, 'Class A');
INSERT INTO classes(id, name) VALUES (2, 'Class B');
INSERT INTO classes(id, name) VALUES (3, 'Class C');
INSERT INTO students(id, name, class_id) VALUES (1, 'Student 1', 1);
INSERT INTO students(id, name, class_id) VALUES (2, 'Student 2', 1);
INSERT INTO students(id, name, class_id) VALUES (3, 'Student 3', 2);
INSERT INTO students(id, name, class_id) VALUES (4, 'Student 4', 3);
在上面的示例中,有3个班级(Class A,Class B,Class C),并且每个班级有不同数量的学生。
现在,可以使用JOIN语句来查询学生表和班级表的连接:
SELECT students.name, classes.name as class_name
FROM students
JOIN classes ON students.class_id = classes.id;
这将会返回以下结果:
+-----------+------------+
| name | class_name |
+-----------+------------+
| Student 1 | Class A |
| Student 2 | Class A |
| Student 3 | Class B |
| Student 4 | Class C |
+-----------+------------+
这样就实现了多对一连接,学生表中的每个学生都关联到了班级表中的一个班级。
原文地址: https://www.cveoy.top/t/topic/pHdM 著作权归作者所有。请勿转载和采集!