MySQL的多表数据记录查询笔记

关系数据操作

合并查询数据记录

在MySQL中通过关键字UNION来实现并操作,即可以通过其将多个SELECT语句的查询结果合并在一起组成新的关系。

两张表,表1 和表2
在这里插入图片描述

在这里插入图片描述

带有关键字UNION的合并操作

关键字UNION会把查询结果集直接合并在一起,同时将会去掉重复数据记录

select name,sex from employee UNION select name,sex from employee_1 

在这里插入图片描述
查询出来7条数据,经过了去重

带有关键字UNION ALL的合并操作

关键字UNION ALL会把查询结果集直接合并在一起。

select name,sex from employee UNION ALL select name,sex from employee_1 

在这里插入图片描述

内连接查询

在MySQL中内连接数据查询通过SQL语句INNER JOIN...ON来实现。

select field1 field2 ...fieldn from join_tablename1 inner join
	join_tablename2 [inner join join_tablenamen] on join_condition
自连接

内连接查询中存在一种特殊的等值连接 - 自连接,所谓自连接就是指表与其自身进行连接。

雇员表

  • empno 雇员ID
  • ename 雇员姓名
  • job 雇员职位
  • mgr 雇员上级领导ID
  • sal 雇员薪资
  • deptno 雇员部门
    在这里插入图片描述
    现在就是需要查询出雇员的上级领导是谁
select e.empno,e.ename,e.job,e.sal,l.ename as mgrname from employee e inner join employee l on e.mgr
 = l.empno

在这里插入图片描述

等值连接

内连接查询中的等值连接,就是在关键字ON后的匹配条件中通过关系运算符(=)来实现等值条件。

一张部门表

  • deptno 部门ID
  • deptname 部门名称

在这里插入图片描述

查询每个雇员的姓名、部门

select  e.ename,e.job,e.sal,d.deptname from employee e inner join dept d on e.deptno
 = d.deptno

在这里插入图片描述
上述连接也可以使用ANSI连接语法形式

select  e.ename,e.job,e.sal,d.deptname from employee e , dept d where e.deptno
 = d.deptno
不等连接

内连接查询中的不等连接,就是在关键字ON后的匹配条件中通过除了等于关系运算符来实现不等条件外,可以使用的关系运算符包括“>”、“>=”、“<”、“<=”和“!=”等运算符号。

外连接查询

在MySQL中,外连接查询会返回所操作表中至少一个表的所有数据记录。

select field1 field2 ...fieldn from jon_tablename1 left | right | full [outer] join join_tablename2 
on join_condition
左外连接

外连接查询中的左外连接,就是指新关系中执行匹配条件时,以关键字left join左边的表未参考表。

上述等值连接中,只有三条数据,但是如果我改成左外连接

select e.empno,e.ename,e.job,e.sal,l.ename as mgrname from employee e left join employee l on e.mgr
 = l.empno

在这里插入图片描述
这边没有匹配上也能全部显示出来。

右外连接

外连接查询中的右外连接,就是值新关系中执行匹配条件时,以关键字right join右边的表未参考表。但是跟左外连接是一个意思,换个位置的事情。

左外连接:

  • 左外连接以左表为基准,返回左表中的所有记录,并将符合联接条件的右表记录合并。
  • 如果左表中的记录在右表中没有匹配的记录,则右表中的列值将被设置为NULL。
    左外连接可以通过使用LEFT JOIN关键字来执行。

右外连接:

  • 右外连接以右表为基准,返回右表中的所有记录,并将符合联接条件的左表记录合并。
  • 如果右表中的记录在左表中没有匹配的记录,则左表中的列值将被设置为NULL。
    右外连接可以通过使用RIGHT JOIN关键字来执行。

总之,左外连接和右外连接的区别在于联接的基准表不同。左外连接返回左表的所有记录,而右外连接返回右表

全外连接

它将两个表中的所有记录都进行匹配,并返回包含两个表中所有记录的结果集。当两个表中的主键不匹配时,返回的结果集中会包含NULL值。

FULL JOIN的语法通常如下:

SELECT * FROM table1 FULL JOIN table2 ON table1.column = table2.column;

这将返回一个包含table1和table2中所有记录的结果集,无论是否存在匹配项。如果没有匹配项,返回的结果集中对应的列值为NULL。FULL JOIN可以用来查找两个表中的所有数据,并比较它们之间的关系。

但是我发现我的MySQL 5.7.14版本竟然不能使用。

那可以考虑这么使用

SELECT * FROM Table1 A LEFT JOIN Table2 B ON A.id=B.id
UNION
SELECT * FROM Table1 A RIGHT JOIN Table2 B ON A.id=B.id
SELECT * FROM employee A LEFT JOIN dept B ON A.deptno=B.deptno
UNION
SELECT * FROM employee A RIGHT JOIN dept B ON A.deptno=B.deptno

在这里插入图片描述

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

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

相关文章

vite和webpack的区别

1 构建原理 Webpack 是一个静态模块打包器&#xff0c;通过对项目中的 JavaScript、CSS、图片等文件进行分析&#xff0c;生成对应的静态资源&#xff0c;并且可以通过一些插件和加载器来实现各种功能。Webpack 的主要特点是支持各种复杂的构建场景&#xff0c;例如代码分割、…

vs2022配置OpenCV测试

1&#xff0c;下载Opencv安装包 OpenCV官网下载地址&#xff1a;Releases - OpenCV 大家可以按需选择版本进行下载&#xff0c;官网下载速度还是比较慢的&#xff0c;推荐大家使用迅雷进行下载 下载安装包到自定义文件夹下 双击安装 按以下图示进行安装 2、 添加环境变量 打…

【HarmonyOS】消息通知场景的实现

从今天开始&#xff0c;博主将开设一门新的专栏用来讲解市面上比较热门的技术 “鸿蒙开发”&#xff0c;对于刚接触这项技术的小伙伴在学习鸿蒙开发之前&#xff0c;有必要先了解一下鸿蒙&#xff0c;从你的角度来讲&#xff0c;你认为什么是鸿蒙呢&#xff1f;它出现的意义又是…

浪花 - 搜索标签前后端联调

前传&#xff1a;浪花 - 根据标签搜索用户-CSDN博客 目录 一、完善后端搜索标签接口 二、前后端搜索标签接口的对接 1. 使用 Axios 发送请求 2. 解决跨域问题 3. Axios 请求传参序列化 4. 接收后端响应数据 5. 处理后端响应数据格式 6. 搜索结果为空的页面展示 附&am…

HCIA——11计算机网络分层结构——OSI/ISO、TCP/IP

学习目标&#xff1a; 参考模型 计算机网络 1.掌握计算机网络的基本概念、基本原理和基本方法。 2.掌握计算机网络的体系结构和典型网络协议&#xff0c;了解典型网络设备的组成和特点&#xff0c;理解典型网络设备的工作原理。 3.能够运用计算机网络的基本概念、基本原理和基本…

Pycharm 神级插件 Grep Console

下载: 使用: 为了方便测试这款插件的功能,我们可以写一段代码 来测试 import logging import time# 配置日志 logging.basicConfig(levellogging.DEBUG) logger logging.getLogger(__name__)# 日志消息中的字典内容 log_message """ {413867144: {202401031…

计算机导论09-数据组织与管理

文章目录 数据管理基础数据管理技术的发展数据组织与管理的发展手工数据处理阶段文件方式的数据处理阶段数据库数据处理阶段 数据库技术的发展 数据模型数据模型的要素概念模型逻辑模型 数据库系统数据库系统基础数据库系统构成 数据库系统的结构数据库系统的体系结构数据库系统…

smartgit选择30天试用后需要输入可执行文件

突然有一天smartgit提示到期了&#xff0c;我按照以往那样删除license和preferences文件后&#xff0c;选择30天试用&#xff0c;弹出了需要选择git可执行文件。 我尝试选择了我的git.exe&#xff0c;发现根本不行&#xff0c;提示让我执行下git --version 执行过后提示我的.gi…

HCIP之ISIS实验

华子目录 实验拓扑及要求规划IP地址规划Level1/2路由器实验步骤配置IP地址启动ISIS修改对应路由类型路由泄露&#xff1a;R1访问R5走R6测试 实验拓扑及要求 规划IP地址 规划Level1/2路由器 实验步骤 配置IP地址 R1-R8依次类推 [r1]int g0/0/0 [r1-GigabitEthernet0/0/0]ip a…

【Java SE】类和对象详解

文章目录 1.什么是面向对象2. 类的定义和使用2.1 简单认识类2.2 类的定义格式 3. 类的实例化3.1 什么是实例化3.1.1 练习&#xff08;定义一学生类&#xff09; 3.2 类和对象的说明 4. this 引用5. 构造方法6. 对象的初始化6.1 默认初始化6.2 就地初始化 7. 封装7.1 封装的概念…

WhatsApp Business有哪些好处?

WhatsApp 被认为是全球领先的移动通讯应用程序&#xff0c;在全球拥有约20 亿月活跃用户&#xff0c;已成功跻身全球最受欢迎的社交平台Top3。由于其显著增长的知名度和WhatsApp Business的加入&#xff0c;WhatsApp 已成为企业与其客户互动沟通最有效的方式之一。 使用WhatsA…

MySQL面试题 | 12.精选MySQL面试题

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

Vue-23、Vue过滤器

1、效果 2、过滤器实现 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>过滤器</title><script type"text/javascript" src"https://cdn.jsdelivr.net/npm/vue2/dist/vue.…

如何在云端加速缓存构建

缓存是指将某类数据存储起来以便以后重复使用的过程&#xff0c;它的运用在开发场景中非常普遍。类似于你习惯把最常用的调料放在厨房台面上&#xff0c;而不是橱柜里&#xff0c;这样你在准备大餐时就可以轻松取用。 但对于一个更为技术性、更精确的用例&#xff0c;比如像谷…

linux单机部署mysql(解压编译方式)

一、下载官网压缩包&#xff08;tar.gz&#xff09; MySQL :: Download MySQL Community Serverhttps://dev.mysql.com/downloads/mysql/根据自己的操作系统发行版本、位数、gclib版本、mysql版本来选择对应的压缩包 比如我是 linux系统debian10&#xff08;官网只有linux ge…

【文本到上下文 #3】:文本表示技术

一、说明 欢迎回到“完整的 NLP 指南&#xff1a;文本到上下文” 在上一篇文章中&#xff0c;我们对自然语言处理 (NLP) 中的基本数据预处理步骤进行了令人着迷的探索。我们剖析了标记化、文本清理、停用词删除、词干提取和词形还原、词性标记和命名实体识别 (NER) 的复杂性。这…

自动驾驶轨迹规划之碰撞检测(二)

欢迎大家关注我的B站&#xff1a; 偷吃薯片的Zheng同学的个人空间-偷吃薯片的Zheng同学个人主页-哔哩哔哩视频 (bilibili.com) 目录 1.基于凸优化 2.具身足迹 3. ESDF 自动驾驶轨迹规划之碰撞检测&#xff08;一&#xff09;-CSDN博客 大家可以先阅读之前的博客 1.基于…

探索数据的奥秘:一份深入浅出的数据分析入门指南

数据分析 书籍推荐 入门读物 深入浅出数据分析啤酒与尿布数据之美数学之美 数据分析 Scipy and NumpyPython for Data AnalysisBad Data Handbook集体智慧编程Machine Learning in Action机器学习实战Building Machine Learning Systems with Python数据挖掘导论Machine L…

循环神经网络-单变量序列预测详解(pytorch)

参考博客 文章目录 &#xff08;1&#xff09;导入所需要的包&#xff08;2&#xff09;读取数据并展示&#xff08;3&#xff09;数据预处理&#xff08;4&#xff09;划分训练集和测试集&#xff08;5&#xff09;构建RNN回归模型&#xff08;6&#xff09;构造训练函数&…

Vue3响应式系统(三)

Vue3响应式系统(二)https://blog.csdn.net/qq_55806761/article/details/135612738 七、无限递归循环。 响应式系统里无限递归也是需要考虑到的。 什么情况会出现无限递归循环&#xff1f; 代码示例&#xff1a; const data { foo: 1 } const obj new Proxy(/* * */) effe…