Mysql基础教程(12):JOIN

MySQL JOIN

在 MySQL 中,JOIN 语句用于将数据库中的两个表或者多个表组合起来。

比如在一个学校系统中,有一个学生信息表和一个学生成绩表。这两个表通过学生 ID 字段关联起来。当我们要查询学生的成绩的时候,就需要连接两个表以查询学生信息和成绩。

MySQL 连接类型

  • 内部联接 (INNER JOIN)
  • 左连接 (LEFT JOIN)
  • 右连接 (RIGHT JOIN)
  • 交叉连接 (CROSS JOIN)

实例表和数据

创建学生成绩表student_score。(students表在前面文章已经创建)。

CREATE TABLE `student_score` (
  `student_id` int NOT NULL,
  `subject` varchar(45) NOT NULL,
  `score` int NOT NULL
);

插入数据

INSERT INTO `student_score` (`student_id`, `subject`, `score`)
VALUES ('001','体育',95),('002','职业规划',88),('003','数据库设计',91);

在这里插入图片描述

交叉连接

交叉连接返回两个集合的笛卡尔积。也就是两个表中的所有的行的所有可能的组合。这相当于内连接没有连接条件或者连接条件永远为真。

如果一个有 m 行的表和另一个有 n 行的表,它们交叉连接将返回 m * n 行数据。

显式的交叉连接 studentsstudent_score 表:

SELECT
  students.*,
  student_score.*
FROM
  students CROSS JOIN student_score;

隐式的交叉连接 student 和 student_score 表:

SELECT
  students.*,
  student_score.*
FROM
  students, student_score;

这两种方式的输出一样。

在这里插入图片描述

内连接

内连接基于连接条件组合两个表中的数据。内连接相当于加了过滤条件的交叉连接。

内连接将第一个表的每一行与第二个表的每一行进行比较,如果满足给定的连接条件,则将两个表的行组合在一起作为结果集中的一行。

SELECT
  students.*,
  student_score.*
FROM
  students
  INNER JOIN student_score
  ON students.student_id = student_score.student_id;

在这里插入图片描述

左连接

左连接是左外连接的简称,左连接需要连接条件。

两个表左连接时,第一个表称为左表,第二表称为右表例如 A LEFT JOIN B,A 是左表,B 是右表。

左连接以左表的数据行为基础,根据连接匹配右表的每一行,如果匹配成功则将左表和右表的行组合成新的数据行返回如果匹配不成功则将左表的行和 NULL 值组合成新的数据行返回

SELECT
  students.*,
  student_score.*
FROM
  students
  LEFT JOIN student_score
  ON students.student_id = student_score.student_id;

在这里插入图片描述

注意

  1. 结果集中包含了 students 表的所有记录行。

右连接

右连接是右外连接的简称,右连接需要连接条件。

右连接与左连接处理逻辑相反,右连接以右表的数据行为基础,根据条件匹配左表中的数据。如果匹配不到左表中的数据,则左表中的列为 NULL 值

SELECT
  students.*,
  student_score.*
FROM
  students
  RIGHT JOIN student_score
  ON students.student_id = student_score.student_id;

在这里插入图片描述
因为右表只有三行数据,所以显示的最终结果也只有三个。

右连接其实是左右表交换位置的左连接,即 A RIGHT JOIN B 就是 B LEFT JOIN A,因此右连接很少使用。

结论

  • 连接用于组合两个表的数据。
  • 交叉连接返回两个表中的所有的行的所有可能的组合。
  • 内连接基于连接条件组合两个表中的数据。
  • 左连接以左表为基础组合两个表中的数据。
  • 右连接以右表为基础组合两个表中的数据。
  • 互换左表和右表后,左右连接可以互换。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/666548.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

内网渗透-隧道搭建ssp隧道代理工具

内网渗透-隧道搭建&ssp隧道代理工具 目录 内网渗透-隧道搭建&ssp隧道代理工具spp隧道代理工具spp工作原理图cs上线主机spp代理通信服务端配置客户端配置CS配置设置CS生成木马的监听器配置CS监听上线的监听器生成木马 spp隧道搭建服务端配置客户端配置CS配置 内网穿透&a…

hive安装-本地模式

1.安装mysql(参考文章:centos7.8安装Mysql8.4-CSDN博客) 2.将mysql驱动拷贝到/opt/module/hive/lib目录下 (直接windows通过finalShell上传) 3./opt/module/hive/conf目录下新建hive-site.xml文件,进行配置…

QT6.2.4 MSVC2019 连接MySql5.7数据库,无驱动问题

1.下载 查询一下数据库驱动 qDebug()<<QSqlDatabase::drivers(); 结果显示&#xff0c;没有QMYSQL的驱动。 QList("QSQLITE", "QMARIADB", "QODBC", "QPSQL") MySql6.2.4驱动下载地址&#xff0c;如果是别的版本&#xff0c;…

2024上海中小学生古诗文大会方案已发布,家长孩子最关心10个问题

昨天&#xff08;2024年5月30日&#xff09;下午15点&#xff0c;上海中小学生古诗文大会组委会通过两个公众号发布了《2024上海中小学生古诗文大会系列活动方案出炉》的推文&#xff08;下称《方案》&#xff09;。如我之前的分析和预测&#xff0c;5月份会发布今年的中小学生…

【EI会议|检索稳定】2024年通讯工程与云计算国际会议(CECC 2024)

2024年通讯工程与云计算国际会议&#xff08;CECC 2024&#xff09; 2024 International Conference on Communication Engineering and Cloud Computing 【重要信息】 大会地点&#xff1a;武汉 大会官网&#xff1a;http://www.iaccecc.com 投稿邮箱&#xff1a;iacceccsub-…

【Nginx】Nginx 日志配置

Nginx 日志配置 Nginx 主要有两种日志类型&#xff1a;访问日志&#xff08;access log&#xff09;和错误日志&#xff08;error log&#xff09;&#xff0c;可以帮助监控和调试服务的运行。 1.访问日志 访问日志主要记录客户端的请求&#xff0c;客户端向 Nginx 发起的每…

JUC常见类

White graces&#xff1a;个人主页 &#x1f649;专栏推荐:Java入门知识&#x1f649; &#x1f649; 内容推荐:Java锁的策略&#x1f649; &#x1f439;今日诗词:苟利国家生死以,岂因祸福避趋之&#x1f439; ⛳️点赞 ☀️收藏⭐️关注&#x1f4ac;卑微小博主&#x1f64…

打造高效微服务的最佳实践

原文: 7 Best Practices for Building Effective Microservices Marc-Olivier Jodoin Unsplash 微服务架构是软件开发领域的热门话题&#xff0c;这一话题如此值得关注是因为这种架构模式几乎解决了单体软件系统的所有重要痛点。快速扩容、减少停机时间、高可用性是微服务的主要…

LIMS实验室管理系统品牌市场占有率 国内LIMS系统推荐

LIMS(Laboratory Information Management System)即实验室信息管理系统&#xff0c;是一种以数据库为核心的信息化技术与实验室管理需求相结合的信息化管理工具。以下是根据搜索结果整理的一些LIMS系统厂商&#xff1a; 国外厂商 Labware 作为国外实验室领域的两大巨头之一&a…

无法删除dll文件

碰到xxxxxx.dll文件无法删除不要慌&#xff01; 通过Tasklist /m dll文件名称 去查看它和哪个系统文件绑定运行&#xff0c;发现是explorer.exe。 我们如果直接通过del命令【当然需要在该dll文件所在的路径中】。发现拒绝访问 我们需要在任务管理器中&#xff0c;将资源管理器…

TLBCache的联合设计

PIPT 在使用虚拟存储器的系统中,仍旧可以使用物理Cache,这是最保守的一种做法 处理器送出的虚拟地址(VA)会首先被TLB转换为对应的物理地址(PA)&#xff0c;然后使用物理地址来寻址Cache,此时就像是没有使用虚拟存储器一样,直接使用了物理Cache,并且使用物理地址的一部分作为 Ta…

民国漫画杂志《时代漫画》第33期.PDF

时代漫画33.PDF: https://url03.ctfile.com/f/1779803-1248635648-d8235b?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了&#xff0c;截止1937年6月战争来临被迫停刊共发行了39期。 ps: 资源来源网络!

C#中的实体属性详解与示例

文章目录 实体属性的定义实体属性的访问实体属性的示例总结 在C#中&#xff0c;实体属性是面向对象编程的重要组成部分。实体属性允许我们定义对象的特征和行为&#xff0c;并提供了一种方式来访问和管理这些特征。通过实体属性&#xff0c;我们可以封装对象的状态&#xff0c;…

GPT-4o:免费且更快的模型

OpenAI GPT-4o 公告 OpenAI 推出了增强版 GPT-4 模型——OpenAI GPT-4o&#xff0c;用于支持 ChatGPT。首席技术官 Mira Murati 表示&#xff0c;更新后的模型速度更快&#xff0c;并在文本、视觉和音频处理方面有了显著提升。GPT-4o 将免费向所有用户开放&#xff0c;付费用户…

Rainbond 携手 TOPIAM 打造企业级云原生身份管控新体验

TOPIAM 企业数字身份管控平台&#xff0c; 是一个开源的IDaas/IAM平台、用于管理账号、权限、身份认证、应用访问&#xff0c;帮助整合部署在本地或云端的内部办公系统、业务系统及三方 SaaS 系统的所有身份&#xff0c;实现一个账号打通所有应用的服务。 传统企业 IT 采用烟囱…

【数据分享】中国科技统计年鉴Excel版(1991-2023年)

大家好&#xff01;今天我要向大家介绍一份重要的中国科技统计数据资源——《中国科技统计年鉴》。这份年鉴涵盖了从1991年到2023年中国科技统计全面数据&#xff0c;并提供限时免费下载。 数据介绍 在数字化时代的浪潮中&#xff0c;数据的重要性日益凸显。对于研究人员、政…

AI 赋能前端 -- 文本内容概要生成

幸福不在于你获得了什么,而在于你比他人多获得了什么 是比较出来的 大家好,我是柒八九。一个专注于前端开发技术/Rust及AI应用知识分享的Coder 此篇文章所涉及到的技术有 OpenAILangChainRust/WebAssemblyWeb Workerreact+ts+vite配置环境变量(env)因为,行文字数所限,有些概…

5. MySQL运算符和函数

文章目录 【 1. 算术运算符 】【 2. 逻辑运算符 】2.1 逻辑非 (NOT 或者 !)2.2 逻辑与运算符 (AND 或者 &&)2.3 逻辑或 (OR 或者 ||)2.4 异或运算 (XOR) 【 3. 比较运算符 】3.1 等于 3.2 安全等于运算符 <>3.3 不等于运算符 (<> 或者 !)3.4 小于等于运算符…

【观察】数字化生存时代已来临,能源转型如何实现“再升级”?

20多年前&#xff0c;尼古拉斯尼葛洛庞帝在《数字化生存》一书中预言&#xff1a;“数字化生存是现代社会中以新技术为基础的新的生存方式。” 随着数字经济的蓬勃发展&#xff0c;尼葛洛庞帝的预言逐渐被验证。今天&#xff0c;新技术带来的数字化和智能化正全方位影响着经济…

计算机网络-BGP路由通告原则

前面一章我们学习了BGP的路由产生方式以及查看路由表信息。BGP自身并不会发现并计算产生路由。BGP通过network、import-route、aggregate聚合方式生成BGP路由后&#xff0c;通过Update报文将BGP路由传递给对等体。那BGP向邻居通告路由时遵循哪些原则呢&#xff1f; BGP通告遵循…