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

【SQL学习进阶】从入门到高级应用(七)

在这里插入图片描述

文章目录

  • ✨数据处理函数
    • ✨if函数
    • ✨cast函数
    • ✨加密函数
  • ✨分组函数
    • ✨max
    • ✨min
    • ✨avg
    • ✨sum
    • ✨count
    • ✨分组函数组合使用
    • ✨分组函数注意事项
  • ✨分组查询
    • ✨group by
    • ✨having
    • ✨组内排序
  • ✨总结单表的DQL语句

🌈你好呀!我是 山顶风景独好
💕欢迎来到我的博客,很高兴能够在这里和您见面!
💕希望您在这里可以感受到一份轻松愉快的氛围!
💕这里不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
🚀 欢迎一起踏上探险之旅,挖掘无限可能,共同成长!

🏠大家订阅本专栏!本专栏旨在为SQL初学者提供一条逐步迈向高级应用的学习之路,带您从零开始,一步一步练习,逐步掌握SQL的精髓,实现技能的提升与飞跃!😊

✨数据处理函数

✨if函数

如果条件为TRUE则返回“YES”,如果条件为FALSE则返回“NO”:

SELECT IF(500<1000, "YES", "NO");

例如:如果工资高于3000,则输出1,反之则输出0
image.png
再例如:如果名字是SMITH的,工资上调10%,其他员工工资正常显示。
image.png
再例如:工作岗位是MANAGER的工资上调10%,是SALESMAN的工资上调20%,其他岗位工资正常。
image.png
上面这个需求也可以使用:case… when… then… when… then… else… end来完成:
image.png

✨cast函数

cast函数用于将值从一种数据类型转换为表达式中指定的另一种数据类型
语法:cast(值 as 数据类型)
例如:cast(‘2020-10-11’ as date),表示将字符串’2020-10-11’转换成日期date类型。
在使用cast函数时,可用的数据类型包括:

  • date:日期类型
  • time:时间类型
  • datetime:日期时间类型
  • signed:有符号的int类型(有符号指的是正数负数)
  • char:定长字符串类型
  • decimal:浮点型

image.png
image.png
image.png
image.png

✨加密函数

md5函数,可以将给定的字符串经过md5算法进行加密处理,字符串经过加密之后会生成一个固定长度32位的字符串,md5加密之后的密文通常是不能解密的:
image.png

✨分组函数

分组函数的执行原则:先分组,然后对每一组数据执行分组函数。如果没有分组语句group by的话,整张表的数据自成一组。
分组函数包括五个:

  • max:最大值
  • min:最小值
  • avg:平均值
  • sum:求和
  • count:计数

✨max

找出员工的最高薪资

select max(sal) from emp;

✨min

找出员工的最低工资

select min(sal) from emp;

✨avg

计算员工的平均薪资

select avg(sal) from emp;

✨sum

计算员工的工资和

select sum(sal) from emp;

计算员工的津贴之和

select sum(comm) from emp;

重点:所有的分组函数都是自动忽略NULL的。

✨count

统计员工人数

select count(ename) from emp;
select count(*) from emp;
select count(1) from emp;

count(*)和count(1)的效果一样,统计该组中总记录行数。
count(ename)统计的是这个ename字段中不为NULL个数总和。
例如:count(comm) 结果是 4,而不是14

select count(comm) from emp;

统计岗位数量

select count(distinct job) from emp;

✨分组函数组合使用

select count(*),max(sal),min(sal),avg(sal),sum(sal) from emp;

✨分组函数注意事项

分组函数不能直接使用在where子句当中
select ename,job from emp where sal > avg(sal); 这个会报错的
原因:分组的行为是在where执行之后才开始的。

✨分组查询

✨group by

按照某个字段分组,或者按照某些字段联合分组。注意:group by的执行是在where之后执行。
语法:
group by 字段
group by 字段1,字段2,字段3…
找出每个岗位的平均薪资

select job, avg(sal) from emp group by job;

找出每个部门最高工资

select deptno,max(sal) from emp group by deptno;

找出每个部门不同岗位的平均薪资

select deptno,job,avg(sal) from emp group by deptno,job;

当select语句中有group by的话,select后面只能跟分组函数或参加分组的字段

select ename,deptno,avg(sal) from emp group by deptno; // 这个SQL执行后会报错。

image.png

✨having

having写在group by的后面,当你对分组之后的数据不满意,可以继续通过having对分组之后的数据进行过滤。
where的过滤是在分组前进行过滤。
使用原则:尽量在where中过滤,实在不行,再使用having。越早过滤效率越高。

找出除20部分之外,其它部门的平均薪资。

select deptno,avg(sal) from emp where deptno<>20 group by deptno; // 建议
select deptno,avg(sal) from emp group by deptno having deptno <> 20; // 不建议

查询每个部门平均薪资,找出平均薪资高于2000的。

select deptno,avg(sal) from emp group by deptno having avg(sal) > 2000;

✨组内排序

案例:找出每个工作岗位的工资排名在前两名的。
substring_index函数的使用:
image.png
group_concat函数的使用:
image.png
学习了这两个函数之后,自己可以尝试写出来吗?

✨总结单表的DQL语句

select …5
from …1
where …2
group by …3
having …4
order by …6
重点掌握一个完整的DQL语句执行顺序。


✨ 这就是今天要分享给大家的全部内容了,我们下期再见!😊

🏠 我在CSDN等你哦!我的主页😍

在这里插入图片描述

相关文章:

【SQL学习进阶】从入门到高级应用(七)

文章目录 ✨数据处理函数✨if函数✨cast函数✨加密函数 ✨分组函数✨max✨min✨avg✨sum✨count✨分组函数组合使用✨分组函数注意事项 ✨分组查询✨group by✨having✨组内排序 ✨总结单表的DQL语句 &#x1f308;你好呀&#xff01;我是 山顶风景独好 &#x1f495;欢迎来到我…...

20231911 2023-2024-2 《网络攻防实践》实践十一报告

实践内容 &#xff08;1&#xff09;web浏览器渗透攻击 任务&#xff1a;使用攻击机和Windows靶机进行浏览器渗透攻击实验&#xff0c;体验网页木马构造及实施浏览器攻击的实际过程。 实验步骤&#xff1a; ①选择使用Metasploit中的MS06-014渗透攻击模块②选择PAYLOAD为任意…...

5G专网驻网失败分析(suci无效)

suci 5G终端第一次驻网时&#xff0c;注册消息Registartion request中携带的5GS mobile identity要携带suci类型的mobile identity。 注册消息协议规范见5G NAS 协议3gpp TS24.501 8.2.6 Registration request。 suci协议规范参见3gpp TS24.501 9.11.3.4 5GS mobile identity …...

【PHP项目实战训练】——laravel框架的实战项目中可以做模板的增删查改功能(1)

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…...

go语言使用model Gorm MySQL查询数据 定时十分钟查询一次 查询十分钟前新建的数据

在Go语言中&#xff0c;使用GORM库与MySQL数据库交互并定时查询数据是常见的需求。以下是一个基本的示例&#xff0c;展示了如何设置定时任务&#xff0c;并使用GORM查询十分钟前新建的数据&#xff1a; 首先&#xff0c;你需要安装GORM和MySQL驱动&#xff1a; bash go get -…...

透视AI技术:探索折射技术在去衣应用中的奥秘

引言&#xff1a; 随着人工智能技术的飞速发展&#xff0c;其在图像处理和计算机视觉领域的应用日益广泛。其中&#xff0c;AI去衣技术作为一种颇具争议的应用&#xff0c;引发了广泛的讨论和关注。本文将深入探讨折射技术在AI去衣中的应用及其背后的原理。 一、AI去衣技术简介…...

计算机网络工程师需要掌握的知识点

网络基础 网络协议OSI参考模型TCP/IP 体系结构广域网与接入网技术&#xff1a;HDLC、PPP。xDSL、HFCIEEE802标准、以太网技术。网桥、交换机、无线局域网&#xff08;WLAN&#xff09;、VLAN、TRUNK、GVRP、STP、综合布线系统IP地址、子网划分、CIDR、ARP、ICMP、IPV6、TCP、UD…...

Java-Collection家族(List接口)

集合-Collection家族-List接口 List接口 1 特点 ​ 有序且可重复&#xff08;因为List接口中添加了许多针对下标操作的方法&#xff09; 2 四种实现类的数据类型与特点 ​ a. ArrayList ​ 数据结构&#xff1a;一维数组 ​ 特点&#xff1a;存储数据 ​ b. LinkedList ​ 数…...

成绩发布小程序哪个好用?

大家好&#xff0c;今天我要来跟大家分享一个超级实用的小秘密——易查分小程序&#xff01;作为老师&#xff0c;你是不是还在为发放成绩而头疼&#xff1f;是不是还在为通知家长而烦恼&#xff1f;别急&#xff0c;易查分小程序来帮你啦&#xff01; 易查分简直是老师们的贴心…...

如何让大模型在智能时代背景下更加先进:一种基于时代特征的探讨

随着人工智能技术的飞速发展&#xff0c;大型模型如深度学习网络和强化学习算法已经在各个领域取得了显著的成果。然而&#xff0c;随着应用场景的不断扩展和复杂化&#xff0c;如何让这些大模型在智能时代背景下更加先进&#xff0c;已经成为了一个亟待解决的问题。本文将从以…...

Mac 分享 WIFI 后,iPhone 连接 WIFI,但无法上网

0x00 分享WIFI 如何分享&#xff0c;可查看这篇&#xff1a; MacOS系统如何创建热点并共享Wi-Fi连接 0x01 iPhone 无法上网 打开设置&#xff0c;点击所连 WIFI 进入 配置 DNS 选择 手动 添加 服务器&#xff1a; 公用的有&#xff1a; 114.114.114.114 、180.76.76.76、1…...

C语言编程:揭秘平均输入三个数的艺术

C语言编程&#xff1a;揭秘平均输入三个数的艺术 在C语言编程的广袤天地中&#xff0c;平均输入三个数似乎是一个简单而基础的任务。然而&#xff0c;这个任务却蕴含着许多编程的精髓和技巧。今天&#xff0c;就让我们一同深入探索这个看似简单的任务&#xff0c;揭示其背后的…...

jvm 触发GC的时机和条件

GC的种类 GC又分为 minor GC 和 Full GC (也称为 Major GC ) minor GC&#xff1a;轻GC Full GC&#xff08;Major GC&#xff09;&#xff1a;重GC Major GC的速度一般会比Minor GC慢十倍以上 什么时候触发GC 程序调用System.gc时可以触发&#xff0c;也不是立即触发&#xf…...

UML用例图

一、用例图是什么 用例图是一种描述系统功能的图形化工具&#xff0c;它展示了系统的参与者&#xff08;用户、其他系统或设备&#xff09;与用例&#xff08;系统提供的服务或功能&#xff09;之间的交互关系。 二、用例图的作用 1、用例图的主要作用 明确系统需求&#x…...

fluent UI v9版本Dialog右上角x按钮聚焦问题解决

右上角x按钮聚焦效果展示 第一次点击不会聚焦&#xff0c;第二次或多次点击会出现这种情况。如果多个地方公用一个页面里&#xff0c;这个页面包含这个组件&#xff0c;那其它页面刚打开弹框就是聚焦状态&#xff0c;是个样式的问题。 解决&#xff1a; import * as React fr…...

【SAP HANA 33】前端参数多选情况下HANA如何使用IN来匹配?

场面描述: 在操作界面经常会出现某个文本框需要多选的情况,然后后台需要根据多选的值进行匹配搜索。 一般处理的情况是: 1、在Java后端动态生成SQL 2、不改变动态SQL的情况,直接当做一个正常的参数进行传递 本次方案是第二个,直接当做一个正常的字符串参数进行传递即…...

Go 语言中常量和变量的定义、使用

Go 语言&#xff0c;作为一种现代编程语言&#xff0c;以其简洁性和高效性赢得了开发者的青睐。在 Go 语言中&#xff0c;常量与变量作为存储和操作数据的基本元素&#xff0c;扮演着至关重要的角色。通过正确理解和使用常量与变量&#xff0c;开发者可以编写出更加健壮和高效的…...

活动预告|6月13日Apache Flink Meetup·香港站

6 月 13 日 | 香港 | 线下 Apache Flink Meetup 的风吹到了香江之畔&#xff0c;Apache Flink 香港 Meetup 来啦&#xff01;本次活动&#xff0c;我们邀请了来自阿里云的顶尖专家&#xff0c;帮助开发者全面了解 Apache Flink 的流批一体的数据处理能力&#xff0c;流式数据湖…...

算法(七)插入排序

文章目录 插入排序简介代码实现 插入排序简介 插入排序&#xff08;insertion sort)是从第一个元素开始&#xff0c;该元素就认为已经被排序过了。然后取出下一个元素&#xff0c;从该元素的前一个索引下标开始往前扫描&#xff0c;比该值大的元素往后移动。直到遇到比它小的元…...

抖音太可怕了,我卸载了

这两天刷短视频&#xff0c;上瘾了&#xff0c;太可怕了。 自己最近一直在研究短视频制作&#xff0c;所以下载了抖音&#xff0c;说实话&#xff0c;我之前手机上并没有抖音&#xff0c;一直在用B站。 用了两天抖音&#xff0c;我发现&#xff0c;这玩意比刷B站还容易上瘾啊…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...