MySQL零基础入门教程-6 查询去重、内外连接查询、子查询、分页查询DQL,基础+实战
教程来源:B站视频BV1Vy4y1z7EX
001-数据库概述_哔哩哔哩_bilibili
我听课收集整理的课程的完整笔记,供大家学习交流下载:夸克网盘分享
本文内容为完整笔记的第六篇
分组查询&DQL总结P41-P66
- 1、把查询结果去除重复记录
- 注意:原表数据不会被修改,只是查询结果去重。
- 去重需要使用一个关键字:distinct
-
- distinct只能出现在所有字段的最前方。
ename有14行,job只有4行
-
- distinct出现在job,deptno两个字段之前,表示两个字段联合起来去重。
-
- 统计一下工作岗位的数量?(去重后依旧可以使用分组函数)
- 2、连接查询
- 2.1、什么是连接查询?
- 从一张表中单独查询,称为单表查询
- emp表和dept表联合起来查询数据,从emp表中取员工名字,从dept表中取部门名字.
- 这种跨表查询,多张表联合起来查询数据,被称为连接查询。
- 2.2、连接查询的分类?
- 根据语法的年代分类:
- SQL92:1992年的时候出现的语法
- SQL99:1999年的时候出现的语法
- 我们这里重点学习sQL99.(这个过程中简单演示一个sQL92的例子)
- 根据表连接的方式分类:
- 内连接:
- 等值连接
- 非等值连接
- 自连接
- 外连接:
- 左外连接(左连接)
- 右外连接(右连接)
- 全连接(不讲)
- 内连接:
- 根据语法的年代分类:
- 2.3、当两张表进行连接查询时,没有任何条件的限制会发生什么现象?
- 案例:查询每个员工所在部门名称?
- 2.1、什么是连接查询?
-
-
- 两张表连接没有任何条件限制:
-
-
-
- 当两张表进行连接查询,没有任何条件限制的时候,最终查询结果条数,是两张表条数的乘积,这种现象被称为:笛卡尔积现象。(笛卡尔发现的,这是一个数学现象.)
- 2.4、怎么避免笛卡尔积现象?
- 连接时加条件,满足这个条件的记录被筛选出来!
-
-
-
- 思考:最终查询的结果条数是14条,但是匹配的过程中,匹配的次数减少了吗?还是56次,只不过进行了四选一。次数没有减少。
- select字段的时候每个字段会在两个表里面都查一遍,所以给表起别名然后指定表的字段进行筛选
-
这里的e. d. 用的是SQL92语法
-
-
- 注意:通过笛卡尔积现象得出,表的连接次数越多效率越低,尽量避免表的连接次数。
- 2.5、内连接之等值连接。
- 案例:查询每个员工所在部门名称,显示员工名和部门名?
- emp e和dept d表进行连接。条件是:e.deptno=d.deptno
- SQL92语法:
- 案例:查询每个员工所在部门名称,显示员工名和部门名?
-
-
-
- SQL99语法:
-
-
-
- join前的inner被省略
-
条件是等量关系,所以被称为等值连接。
-
- 2.6、内连接之非等值连接
- 案例:找出每个员工的薪资等级,要求显示员工名、薪资、薪资等级?
- 2.6、内连接之非等值连接
-
-
- 条件不是一个等量关系,称为非等值连接。
-
-
- 2.7、内连接之自连接
- 案例:查询员工的上级领导,要求显示员工名和对应的领导名?
- 技巧:一张表看成两张表。
- 2.7、内连接之自连接
员工的领导编号 = 领导的员工编号
-
-
- 以上就是内连接中的:自连接,技巧:一张表看做两张表。
- 2.8、外连接
- 内连接(A和B连接,AB两张表没有主次关系。平等的。)
- 内连接的特点:完成能够匹配上这个条件的数据查询出来。
- 内连接(A和B连接,AB两张表没有主次关系。平等的。)
-
所以没有人从属四部门的时候,就不会显示四部门了
-
-
- 外连接(右外连接):
-
-
-
-
- right代表什么:表示将join关键字右边的这张表看成主表,主要是为了将这张表的数据全部查询出来,捎带着关联查询左边的表.
- 在外连接当中,两张表连接,产生了主次关系。
- 外连接(左外连接):
-
-
-
-
-
- 带有right的是右外连接,又叫做右连接。
- 带有left的是左外连接,又叫做左连接。
- 任何一个右连接都有左连接的写法。
- 任何一个左连接都有右连接的写法。
- 重点是指定谁是主表
- outer外连接是可以省略的,带着可读性强。
-
-
-
-
- 思考:外连接的查询结果条数一定是>-内连接的查询结果条数?正确
- 案例:查询每个员工的上级领导,要求显示所有员工的名字和领导名?
-
因为老板没上级,所以需要以员工表为主表显示所有员工来把老板一起显示出来
-
- 2.9、三张表,四张表怎么连接?
- 语法:
- 2.9、三张表,四张表怎么连接?
-
-
- 一条SQL中内连接和外连接可以混合。都可以出现!
- 案例:找出每个员工的部门名称以及工资等级,要求显示员工名、部门名、薪资、薪资等级?
-
-
-
- 案例:找出每个员工的部门名称以及工资等级,还有上级领导,要求显示员工名、领导名、部门名、薪资、薪资等级?
-
- 3、子查询?
- 3.1、什么是子查询?
- select语句中嵌套select语句,被嵌套的select语句称为子查询.
- 3.2、子查询都可以出现在哪里呢?
- 3.1、什么是子查询?
-
- 3.3、where子句中的子查询
- 案例:找出比最低工资高的员工姓名和工资?
- 3.3、where子句中的子查询
-
- 3.4、from子句中的子查询
- 注意:from后面的子查询,可以将子查询的查询结果当做一张临时表-(技巧)
- 案例:找出每个岗位的平均工资的薪资等级
- 第一步:找出每个岗位的平均工资(按照岗位分组求平均值)
- 3.4、from子句中的子查询
-
-
- 第二步:克服心理障碍,把以上的查询结果就当做一张真实存在的表t
-
-
-
- t表和s表进行表连接,条件:t表avg(sal)between s.losal and s.hisal;
-
-
- 3.5、select后面出现的子查询(这个内容不需要掌握,了解即可!!!)
- 案例:找出每个员工的部门名称,要求显示员工名,部门名?
- 3.5、select后面出现的子查询(这个内容不需要掌握,了解即可!!!)
单行处理,嵌套的select只是在每一行处理的时候把部门名找出来了
-
-
- 注意:对于select后面的子查询来说,这个子查询只能一次返回1条结果,多于1条,就报错了!
-
- 4、union合并查询结果集
- 案例:查询工作岗位是MANAGER和SALESMAN的员工?
- 直接查两种岗位的员工
-
- 通过union合并查询结果
-
- union的效率要高一些。对于表连接来说,每连接一次新表,则匹配的次数满足笛卡尔积,成倍的翻。。。
- 但是union可以减少匹配的次数。在减少匹配次数的情况下,还可以完成两个结果集的拼接。
-
- union在使用的时候有注意事项吗?
- union在进行结果集合并的时候,要求两个结果集的列数相同。
- union在使用的时候有注意事项吗?
-
-
- 集合并时列和列的数据类型也要相同
-
- 5、limit
- 5.1、limit是将查询结果集的一部分取出来,通常使用在分页查询当中
- 百度默认:一页显示10条记录.
- 分页的作用是为了提高用户的体验,因为一次全部都查出来,用户体验差。
- 可以一页一页翻页看.
- 5.2、limit怎么用呢?
- 完整用法:limit startIndex,length startIndex是起始下标,length是长度.起始下标从0开始
- 缺省用法:limit 5;这是取前5.
- 按照薪资降序,取出排名在前5名的员工?
- 5.1、limit是将查询结果集的一部分取出来,通常使用在分页查询当中
-
- 5.3、注意:mysql当中limit在order by之后执行!!!!!!
- 5.4、取出工资排名在[3-5]名的员工?
-
- 5.5、取出工资排名在[5-9]名的员工?
- 语句如下
- 5.5、取出工资排名在[5-9]名的员工?
-
- 5.6、分页
- 每页显示3条记录
- 5.6、分页
-
-
- 每页显示pageSize条记录
-
-
-
- 记公式:limit (pageNo-1) *pageSize, pageSize
-
- 6、关于DQL语句的大总结:
- DQL语句
-
- 执行顺序
相关文章:

MySQL零基础入门教程-6 查询去重、内外连接查询、子查询、分页查询DQL,基础+实战
教程来源:B站视频BV1Vy4y1z7EX 001-数据库概述_哔哩哔哩_bilibili 我听课收集整理的课程的完整笔记,供大家学习交流下载:夸克网盘分享 本文内容为完整笔记的第六篇 分组查询&DQL总结P41-P66 1、把查询结果去除重复记录 注意…...

Elastic:如何将数据转化为可操作的见解?
作者:来自 Elastic Elastic Platform Team 一切,从某种程度上说,每个人,都是数据。在我们这个数据驱动的世界里,我们的兴趣和互动被统计和分类,为组织提供如何创造更好的产品和更好的体验的见解。更不用说&…...

基于SSM和VUE的药品管理系统(含源码+sql+视频导入教程+文档)
👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于SSM和VUE的药品管理系统2拥有两种角色 管理员:药品管理、出库管理、入库管理、销售员管理、报损管理等 销售员:登录注册、入库、出库、销售、报损等 1.1 背景…...

机器学习--神经网络
神经网络 计算 神经网络非常简单,举个例子就理解了(最后一层的那个写错了,应该是 a 1 ( 3 ) a^{(3)}_1 a1(3)): n o t a t i o n notation notation: a j ( i ) a^{(i)}_j aj(i) 表示第 i i i 层的…...

post请求中有[]报400异常
序言 在和前端同学联调的时候,发现只要post请求参数里面有[],就会报400的错误 可以看到日志中: The valid characters are defined in RFC 7230 and RFC 3986 解决办法: 参考了博客: spring boot 中解决post请求中有…...

ad22 如何在pcb 的keepout layout 上画线 然后裁出想要的黑色画布大小
选择下面的keepout layout,然后右键打开,然后按照这个图进行选择 然后看这个界面我收藏的第三个,就可以了...

SparkSQL SET和RESET
前言 我们在用代码写spark程序的时候,如果要设置一些配置参数,可以通过: SparkConf val conf = new SparkConf().setMaster("local[2]").setAppName("CountingSheep") val sc = new SparkContext(conf)spark-submit ./bin/spark-submit --name "M…...
java 中线程的等待和唤醒
java.lang.Object#wait() java.lang.Object#wait(long) java.lang.Object#wait(long, int) java.lang.Object#notify() java.lang.Object#notifyAll() 这几个方法属于Object,在使用 synchronized 实现同步的时候,需要使用当前监视器的以上方法ÿ…...

windows下自启springboot项目(jar+nginx)
1、将springboot项目打包为jar 2、新建文本文档 test.txt,并输入 java -jar D:\test\test.jar(修改为自己的jar包位置) 保存 然后修将后缀名改为 .bat 3、在同一目录再新建 文本文档test.txt,输入以下内容,&…...

解锁SAP数据的潜力:SNP Glue与SAP Datasphere的协同作用
在各种文章中,我们研究了客户如何利用SNP Glue与基于云的数据仓库和数据湖相结合,以充分利用其SAP数据。SNP Glue 通过高性能集成解决方案帮助客户解锁 SAP 数据孤岛。例如,可以使用SNP Glue先进的增量捕获(CDC)近乎实…...

Missing package to enable rendering OpenAI Gym in Colab
题意:“缺少用于在 Colab 中渲染 OpenAI Gym 的软件包。” 问题背景: Im attempting to render OpenAI Gym environments in Colab via a Mac using the StarAI code referenced in previous questions on this topic. However, it fails. The key erro…...

通过打包 Flash Attention 来提升 Hugging Face 训练效率
简单概述 现在,在 Hugging Face 中,使用打包的指令调整示例 (无需填充) 进行训练已与 Flash Attention 2 兼容,这要归功于一个最近的 PR以及新的DataCollatorWithFlattening。 最近的 PRhttps://github.com/huggingface/transformers/pull/3…...
用hiredis连接redis
hiredis 什么是 Hiredis Hiredis 是一个用于与 Redis 服务器进行通信的 C 语言库。它提供了一组 API,方便开发者在各种应用场景中实现与 Redis 服务器的数据交互操作。 在服务器端的应用中,比如构建 Web 服务或者后端处理程序时,如果需要频…...

第G8周:ACGAN任务
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 本周任务: 根据GAN、CGAN、SGAN及它们的框架图,写出ACGAN代码。 框架图 从图中可以看到,ACGAN的前半部分类似于CGAN&#…...
nvm拉取安装node包时报错的解决办法
问题一:用nvm安装某个版本node包时,node正确安装了,但是对应的npm无法安装 原因:原系统中node.js没有卸载干净, 解决办法:先把原系统中node.js卸载干净。再安装nvm和node包 问题二:nvm无法拉取…...
PyTorch 和 TensorFlow
PyTorch 和 TensorFlow 是目前最流行的两个深度学习框架。它们各自有不同的特点和优势,适合不同的使用场景。以下是对这两个框架的详细比较和介绍。 1. PyTorch 简介 PyTorch 是由 Facebook AI Research (FAIR) 开发的开源深度学习框架,以其易用性和灵…...
数据库视图和索引
参考链接: 数据库的视图和索引的概念和区别_索引和视图的区别-CSDN博客 MySQL 数据库--索引(理论详解及实例演示)_数据库索引-CSDN博客 1.视图 视图是从一个或多个表中导出来的表,是一种不是一种真正存在的概念。这样…...

哈希表的底层实现(1)---C++版
目录 哈希表的基本原理 哈希表的优点 哈希表的缺点 应用场景 闭散列法 开散列法 开放定值法Open Addressing——线性探测的模拟实现 超大重点部分评析 链地址法Separate Chaining——哈希桶的模拟实现 哈希表(Hash Table)是一种数据结构&#x…...

如何使用PTK一键安装opengaussdb 5.0
1、关于PTK工具 MogDB数据库是云和恩墨基于openGauss开源数据库打造,安稳易用的企业级关系型数据库。 PTK是云和恩墨出品的一款工具,帮助用户更便捷地部署管理MogDB数据库。 1.1 使用场景 开发人员快速启动多个本地 MogDB 环境用户通过 PTK 快速安装…...

跟李沐学AI:长短期记忆网络LSTM
输入们、遗忘门和输出门 LSTM引入输入门、忘记门和输出门 输入门计算公式为:。 遗忘门计算公式为:。 输出门计算公式为:。 它们由三个具有sigmoid激活函数的全连接层处理, 以计算输入门、遗忘门和输出门的值。 因此,…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...

对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...

如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
学习一下用鸿蒙DevEco Studio HarmonyOS5实现百度地图
在鸿蒙(HarmonyOS5)中集成百度地图,可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API,可以构建跨设备的定位、导航和地图展示功能。 1. 鸿蒙环境准备 开发工具:下载安装 De…...