mysql数据库,sql语句中连接查询,连表查询,内连接,外连接,左外连接,右外连接,inner join、left join、right join,全连接

news2024/11/24 19:46:02

连表查询

现有多张表:员工表 emp(员工编号、姓名、工资、部门号、经理编号)、部门表 dept(部门号、部门名称、部门位置)、工资等级表 salgrade(等级、工资下限、工资上限)

连接查询:当查询的数据不在一张表的时候,需要用到连接查询。

直接查询

要求:查询员工的姓名、工资、部门名称、部门位置。

select ename,salary,dname,location from emp,dept

问题:直接查询两张表,会产生笛卡尔积(两张表的数据的乘积),怎么消除笛卡尔积?

解决:使用下面的方法。----> 找出表之间的关系(也就是后面 on 的部分)

内连接(inner join on)

要求:查询员工的姓名、工资、部门名称、部门位置。

语法1:select 字段名 from 左表,右表 where 左表.关联字段=右表.关联字段;

比如:select ename,salary,dname,location from emp,dept where emp.deptno=dept.deptno;

语法2(推荐):select 字段名 from 左表 [inner] join 右表 on 左表.关联字段=右表.关联字段;

外连接
左外连接(left join on)

要求:查询员工的姓名、工资、部门名称、部门位置。要求查出所有员工信息,即使这个员工没有所属的部门。

语法:select 字段名 from 左表 left join 右表 on 左表.关联字段=右表.关联字段;

比如:select ename,salary,dname,location from emp left join dept on emp.deptno=dept.deptno;
在这里插入图片描述

右外连接(right join on)

要求:查询员工的姓名、工资、部门名称、部门位置。要求查出所有部门信息,即使这个部门里面没有员工。

语法:select 字段名 from 左表 right join 右表 on 左表.关联字段=右表.关联字段;
在这里插入图片描述
因此:

  • 内连接特点:左表中的数据必须要与右表中的数据相互关联,才会被查出来

  • 左外连接特点:左表中所有的数据都会被查出来,如果没有与右表中关联的数据则用 null 代替。

  • 右外连接特点:右表中所有的数据都会被查出来,如果没有与左表中关联的数据则用 null 代替。

全连接

全连接:集合左外连接、右外连接。mysql 不支持全连接,Oracle 支持(就是:full join on)。怎么办?合并查询。

合并查询(union)

union: 连接,并能去除重复的。union all: 连接,并不去除重复的。

比如:

select 字段名 from 左表 left join 右表 on 左表.关联字段=右表.关联字段
union
select 字段名 from 左表 right join 右表 on 左表.关联字段=右表.关联字段;

在这里插入图片描述
注意: 在使用合并查询的时候,要保证两个结果的 列数、数据类型一致(没说字段名一致)

上面的连接,on 后面都是等值判断,假如不是等值判断怎么办?

在这里插入图片描述
1、要求:查询员工的姓名、工资、工资等级

比如:select ename,salary,grade from emp inner join salgrade on salary between losal and hisal;

2、要求:查询员工的姓名、工资、工资等级、部门名称、部门位置

比如:

select ename,salary,grade,dname,location from emp 
inner join salgrade on salary between losal and hisal
inner join dept on emp.deptno=dept.deptno;

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ClassLoader

Java /Android 默认ClassLoader是PathClassLoader Android 的 PathClassLoader 和DexClassLoader 都是BaseDexClassLoader的子类 BaseClassLoader是ClassLoader的子类,通过loadClass方法加载,Android将Java的ClassLoader简化了,第二个参数arg2 无效 loadClass 通过 findLoad…

搭建知识付费系统的最佳实践是什么

在数字化时代,搭建一个高效且用户友好的知识付费系统是许多创业者和内容创作者追求的目标。本文将介绍一些搭建知识付费系统的最佳实践,同时提供一些基本的技术代码示例,以帮助你快速入门。 1. 选择合适的技术栈: 搭建知识付费…

YOLO目标检测——烟叶病害检测数据集下载分享【含对应voc、coco和yolo三种格式标签】

实际项目应用:烟叶病虫害防治数据集说明:烟叶病害检测数据集,真实场景的高质量图片数据,数据场景丰富,类别分为:轻度病虫、中度病虫、高度病虫标签说明:使用lableimg标注软件标注,标…

微信群BUG大揭秘!开启身份切换神器

前言 最近微信群里出现了一个神秘的BUG,普通群成员竟然可以艾特全体成员。今天,就让我们一起揭秘这个令人震惊的微信群普通成员可全体成员的BUG 复现步骤 复现步骤也很简单,前提条件就是要在PC客户端操作!首先得有个属于自己的群…

OCR文字识别标注小助手

目录 背景 工具界面 操作 1、选择目录 2、更改为正确的信息 3、保存 4、说明 项目 代码 下载 背景 为什么要写这么一个小工具呢?因为要对文字进行标注。 为什么对文字进行标注呢?因为要重新训练识别。 为什么要重新训练识别呢?因…

python socket编程2 - socket创建发送方所需参数的获得

使用socket进行进程间通信或者跨网络的计算机间通讯,有点类似日常生活中的发送快递。 根据发送方的需要,选择不同的物流公司: 在选择适合的公司和运输方式后,需要在app上做出选择,并根据要求填写一些信息。app会根据…

根据视频编码时间批量重命名视频文件

整理收藏的小视频的时候发现很多视频命名很随意,自己命名又太麻烦,看着乱糟糟的文件又心烦,所有写了这个程序,代码如下: import osfrom filetype import filetype from pymediainfo import MediaInfovideo_extension …

【文件读取/包含】任意文件读取漏洞 afr_3

1.1漏洞描述 漏洞名称任意文件读取漏洞 afr_3漏洞类型文件读取/包含漏洞等级⭐⭐⭐⭐⭐漏洞环境docker攻击方式 1.2漏洞等级 高危 1.3影响版本 暂无 1.4漏洞复现 1.4.1.基础环境 靶场docker工具BurpSuite 1.4.2.环境搭建 1.创建docker-compose.yml文件 version: 3.2 servi…

从CentOS向KeyarchOS操作系统的wordpress应用迁移实战

文章目录 从CentOS向KeyarchOS操作系统的wordpress应用迁移实战一、使用浪潮信息X2Keyarch迁移工具完成操作系统的迁移1.1 迁移前的验证1.2 执行迁移评估1.3 开始迁移1.4 验证迁移结果1.5 迁移后的验证 二、总结 从CentOS向KeyarchOS操作系统的wordpress应用迁移实战 CentOS是一…

mysql操作 sql语句中的完整性约束有哪些,主键约束、外键约束、引用完整性约束,主键外键、唯一性

什么是约束:约束:就是约定哪些东西能填、怎么填?哪些东西不能填? 文章目录 前言:建表正文一、实体完整性约束1. 主键约束2. 唯一性约束3. 自增长约束4. 联合主键约束 二、域完整性约束三、引用完整性约束1. 外键约束 讲…

【Git企业开发】第七节.多人协作开发

文章目录 前言 一、多人协作开发 1.1 多人协作一 1.2 多人协作二 1.3 远程分支删除后,本地 git branch -a 依然能看到的解决办法 总结 前言 一、多人协作开发 1.1 多人协作一 目前,我们所完成的工作如下: 基本完成Git的所有本地库的相关操作&#xff0…

未来10年,NAND 与DRAM依然是存储主角

根据Yole Group调查机构的数据显示,在2022年独立记忆体(Stand-alone Memory)整体市场达到了1440亿美元。其中DRAM占比55.4%,NAND占比40.8%。剩下的NOR、(NV)SRAM/FRAM、EEPROM、新型非易失存储(PCM, ReRAM and STT-MRAM)等占比3.8…

蓝桥杯 string

string简介 string是C标准库的重要组成部分&#xff0c;主要用于字符串处理。 使用string库需要在头文件中包括该库 #include< string> string与char[]不同&#xff0c;string实现了高度的封装&#xff0c;可以很方便地完 成各种字符串的操作&#xff0c;比如拼接、截取…

Since Maven 3.8.1 http repositories are blocked

原因 高版本的maven不支持http的存储库。 解决方案 其实方法有好几种&#xff0c;比如降级maven版本至3.6.3(之前一直用的都是这个版本)&#xff0c;我选择了一种比较快(但不一定安全)的方式&#xff0c;因为3.6.3版本被我卸载了&#xff0c;这里直接修改idea的setting配置&…

【Java 进阶篇】JQuery 案例:下拉列表选中条目左右移动,打破选择的边界

在前端的舞台上&#xff0c;下拉列表是常见的用户交互元素&#xff0c;但有时候我们想要更多的交互体验。通过巧妙运用 JQuery&#xff0c;我们可以实现下拉列表中选中条目的左右移动功能&#xff0c;为用户提供更加灵活的选择方式。本篇博客将深入研究 JQuery 中实现这一功能的…

技巧篇:在Pycharm中配置集成Git

一、在Pycharm中配置集成Git 我们使用git需要先安装git工具&#xff0c;这里给出下载地址&#xff0c;下载后一路直接安装即可&#xff1a; https://git-for-windows.github.io/ 0. git中的一些常用词释义 Repository name&#xff1a; 仓库名称 Description(可选)&#xff1a;…

【数据结构】别跟我讲你不会冒泡排序

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在学习c和算法 ✈️专栏&#xff1a;数据结构 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章有啥瑕疵 希望大佬指点一二 如果文章对你有帮助…

旅拍摄影技巧澳大利亚、韩国旅行攻略

欢迎关注「苏南下」 在这里分享我的旅行和影像创作心得 刚刚在腾讯内部做了一场摄影分享课&#xff1a; 《旅拍摄影技巧&澳大利亚、韩国旅行攻略》 分享了早前去两个国家的一些旅行见闻和摄影心得。我发现&#xff1a;把自己学会的东西整理出来&#xff0c;再告诉给别人这件…

67基于matlab图像处理,包括颜色和亮度调整、翻转功能、空间滤波和去噪、频域滤波和去噪、噪声添加,形态学操作、边缘检测及示波器集成的GUI图像处理。

基于matlab图像处理&#xff0c;包括颜色和亮度调整、翻转功能、空间滤波和去噪、频域滤波和去噪、噪声添加&#xff0c;形态学操作、边缘检测及示波器集成的GUI图像处理。数据可更换自己的&#xff0c;程序已调通&#xff0c;可直接运行。 67 matlab图像处理图像降噪 (xiaohon…

cubemx工程更换同系列stm32芯片型号

cubemx工程更换stm32芯片型号 实验平台 软件&#xff1a;cubemx v6.10、vscode、MDK v5.27 旧型号芯片&#xff1a;stm32f103c8t6 新型号芯片&#xff1a;stm32f103ret6 步骤 1、复制stm32工程&#xff08;包含.ioc文件&#xff09;到另一个路径&#xff0c;新路径与原路径…