mysql的高级查询:函数的运用(日期/数字/字符/聚合)及分组查询

一.函数

定义:Mysql已经定义好的,可以实现一定功能的代码块

包含:日期函数,数字函数,字符函数,聚合函数

1.聚合函数

定义:聚合函数对整体进行运算,通常返回的结果只有一个

例如:最小值min(),最大值max(),平均值avg(),总数count(),总和sum()

案例:

复制代码
1)找出x部门最小工资
select min(sal) from emp where 部门='x'
2)查看x部门最高工资 
select max(sal) from emp where 部门='x'
3)查看x部门的平均工资
select avg(sal) from emp where 部门 = 'x'
4)统计有奖金的员工人数--统计奖金列不是null的值:count()统计的是字段非空值的数量
select count(奖金) from emp
5)统计2月份入职的所有员工的薪资总和:
日期函数month(入职月份)拿出日期这段的月份;year()获取日期年份;day()获取日
select sum(sal) from emp where month(入职月份) = 2

2.日期函数

常用:now()返回当前日期和时间;curdate()返回当前日期;curtime()返回当前的时间;date()提取日期或日期/时间表达式的日期部分;extract()返回日期/时间按的单独部分;date_add()给日期添加指定的时间间隔,date_su()从日期减去指定的时间间隔;datediff()返回两个日期之间的天数;date_format()有不同的格式显示日期/时间

MySQL 使用下列数据类型在数据库中存储日期或日期/时间值

  • DATE - 格式 YYYY-MM-DD
  • DATETIME - 格式: YYYY-MM-DD HH:MM:SS
  • TIMESTAMP - 格式: YYYY-MM-DD HH:MM:SS
  • YEAR - 格式 YYYY 或 YY

案例可参考:MySQL 中的常用日期函数_mysql日期函数-CSDN博客

MySQL日期时间操作函数(挺全的)_mysql日期函数-CSDN博客

3.数字函数

定义:数字函数用于数字处理和数学计算,包括四舍五入,向上取整,向下取整等操作

常用:round(N,D):实现N数据四舍五入,保留D位小数(默认0);ceiling(N):向上取整,返回不小于N的最小整数;floor(N):向下取整,返回不大于N的最大整数值;number_format:将数字格式化为具有逗号分隔符的字符串;ABS(N)返回N的绝对值;SIGN(N) 返回参数的符合(为1或0或-1)

参考文章:mysql函数大全之数字函数_mysql纯数字id函数-CSDN博客

4.字符函数

常用:concat(S1,S2,S3,...)拼接字符串,将S1,S2,S3拼接成一个字符串;upper(str)将str全部转化位大写;lower(str)将字符串str全部转化为小写;trim(str)去掉字符串头部和尾部的空格;substring(str,start,len)返回字符串str从start位置起的len个长度的字符串

案例参考:【MySQL函数篇】------ 字符串函数(超详细)_mysql 字符串函数-CSDN博客

二.分组查询

定义:group by 分组条件 ;having:分组之后进行检索

案例:

where:条件筛选,where 后面不可以接聚合函数,where单独使用

having:条件筛选,having后面可以接聚合函数,having搭配group by使用

复制代码
# 求每个部门的平均工资【以部门id进行分组】
select avg(工资) from emp where group by 部门编号
# 查询平均工资大于2000的部门的编号和平均工资
select avg(工资) as 平均工资,部门编号 from emp where group by 部门编号 having avg(工资) >  2000;
相关推荐
懵逼的小黑子15 分钟前
飞书配置表数据同步到数据库中
数据库·飞书
Elastic 中国社区官方博客20 分钟前
在 Elasticsearch 中删除文档中的某个字段
大数据·数据库·elasticsearch·搜索引擎
杨凯凡26 分钟前
MySQL入门指南:环境搭建与服务管理全流程
数据库·mysql
时序数据说39 分钟前
时序数据库IoTDB分布式系统监控基础概述
大数据·数据库·database·时序数据库·iotdb
虾球xz39 分钟前
游戏引擎学习第278天:将实体存储移入世界区块
数据库·c++·学习·游戏引擎
forestsea2 小时前
MySQL 入门大全:数据类型
数据库·mysql
Dreams°1232 小时前
【Python爬虫 !!!!!!政府招投标数据爬虫项目--医疗实例项目文档(提供源码!!!)!!!学会Python爬虫轻松赚外快】
分布式·爬虫·python·mysql·scikit-learn
为自己_带盐2 小时前
浅聊一下数据库的索引优化
开发语言·数据库·php
gb42152872 小时前
mysql数据库中某个数据表的碎片率自己降低了,mysql数据表对碎片率有自动优化机制吗?
数据库·mysql
AI大模型顾潇3 小时前
[特殊字符] 本地大模型编程实战(29):用大语言模型LLM查询图数据库NEO4J(2)
前端·数据库·人工智能·语言模型·自然语言处理·prompt·neo4j