MySQL-子查询(DQL 结束)

054-where后面使用子查询

什么是子查询

  1. select语句中嵌套select语句就叫做子查询。
  2. select语句可以嵌套在哪里?
    1. where后面、from后面、select后面都是可以的。
select ..(select)..
from ..(select)..
where ..(select)..
where后面使用子查询

案例:找出高于平均薪资的员工姓名和薪资。
错误的示范:

select ename,sal from emp where sal > avg(sal);

可以使用子查询:

select ename, sal from emp where sal>(select avg(sal) from emp);

在这里插入图片描述

from后面使用子查询

小窍门:from后面的子查询可以看做一张临时表。
案例:找出每个部门的平均工资的等级。

select d.*, s.grade from (select deptno, avg(sal) avgsal from emp group by deptno) d join salgrade s on d.avgsal between s.losal and hisal;

在这里插入图片描述

select后面使用子查询

案例:查询员工属于哪个部门

select e.ename, (select d.dname from dept d where d.deptno=e.deptno) as dname from emp e;
select e.ename, d.dname from emp e join dept d on e.deptno=d.deptno;

在这里插入图片描述

057-exist与not exist的使用及与in的区别

在这里插入图片描述
案例:看一下谁下过单

in

select distinct customer_id from t_order;
select * from t_customer where customer_id in (select distinct customer_id from t_order);

在这里插入图片描述

exist

select * from t_customer c where exists(select * from t_order t where c.customer_id=t.customer_id);

在这里插入图片描述

in和exists区别

IN 和 EXISTS 都是用于关系型数据库查询的操作符。不同之处在于:

  1. IN 操作符是根据指定列表中的来判断是否满足条件,而 EXISTS 操作符则是根据子查询的结果是否有返回记录集来判断。
  2. EXISTS 操作符通常比 IN 操作符更,尤其是在子查询返回记录数很大的情况下。因为 EXISTS 只需要判断是否存在符合条件的记录,而 IN 操作符需要比对整个列表,因此执行效率相对较低。
  3. IN 操作符可同时匹配多个值,而 EXISTS 只能匹配一组条件

058-union&union all

不管是union还是union all都可以将两个查询结果集进行合并。
union会对合并之后的查询结果集进行去重操作。
union all是直接将查询结果集合并,不进行去重操作。(union all和union都可以完成的话,优先选择union all,union all因为不需要去重,所以效率高一些。)
image.png
image.png
案例:查询工作岗位是MANAGER和SALESMAN的员工

select ename, job from emp where job in ('MANAGER', 'SALESMAN');

select ename, job from emp where job='MANAGER'
union all
select ename, job from emp where job='SALESMAN';

以上案例采用or也可以完成,那or和union all有什么区别?考虑走索引优化之类的选择union all,其它选择or。
两个结果集合并时,列数量要相同:
image.png

059-通用的分页SQL- limit

  1. limit作用:查询第几条到第几条的记录。通常是因为表中数据量太大,需要分页显示。
  2. limit语法格式:
    1. limit 开始下标, 长度
    2. limit 长度(默认从0开始)
  3. 案例:查询员工表前5条记录
select * from emp limit 5;
select * from emp limit 0, 5;

在这里插入图片描述
DQL: Data QueryLanguage

DQL 结束:)

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

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

相关文章

C++中stack和queue

前言 在 C 中,stack(栈)和 queue(队列)是两种常用的容器适配器,分别用于管理数据的后进先出(LIFO)和先进先出(FIFO)访问模式。本文将详细介绍这两种数据结构的…

C#开源软件:OneNote组件oneMore轻松打造自己的公众号编辑器

OneMore是一款为Microsoft OneNote设计的插件,它提供了许多扩展功能来增强OneNote的使用体验。 插件功能概述: OneMore插件拥有多达一百多个扩展功能,这些功能覆盖了笔记编辑、搜索、导出等多个方面,为用户提供了更加便捷和高效的…

【项目实战】--云备份系统

1、云备份认识 自动将本地计算机上指定文件夹中需要备份的文件上传备份到服务器中。并且能够随时通过浏览器进行查看并且下载,其中下载过程支持断点续传功能,而服务器也会对上传为文件进行热点管理,将非热点文件进行压缩存储,节省…

openGauss 6.0.0 一主二备集群安装及使用zcbus实现Oracle到openGauss的数据同步

一、前言 openGauss 6.0.0-RC1是openGauss 2024年3月发布的创新版本,该版本生命周期为0.5年。根据openGauss官网介绍,6.0.0-RC1与之前的版本特性功能保持兼容,另外,在和之前版本兼容的基础上增加了很多新功能,比如分区表性能优化…

Java集合自测题

文章目录 一、说说 List , Set , Map 三者的区别?二、List , Set , Map 在 Java 中分别由哪些对应的实现类?底层的数据结构?三、有哪些集合是线程不安全的?怎么解决呢?四、HashMap 查询,删除的时间复杂度五…

autosleep框架设计与实现

在低功耗系统中,autosleep是一个较小的模块,是低功耗主流程的入口。在Linux内核中,autosleep是休眠流程的触发点和入口点,PM Core的休眠流程入口pm_suspend()就是被autosleep的睡眠工作队列调用而进入休眠的。 该功能的支持受宏…

MyBatis 参数上的处理的细节内容

1. MyBatis 参数上的处理的细节内容 文章目录 1. MyBatis 参数上的处理的细节内容2. MyBatis 参数上的处理3. 准备工作4. 单个(一个)参数4.1 单个(一个)简单类型作为参数4.2 单个(一个) Map集合 作为参数4.3 单个(一个) 实体类POJO作为参数 5. 多个参数5.1 Param注解(命名参数)…

计算机相关专业的探讨

目录 一、计算机相关专业是否仍是“万金油”选择 二、计算机行业的未来发展态势 三、从专业与个人的匹配度判断选择计算机相关专业 四、对于高考生的建议 一、计算机相关专业是否仍是“万金油”选择 计算机相关专业在过去很长一段时间内确实被视为“万金油”专业&#xff0…

算法训练营day06--242.有效的字母异位词+349. 两个数组的交集+202. 快乐数+1. 两数之和

一、242.有效的字母异位词 题目链接:https://leetcode.cn/problems/valid-anagram/description/ 文章讲解:https://programmercarl.com/0242.%E6%9C%89%E6%95%88%E7%9A%84%E5%AD%97%E6%AF%8D%E5%BC%82%E4%BD%8D%E8%AF%8D.html 视频讲解:http…

电视剧推荐

1、《春色寄情人》 2、《唐朝诡事录》 3、《南来北往》 4、《与凤行》 5、《利剑玫瑰》 6、《承欢记》

【教程】使用立创EDA打开JSON格式的PCB及原理图

这里写目录标题 一、将PCB和原理图放同一文件夹二、打开嘉立创EDA并导入.zip文件三、选择.zip文件并选择 “导入文件并提取库” 一、将PCB和原理图放同一文件夹 并打包成.zip文件 二、打开嘉立创EDA并导入.zip文件 嘉立创 我这里用的网页端,客户端下载页面拉到…

html的网页制作代码分享

<!-- prj_8_2.html --> <!DOCTYPE html> <html lang "EN"><head><meta charset"utf-8" /><title>页面布局设计</title><style type "text/css">*{padding: 0px;margin:0px;}#header{back…

Spring中IOC容器

IoC IOC容器 IoC是一种设计思想&#xff0c;面向对象编程 Spring通过IoC管理所有Java对象的实例化和初始化&#xff0c;控制对象之间依赖关系 将IoC容器管理的Java对象称为Spring Bean&#xff0c;与new创建的对象没有区别 控制反转&#xff08;IoC Inversion of Controle&a…

世优科技AI数字人多模态交互系统“世优波塔”正式发布

2024年6月6日&#xff0c;世优科技“波塔发布会”在北京举办&#xff0c;本次发布会上&#xff0c;世优科技以全新的“波塔”产品诠释了更高效、更智能、更全面的AI数字人产品及软硬件全场景解决方案&#xff0c;实现了世优品牌、产品和价值的全面跃迁。来自行业协会、数字产业…

大众点评全国丽人POI采集225万家-2024年5月底

大众点评全国丽人POI采集225万家-2024年5月底 店铺POI点位示例&#xff1a; 店铺id Hav6zIYtzhyyopIZ 店铺名称 防屏蔽 十分制服务评分 8.9 十分制环境评分 8.9 十分制划算评分 8.9 人均价格 210 评价数量 19935 店铺地址 建北一支路观音桥步行街红鼎国际A座9-9 店铺…

英伟达GPU对比分析:A100、A800、H100与H800

在当今技术迅速发展的时代&#xff0c;英伟达的GPU产品线提供了多种高性能选项&#xff0c;以满足不同类型的工作负载需求。本文将对英伟达的四种GPU型号——A100、A800、H100和H800进行深入对比分析&#xff0c;探讨它们在性能、架构、应用场景等方面的差异&#xff0c;以帮助…

LIN 入门(1)

1、概述 LIN 是什么 LIN 是 Local Interconnect Network 的缩写&#xff0c;是基于 UART/SCI(Universal Asynchronous Receiver-Transmitter / Serial Communication Interface&#xff0c;通用异步收发器/串行通信接口)的低成本串行通信协议。可用于汽车、家电、办 公设备等…

代码随想录-二叉树 | 111 二叉树的最小深度

代码随想录-二叉树 | 111 二叉树的最小深度 LeetCode 111 二叉树的最小深度解题思路代码难点总结 LeetCode 111 二叉树的最小深度 题目链接 代码随想录 题目描述 给定一个二叉树&#xff0c;找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说…

讯飞星火模型-语音转文字实现

目录 项目结构 准备音频 接口Demo 准备代码&#xff08;完整修改后&#xff09; 测试提取中文文字代码 结果 下载链接&#xff1a; 这是上周打算试试&#xff0c;提取视频文字之后&#xff0c;制作视频字幕&#xff0c;从而想用大模型来实现&#xff0c;基本的demo可以在…

图像的混合与渐进变换

1.实验目的 平常我们看到的美图秀秀等两个图片混合是怎么生成的呢&#xff0c;今天我们看看图像处理关于这部分怎么做的&#xff1f; 2.实验条件 pycharm python编译器 3.实验代码 # File: 图像混合与渐进变换.py # Author: chen_song # Time: 2024/6/11 下午6:08 "…