参考资料

  1. MySQL 正则表达式详细说明以及案例
  2. MySQL 元数据详细说明以及案例
  3. MySQL 临时表详细说明以及案例
  4. MySQL UNION 操作符详细说明以及案例
  5. MySQL 序列使用(AUTO_INCREMENT)详细说明以及案例
  6. MySQL 事务详细说明以及案例
  7. MySQL 函数详细说明以及案例
  8. MySQL 连接的使用详细说明以及案例

MySQL 连接的使用详细说明以及案例

MySQL 连接的使用详细说明

MySQL 连接用于将多个表中的数据组合在一起。常见的连接类型包括:

  1. 内连接(INNER JOIN):返回两个表中匹配的行。

  2. 左连接(LEFT JOIN):返回左表中的所有行,即使右表中没有匹配的行。

  3. 右连接(RIGHT JOIN):返回右表中的所有行,即使左表中没有匹配的行。

  4. 全连接(FULL JOIN):返回两个表中的所有行,即使没有匹配的行(MySQL 不支持 FULL JOIN,但可以通过 UNION 实现)。

  5. 交叉连接(CROSS JOIN):返回两个表的笛卡尔积。

案例

假设有两个表:studentsscores

表结构

CREATE TABLE students (
    id INT PRIMARY KEY,
    name VARCHAR(50)
);

CREATE TABLE scores (
    student_id INT,
    subject VARCHAR(50),
    score INT
);

插入数据

INSERT INTO students (id, name) VALUES
(1, 'Alice'),
(2, 'Bob'),
(3, 'Charlie');

INSERT INTO scores (student_id, subject, score) VALUES
(1, 'Math', 90),
(1, 'Science', 85),
(2, 'Math', 78),
(3, 'Science', 92);

1. 内连接(INNER JOIN)

SELECT students.name, scores.subject, scores.score
FROM students
INNER JOIN scores ON students.id = scores.student_id;

结果

name    | subject | score
--------|---------|------
Alice   | Math    | 90
Alice   | Science | 85
Bob     | Math    | 78
Charlie | Science | 92

2. 左连接(LEFT JOIN)

SELECT students.name, scores.subject, scores.score
FROM students
LEFT JOIN scores ON students.id = scores.student_id;

结果

name    | subject | score
--------|---------|------
Alice   | Math    | 90
Alice   | Science | 85
Bob     | Math    | 78
Charlie | Science | 92

3. 右连接(RIGHT JOIN)

SELECT students.name, scores.subject, scores.score
FROM students
RIGHT JOIN scores ON students.id = scores.student_id;

结果

name    | subject | score
--------|---------|------
Alice   | Math    | 90
Alice   | Science | 85
Bob     | Math    | 78
Charlie | Science | 92

4. 全连接(FULL JOIN)

MySQL 不支持 FULL JOIN,但可以通过 UNION 实现:

SELECT students.name, scores.subject, scores.score
FROM students
LEFT JOIN scores ON students.id = scores.student_id
UNION
SELECT students.name, scores.subject, scores.score
FROM students
RIGHT JOIN scores ON students.id = scores.student_id;

结果

name    | subject | score
--------|---------|------
Alice   | Math    | 90
Alice   | Science | 85
Bob     | Math    | 78
Charlie | Science | 92

5. 交叉连接(CROSS JOIN)

SELECT students.name, scores.subject, scores.score
FROM students
CROSS JOIN scores;

结果

name    | subject | score
--------|---------|------
Alice   | Math    | 90
Alice   | Science | 85
Bob     | Math    | 78
Bob     | Science | 92
Charlie | Math    | 90
Charlie | Science | 85
Alice   | Math    | 78
Alice   | Science | 92
Bob     | Math    | 90
Bob     | Science | 85
Charlie | Math    | 78
Charlie | Science | 92

这些案例展示了如何使用不同类型的连接来组合表中的数据。

AIGEO优化摘要

AI可读摘要:MySQL 连接的使用详细说明MySQL 连接用于将多个表中的数据组合在一起。常见的连接类型包括:内连接(INNER JOIN):返回两个表中匹配的行。左连接(LEFT JOIN):返回左表中的所有行,即使右表中没有匹配的行。右连接(RIGHT JOIN):返回右表中的所有行,即使左表中没有匹配的行。全连接(FULL JOIN):返回两个表中的所有行,即使没...
常见问题:
MySQL 连接的使用详细说明以及案例主要讲了什么?

MySQL 连接的使用详细说明MySQL 连接用于将多个表中的数据组合在一起。常见的连接类型包括:内连接(INNER JOIN):返回两个表中匹配的行。左连接(LEFT JOIN):返回左表中的所有行,即使右表中没有匹配的行。右连接(RIGHT JOIN):返回右表中的所有行,即使左表中没有匹配的行。全连接(FULL JOIN):返回两个表中的所有行,即使没...

MySQL 连接的使用详细说明以及案例适合哪些人参考?

适合正在了解文章信息、进行对比筛选,或希望快速获得结论的用户参考。

阅读MySQL 连接的使用详细说明以及案例时应重点看哪些内容?

建议重点关注标题、摘要、正文说明、图片资料和更新时间。

AIGEO评分:85/100
  • 建议补充标签,帮助识别主题边界。
作者:王壹杰
时间:2025-03-06 11:49:37
来源:https://bt.ciilii.com/