当前位置: 首页 > news >正文

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.4、怎么避免笛卡尔积现象?
      • 连接时加条件,满足这个条件的记录被筛选出来!

      • 思考:最终查询的结果条数是14条,但是匹配的过程中,匹配的次数减少了吗?还是56次,只不过进行了四选一。次数没有减少。
      • select字段的时候每个字段会在两个表里面都查一遍,所以给表起别名然后指定表的字段进行筛选

这里的e.  d. 用的是SQL92语法

      • 注意:通过笛卡尔积现象得出,表的连接次数越多效率越低,尽量避免表的连接次数。
    • 2.5、内连接之等值连接。
      • 案例:查询每个员工所在部门名称,显示员工名和部门名?
        • emp e和dept d表进行连接。条件是:e.deptno=d.deptno
      • SQL92语法:

      • SQL99语法:

      • join前的inner被省略

条件是等量关系,所以被称为等值连接。

    • 2.6、内连接之非等值连接
      • 案例:找出每个员工的薪资等级,要求显示员工名、薪资、薪资等级?

      • 条件不是一个等量关系,称为非等值连接。

    • 2.7、内连接之自连接
      • 案例:查询员工的上级领导,要求显示员工名和对应的领导名?
      • 技巧:一张表看成两张表。

员工的领导编号 = 领导的员工编号

      • 以上就是内连接中的:自连接,技巧:一张表看做两张表。
    • 2.8、外连接
      • 内连接(A和B连接,AB两张表没有主次关系。平等的。)
        • 内连接的特点:完成能够匹配上这个条件的数据查询出来。

所以没有人从属四部门的时候,就不会显示四部门了

      • 外连接(右外连接):

        • right代表什么:表示将join关键字右边的这张表看成主表,主要是为了将这张表的数据全部查询出来,捎带着关联查询左边的表.
        • 在外连接当中,两张表连接,产生了主次关系。
      • 外连接(左外连接):

        • 带有right的是右外连接,又叫做右连接。
        • 带有left的是左外连接,又叫做左连接。
        • 任何一个右连接都有左连接的写法。
        • 任何一个左连接都有右连接的写法。
        • 重点是指定谁是主表
      • outer外连接是可以省略的,带着可读性强。

      • 思考:外连接的查询结果条数一定是>-内连接的查询结果条数?正确
      • 案例:查询每个员工的上级领导,要求显示所有员工的名字和领导名?

因为老板没上级,所以需要以员工表为主表显示所有员工来把老板一起显示出来

    • 2.9、三张表,四张表怎么连接?
      • 语法:

      • 一条SQL中内连接和外连接可以混合。都可以出现!
      • 案例:找出每个员工的部门名称以及工资等级,要求显示员工名、部门名、薪资、薪资等级?

      • 案例:找出每个员工的部门名称以及工资等级,还有上级领导,要求显示员工名、领导名、部门名、薪资、薪资等级?

  • 3、子查询?
    • 3.1、什么是子查询?
      • select语句中嵌套select语句,被嵌套的select语句称为子查询.
    • 3.2、子查询都可以出现在哪里呢?

    • 3.3、where子句中的子查询
      • 案例:找出比最低工资高的员工姓名和工资?

    • 3.4、from子句中的子查询
      • 注意:from后面的子查询,可以将子查询的查询结果当做一张临时表-(技巧)
      • 案例:找出每个岗位的平均工资的薪资等级
      • 第一步:找出每个岗位的平均工资(按照岗位分组求平均值)

      • 第二步:克服心理障碍,把以上的查询结果就当做一张真实存在的表t

      • t表和s表进行表连接,条件:t表avg(sal)between s.losal and s.hisal;

    • 3.5、select后面出现的子查询(这个内容不需要掌握,了解即可!!!)
      • 案例:找出每个员工的部门名称,要求显示员工名,部门名?

单行处理,嵌套的select只是在每一行处理的时候把部门名找出来了

      • 注意:对于select后面的子查询来说,这个子查询只能一次返回1条结果,多于1条,就报错了!

  • 4、union合并查询结果集
    • 案例:查询工作岗位是MANAGER和SALESMAN的员工?
    • 直接查两种岗位的员工

    • 通过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.3、注意:mysql当中limit在order by之后执行!!!!!!
    • 5.4、取出工资排名在[3-5]名的员工?

    • 5.5、取出工资排名在[5-9]名的员工?
      • 语句如下

    • 5.6、分页
      • 每页显示3条记录

      • 每页显示pageSize条记录

      • 记公式:limit (pageNo-1) *pageSize, pageSize
  • 6、关于DQL语句的大总结:
    • DQL语句

    • 执行顺序

相关文章:

MySQL零基础入门教程-6 查询去重、内外连接查询、子查询、分页查询DQL,基础+实战

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

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 实现同步的时候,需要使用当前监视器的以上方法&#xff…...

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.视图 视图是从一个或多个表中导出来的表,是一种不是一种真正存在的概念。这样&#xf…...

哈希表的底层实现(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激活函数的全连接层处理, 以计算输入门、遗忘门和输出门的值。 因此&#xff0c…...

【BIM模型数据】BIM模型的数据如何存储,BIM大模型数据云端存储,需要考虑哪些因素,BIM模型数据存储和获取

【BIM模型数据】BIM模型的数据如何存储,BIM大模型数据云端存储,需要考虑哪些因素,BIM模型数据存储和获取 BIM文件的结构化数据和非结构化数据的存储方式,需要根据数据的特性和使用需求来选择。以下是一些推荐的存储策略&#xff1…...

【LLM大模型】大模型架构:layer\_normalization

2.layer_normalization 1.Normalization 1.1 Batch Norm 为什么要进行BN呢? 在深度神经网络训练的过程中,通常以输入网络的每一个mini-batch进行训练,这样每个batch具有不同的分布,使模型训练起来特别困难。Internal Covariat…...

PON光模块的独特类型和特性

在当前互联网需求快速增长的背景下,PON光模块已成为实现光纤网络高速数据传输的重要组成部分。从住宅宽带到各种企业应用程序解决方案,PON光模块始终致力于实现高质量的数据传输与无缝通信。了解PON光模块的类型和特性对于深入理解现代网络基础设施至关重…...

架构与业务的一致性应用:实现企业战略目标和合规管理的全面指南

在当今快速变化的数字经济中,信息架构已成为企业实现其业务目标、优化运营效率和确保数据安全的关键工具。 一个成功的信息架构不仅要与企业的战略目标紧密对齐,还必须遵循日益严格的合规性要求,以保护敏感数据并满足法规规定。《信息架构&a…...

时尚穿搭想换就换,各种风格一键完美搭配!亲测在线虚拟试衣换装平台效果超赞!

随着科技的发展,时尚领域也迎来了新的革命。传统的试衣方式逐渐被现代科技所取代,虚拟试衣间的出现使得用户可以在舒适的家中轻松体验不同的服装风格。 先前给大家也介绍过一些虚拟试衣的技术,例如AnyFit或者OutfitAnyone等,今天…...

【C++】C++ 标准库string类介绍(超详细解析,小白必看系列)

C 标准库中的 std::string 类是一个非常强大的工具&#xff0c;用于处理和操作字符串。它属于 <string> 头文件&#xff0c;并提供了一套丰富的功能和方法。以下是 std::string 类的一些主要特性和常用操作&#xff1a; 1 string简介 字符串是表示字符序列的类 标准的字…...

若依RuoYi项目环境搭建教程(RuoYi-Vue + RuoYi-Vue3版本)

文章目录 一、开发脚手架选择二、RuoYi框架1、介绍2、版本发展3、为什么选择若依4、优缺点5、项目内置功能 三、后端项目部署1、拉取源码2、环境要求3、Maven构建4、MySQL相关&#xff08;1&#xff09;导入SQL脚本&#xff08;2&#xff09;配置信息 5、Redis相关&#xff08;…...

Java 后端接口入参 - 联合前端VUE 使用AES完成入参出参加密解密

加密效果&#xff1a; 解密后的数据就是正常数据&#xff1a; 后端&#xff1a;使用的是spring-cloud框架&#xff0c;在gateway模块进行操作 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>30…...

HarmonyOS开发之使用PhotoViewPicker(图库选择器)保存图片

一&#xff1a;效果图 二&#xff1a;添加依赖 import fs from ohos.file.fs;//文件管理 import picker from ohos.file.picker//选择器 三&#xff1a;下载&#xff0c;保存图片的实现 // 下载图片imgUrldownloadAndSaveImage(imgUrl: string) {http.createHttp().request(…...

跨境独立站支付收款常见问题排雷篇1.0丨出海笔记

最近小伙伴们在社群讨论挺多关于独立站支付问题的&#xff0c;鉴于不少朋友刚接触独立站&#xff0c;我整理了一些独立站支付相关的问题和解决方案&#xff0c;供大家参考&#xff0c;百度网上一堆媒体的那些软文大家就别看了&#xff0c;都是软广或者抄来抄去&#xff0c;让大…...