SQL-条件查询与聚合函数的使用

 🎉欢迎您来到我的MySQL基础复习专栏

☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克🍹
✨博客主页:小小恶斯法克的博客
🎈该系列文章专栏:重拾MySQL
🍹文章作者技术和水平很有限,如果文中出现错误,希望大家能指正🙏
📜 感谢大家的关注! ❤️

目录

DQL-条件查询

1.语法

2.条件 

常用的比较运算符如下:

常用的逻辑运算符如下:

案例:

聚合函数

1.常见的聚合函数

2.聚合函数的语法

案例:


DQL-条件查询

1.语法

SELECT 字段列表  FROM	表名	WHERE	条件列表 ;

where之后跟的是条件列表,也就意味着where之后的条件可以是一个也可以是多个,后面的条件我们可以有哪些构建形式呢?

2.条件 

常用的比较运算符如下:

比较运算符

功能

>

大于

>=

大于等于

<

小于

<=

小于等于

=

等于

<> !=

不等于

BETWEEN ..(最小值).. AND ..(最大值)..

在某个范围之内(含最小、最大值)

IN(...)

in之后的列表中的值,多选一,列表中的值满足其一即可,然后用逗号分隔各项值

LIKE 占位符

模糊匹配(_匹配单个字符, %匹配任意个字符)

IS NULL

NULL

   IS NOT NULL    不是空值NULL

常用的逻辑运算符如下:

逻辑运算符

功能

AND &&

并且 (多个条件同时成立)

OR ||

或者 (多个条件任意一个成立)

NOT !

, 不 是

案例:

1.查询年龄等于 53 的员工

select * from emp where age = 53 ;

执行如下 :

2.查询年龄小于 20 的员工信息

select * from emp where age < 20 ;

执行如下:

3.查询年龄小于等于 20 的员工信息

select * from emp where age <= 20;

 执行如下:

4.查询没有身份证号的员工信息

select * from emp where idcard is null;

执行如下: 

5.查询有身份证号的员工信息

select * from emp where idcard is not null;

执行如下:

6.查询年龄不等于 88 的员工信息

select * from emp where age != 88;select * from emp where age <> 88;

 执行如下:

7.查询年龄在15(包含) 20(包含)之间的员工信息

select * from emp where age >= 15 && age <= 20;select * from emp where age >= 15 and age <= 20;select * from emp where age between 15 and 20

执行如下:

8.查询性别为 女 且年龄小于 25岁的员工信息 

select * from emp where gender = '女' and age < 25;

执行如下:

9.查询年龄等于18 20 40 的员工信息

 in的语法还是跟大家多唠叨唠叨,它的意思是你给予的列表(18,20,40)满足了其中一个就把数据查询,也就是查询年龄等于18的人,查询年龄等于20的人,查询年龄等于40的人

select * from emp where age = 18 or age = 20 or age =40;select * from emp where age in(18,20,40);

执行如下:

10.查询姓名为三个字的员工信息

 需要使用like,在SQL语句中模糊匹配有两个占位符,一个是下划线_,代表单个字符,一个是百分号%,匹配任意字符

 本题中需要两个字符怎么思考?一个下划线代表一个字符,那么三个下划线就代表三个字符,也就是三个字的名字

select * from emp where name like '__';

 执行如下:

11.查询身份证号最后一位是X的员工信息

方法一:最后一位是x,也就意味前面的字符是什么无所谓,那么前面我可以使用任意字符匹配%,用%匹配17位,因为是任意多少位,所以我去限制最后一位必须是x,让它成为第18位必须是x,这样就可以解决了

方法二:既然一个下划线_代表一个字符,那么我用17个下划线占17个位置,最后一个位置我限制为x,就解决了

select * from emp where idcard like '%X';select * from emp where idcard like '_________________X';

执行如下:

可以看出两者的查询结果相同


聚合函数

定义:将一列数据作为一个整体,进行纵向计算 。

1.常见的聚合函数

 重点!!这些聚合函数都是作用于表中的某一列,纵向对数据进行的一个操作

函数

功能

count

统计数量  (可以统计某一列,或者整张表的记录数)

max

最大值

min

最小值

avg

平均值

sum

求和

2.聚合函数的语法

SELECT 聚合函数(字段列表) FROM 表名 ;

注意 : NULL值是不参与所有聚合函数运算的。

案例:

1.统计该企业员工数量

1.count()括号里面去填写字段,那么应该填什么字段,我需要求的是整张表的数据,此时可以去使用*,此时查询到的就是整张表的总数据量

2.如果不写*,也可以写具体的字段id,此时统计的就是这张表id字段的数量,每一条记录都有对应的id

3.假如我count()里面填写的字段是idcard,那么总数是几?你可以发现总数量是16条,而idcard有值的是15条,我们测试一下,发现确实是15条数据,所以一般我们去统计总数量,直接count(*)比较保险

select count(*) from emp; -- 统计的是总记录数select count(id) from emp; select count(idcard) from emp; -- 统计的是idcard字段不为null的记录数

 执行效果如图:

提前拓展:对于count聚合函数,统计符合条件的总记录数,还可以通过   count(数字/字符串)的形式进行统计查询,比如: 

select count(1) from emp;

对于count(*) 、count(字段)、 count(1) 的具体原理,我们到时候复习进阶篇中SQL优化部分会详细学习,此处大家只需要知道如何使用即可。

2.统计该企业员工的最小年龄

 这里大家需要注意!不要理解错误了,我们去查询age这一纵列然后去寻找最小的年龄是多少,数字是几,然后返回这个年龄数值,而并非返回年龄最小的这个人的所有字段的数据,这个有很多人会理解错误,希望大家注意!

select min(age) from emp;

执行如下: 

3.统计该企业员工的最大年龄

select max(age) from emp;

执行如下: 

4.统计该企业员工的平均年龄

select avg(age) from emp;

 执行如下:

5.统计北京地区员工的年龄之和

select sum(age) from emp where workaddress = '北京';

 此时我们先查询下北京地区的员工有哪些?

求年龄之和用到sum函数,此时我们直接把*改为 sum(age)即可,注意,这里最最重要的是条件,关注到我们有一个条件限制,北京地区的员工,所有我们肯定是需要增加where的,然后指定workaddress = '北京'

执行如下:

总结:聚合函数非常重要的一点,就是所有的null值是不参与聚合函数的运算的!


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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp中uview组件库丰富的ActionSheet 操作菜单使用方法

目录 #平台差异说明 #基本使用 #配置顶部的提示信息和底部取消按钮 #如何知道点了第几项 #API #Props #Event 本组件用于从底部弹出一个操作菜单&#xff0c;供用户选择并返回结果。 本组件功能类似于uni的uni.showActionSheetAPI&#xff0c;配置更加灵活&#xff0c;所…

Realm Management Extension领域管理扩展之颗粒保护检查

本节描述了RME引入的颗粒保护检查。颗粒保护检查使得能够在不同的物理地址空间之间动态分配内存区域。 本节将向您介绍以下功能: 颗粒保护表的结构用于颗粒保护检查的故障报告区域在物理地址空间之间的过渡正如在物理地址一节中所述,RME提供了四个物理地址空间。以下图表显示…

GEE数据集——2000 年至 2022 年与传感器无关的 MODIS 和 VIIRS LAI/FPAR CDR

2000 年至 2022 年与传感器无关的 MODIS 和 VIIRS LAI/FPAR CDR 该地理空间数据集包含关键的生物物理参数&#xff0c;即叶面积指数&#xff08;LAI&#xff09;和光合有效辐射分量&#xff08;FPAR&#xff09;&#xff0c;是描述陆地生态系统特征不可或缺的参数。该数据集解…

简约的网易云音乐播放器SPlayer

今天给大家介绍另一款音乐播放器 SPlayer &#xff0c;如果你对第三方网易云音乐播放器感兴趣&#xff0c;可以去看看老苏之前写的其他项目 文章传送门&#xff1a; 高颜值的第三方网易云播放器YesPlayMusic&#xff08;续&#xff09;跨平台的第三方网易云播放器Radishes 什么…

Numpy使用简介

Numpy 相关题目 【Python】—— Numpy 初体验 【Python】—— NumPy基础及取值操作 Numpy是基于Python的通用数值计算工具包&#xff0c;其内包含大量数学计算函数和矩阵运算函数。多数科学计算工具包&#xff0c;比如Scipy&#xff0c;和数值分析工具包&#xff0c;比如Pandas…

【期末不挂科-C++考前速过系列P2】大二C++第2次过程考核(20道选择题&10道判断题&3道代码题)【解析,注释】

前言 大家好吖&#xff0c;欢迎来到 YY 滴C系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的《Linux》专…

Java面试题之虚拟机

前言 本篇的面试题基于网络整理&#xff0c;和自己编辑。在不断的完善补充哦。 什么是虚拟机&#xff1f; Java 虚拟机&#xff0c;是一个可以执行 Java 字节码的虚拟机进程。Java 源文件被编译成能被 Java 虚拟机执行的字节码文件( .class )。 Java 被设计成允许应用程序可…

uniapp中uview组件库丰富的CountDown 倒计时使用方法

目录 #平台差异说明 #基本使用 #设置是否显示天&#xff0c;时&#xff0c;分&#xff0c;秒 #倒计时分隔符 #倒计时样式 #倒计时执行的时机 #如何获取当前倒计的秒数 #API #Props #Events #Methods 该组件一般使用于某个活动的截止时间上&#xff0c;通过数字的变化…

Kotlin程序设计(三)高级用法

Kotlin程序设计高级篇 在学习了前面的内容之后&#xff0c;相信各位小伙伴应该对Kotlin这门语言有了一些全新的认识&#xff0c;我们已经了解了大部分的基本内容&#xff0c;从本章开始&#xff0c;就是对我们之前所学的基本内容的进一步提升。 泛型 在前面我们学习了最重要…

重新分区扩展C盘

电脑 – 管理 使用第三方工具&#xff1a;DiskGenius数据恢复及分区管理软件 要选择完成后重启 &#xff0c;如果这里忘记勾选&#xff0c;后面也会再次提醒并默认勾选重启 "调整后容量"是指图片上显示的非C盘之外的盘符的容量&#xff0c;这里指E盘大小 上面已经利…

谷歌浏览器安装不在默认安装位置Selenium无法打开解决方法

Selenium之cannot find Chrome binary错误-CSDN博客 上面是我找的解决方案的链接 通过option.setBinary()的方法来指定谷歌浏览器的实际运行文件路径&#xff1b; 下面是结合我这边具体情况下写的代码 option.setBinary()中的路径是谷歌浏览器运行文件的路径&#xff1b;Sy…