MySQL查询两张ID相同的表的数据
介绍
在MySQL数据库中,有时候我们需要查询两张表中ID相同的记录,以获取相关联的数据。本文将指导你如何使用MySQL语句来实现这个目标。
步骤
下面是查询两张表中ID相同的数据的整个流程:
步骤 | 操作 |
---|---|
第一步 | 建立两张表 |
第二步 | 插入数据 |
第三步 | 编写查询语句 |
第四步 | 获取结果 |
接下来我们一步一步来实现。
第一步:建立两张表
首先,我们需要建立两张表,这两张表将会有一个共同的ID列。我们以学生表和成绩表为例,创建两张表student和score。
CREATE TABLE student (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT
);
CREATE TABLE score (
id INT PRIMARY KEY,
subject VARCHAR(50),
score INT
);
第二步:插入数据
接下来,我们需要向两张表中插入一些数据,以便进行查询操作。
INSERT INTO student (id, name, age)
VALUES (1, 'John', 20),
(2, 'Alice', 22),
(3, 'Bob', 21);
INSERT INTO score (id, subject, score)
VALUES (1, 'Math', 90),
(2, 'English', 80),
(3, 'Science', 95);
第三步:编写查询语句
现在,我们可以开始编写查询语句来获取两张表中ID相同的记录。我们使用INNER JOIN
语句来实现这个目标。
SELECT student.id, student.name, score.subject, score.score
FROM student
INNER JOIN score ON student.id = score.id;
第四步:获取结果
最后,我们可以运行查询语句并获取结果。这个查询将会返回ID相同的学生和他们对应的成绩。
id | name | subject | score |
---|---|---|---|
1 | John | Math | 90 |
2 | Alice | English | 80 |
3 | Bob | Science | 95 |
代码解释
以下是每一步中使用的代码及其解释:
- 创建学生表和成绩表:
CREATE TABLE student (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT
);
CREATE TABLE score (
id INT PRIMARY KEY,
subject VARCHAR(50),
score INT
);
这段代码使用CREATE TABLE
语句来创建两张表,分别是student和score。student表包含id、name和age三个列,score表包含id、subject和score三个列。
- 插入数据:
INSERT INTO student (id, name, age)
VALUES (1, 'John', 20),
(2, 'Alice', 22),
(3, 'Bob', 21);
INSERT INTO score (id, subject, score)
VALUES (1, 'Math', 90),
(2, 'English', 80),
(3, 'Science', 95);
这段代码使用INSERT INTO
语句向student表和score表中分别插入数据。每个插入语句指定了要插入的列和对应的值。
- 编写查询语句:
SELECT student.id, student.name, score.subject, score.score
FROM student
INNER JOIN score ON student.id = score.id;
这段代码使用SELECT
语句查询学生表和成绩表中ID相同的记录。INNER JOIN
语句用于将两张表根据ID列进行关联。
- 获取结果:
查询结果将返回ID相同的学生和他们对应的成绩。
类图
以下是本文中使用到的类图:
classDiagram
class Student {
-id: int
-name: string
-age: int
}
class Score {
-id: int
-subject: string
-score: int
}
Student "1" -- "1" Score
上述类图展示了学生和成绩之间的关系,每个学生可以对应一个成绩。
饼状图
以下是本文中使用到的饼状图: