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

MySQL函数及条件查询相关用法

文章目录

前言

一、函数(可跳过)

1.字符串函数

2.数值函数

3.日期和时间函数

4.聚合函数(常用)

5.控制流函数

6.加密和压缩函数

7.系统信息函数

二、条件查询(select)

1.筛选条件子句where与having的区别

2.比较运算符

3.逻辑运算符

4.范围运算符

5.集和运算符

6.模糊匹配运算符

7.空值判断运算符

8.order by查询结果排序

9.limit限制查询结果数量

10.group by分组查询

11.查询的同时给固定列加别名


前言

前篇大概叙述了MySQL中对于表的各种基础操作,这次侧重select操作更为完善用法 。如有遗漏或者错误,欢迎大家在评论区补充。


一、函数(可跳过)

1.字符串函数

用于处理字符串数据,例如连接、截取、转换等操作。常见函数包括:

  • CONCAT(str1, str2, ...):拼接字符串。
  • SUBSTRING(str, start, length):截取子字符串。
  • UPPER(str)LOWER(str):转换大小写。
  • TRIM(str):去除首尾空格。

2.数值函数

用于数学运算和数值处理。常见函数包括:

  • ABS(x):返回绝对值。
  • ROUND(x, d):四舍五入到指定小数位。
  • CEIL(x)FLOOR(x):向上或向下取整。
  • RAND():生成随机数。

3.日期和时间函数

用于处理日期和时间数据。常见函数包括:

  • NOW():返回当前日期和时间。
  • CURDATE()CURTIME():返回当前日期或时间。
  • DATE_FORMAT(date, format):格式化日期。
  • DATEDIFF(date1, date2):计算日期差值。

4.聚合函数(常用)

用于对多行数据进行汇总计算(对于列的数据运算会经常用到)。常见函数包括:

  • COUNT():统计行数。
  • SUM():计算总和。
  • AVG():计算平均值。
  • MAX()MIN():返回最大或最小值。

5.控制流函数

用于条件判断和流程控制。常见函数包括:

  • IF(expr, true_val, false_val):条件判断。
  • CASE WHEN ... THEN ... END:多条件分支。
  • COALESCE(val1, val2, ...):返回第一个非 NULL 值。

6.加密和压缩函数

用于数据加密和压缩。常见函数包括:

  • MD5(str):计算 MD5 哈希值。
  • SHA1(str):计算 SHA1 哈希值。
  • COMPRESS(str)UNCOMPRESS(str):压缩和解压数据。

7.系统信息函数

返回数据库或服务器信息。常见函数包括:

  • VERSION():返回 MySQL 版本。
  • USER()DATABASE():返回当前用户或数据库名。
  • CONNECTION_ID():返回连接 ID。

二、条件查询(select)

1.筛选条件子句where与having的区别

筛选子句wherehaving
作用阶段作用于原始数据

作用于分组(group by)后的数据

使用场景对单行记录进行筛选对聚合结果的筛选
与聚合函数的关系where子句中不能直接使用聚合函数having必须搭配group by,且条件经常包含聚合函数

查询语句的书写顺序如下(重点):

select-->from-->where-->group by-->having-->order by-->limit

2.比较运算符

关系运算符用法
=等于
<> or !=不等于
<小于
>大于
<=小于等于
>=大于等于
<=>用于空值(NULL)的相等比较

注意:如果有空值的比较,若用"="进行比较输出的则为false,"<=>"输出的则为true

此时如果输入"="则查询不出成绩为null的学生,"<=>"用于空值的比较

3.逻辑运算符

逻辑运算符逻辑情况作用情况
and逻辑与多个条件都为true,结果才为true
or逻辑或有一个条件为true,结果就为true
not逻辑非(取反)条件为true=,结果为false

查询数学大于语文并且物理大于英语的学生信息(两个条件必须同时满足)

查询数学大于语文或者物理大于英语的学生信息(两个条件满足一个即可)

4.范围运算符

between and:在某个范围内(包含边界)

not between and:不在某个范围内

查询语文成绩在91和100之间的学生信息(包含91)

5.集和运算符

in (value1,value2,...):匹配集合中的任意值

not in (value1,value2,...):不匹配集合中的任意值

查询数学成绩不在99,98,93的学生信息

6.模糊匹配运算符

like:模糊匹配

not like:不匹配模糊条件

模糊匹配一般搭配通配符使用(%与_)

%:匹配任意数量的字符(包括零个字符)

_:匹配单个任意字符

例:

a%:匹配以a为开头的字符串

%a:匹配以a为结尾的字符串

%a%:匹配含有a的字符串

ab_:匹配以ab开头字长为3的字符串

7.空值判断运算符

is null:判断是否为空(null)

is not null:判断是否不为空

实际情况与 <=> null 类似,但是"is null"用的更多

8.order by查询结果排序

select * from 表名 where 限制条件 order by 列名 (desc/asc);

desc(降序排序):高的在上

asc(升序排序):低的在上

此处order by 后面的列名是排序关键,列名上的数值高低决定了表的顺序,列名也可以用别名或者表达式替换

此处则是根据数学+语文成绩的数值进行降序排列

此处则是按照英语成绩进行降序排列

9.limit限制查询结果数量

select * from 表名 where 限制条件 limit value1 offset value2;

value1:限制查询结果的数量

value2:查询结果从该处下标开始(下标从零开始)

此处实现的是按照物理成绩降序来查询第一条数据即(查出最高物理成绩学生信息)

此处查询物理成绩第二的学生信息

排序后会对行虚拟化下标(顺序从上到下递归),offset 0 即就是顶上第一条数据下标,limit 1 offset 1就是查询下标为1的数据且只查询一行

10.group by分组查询

select 列名(聚合表达式),列名(聚合表达式) from 表名 group by 列名 having 条件限制;

group by一般会和聚合函数(前面有介绍)以及having搭配使用,对于列的数据进行计算会用上聚合函数。

上图为一份工资表,如果对工资进行盲目的求平均值并不符合常理(不同职务的工资有着较大差别),因此我们要对表进行分组以后再进行求平均值。

此则在分组后进行求平均工资

having 后面加了条件role不等于"程序员",分完组以后将程序员给去掉了然后在进行求平局工资

11.查询的同时给固定列加别名

select 列名 (as) 别名,列名 (as) 别名,...from 表名;

对每列取别名,其中as可以省略

http://www.jsqmd.com/news/587726/

相关文章:

  • 2025_NIPS_Fast Monte Carlo Tree Diffusion: 100× Speedup via Parallel Sparse Planning
  • AI赋能论文研究:调用快马平台模型智能分析文本与提取关键词
  • OpenClaw多终端控制:千问3.5-9B实现跨设备协同
  • DREAM3D:革新材料科学数据处理的开源框架
  • Git 仓库搬家后,如何让本地仓库“认新家”?——小白也能看懂的远程地址修改指南
  • 效率提升:用快马AI快速生成带存储功能的EndNote工具
  • GHelper:华硕笔记本的终极开源性能控制解决方案
  • Redis怎样动态添加新的哨兵节点_直接启动新Sentinel并让其通过主库自动发现其他哨兵
  • 代码随想录—day2—滑动窗口与前缀和
  • ABAP 选择屏幕中创建多个自定义按钮
  • 技术深析:衡石Agentic BI的架构革命与核心技术突破
  • openLCA完整安装与使用终极指南:免费开源的生命周期评估解决方案
  • 适配新的gps模块,在Android系统中注意哪些问题
  • AI赋能性能优化:让快马平台的智能模型帮你重构高性能代码
  • insightface进行视频中人脸识别
  • 【花雕学编程】行空板 K10 部署 MimiClaw 嵌入式 AI Agent 全指南(适配逻辑+命令全集+测试实践)
  • 2025苏州GEO大模型AI优化服务白皮书
  • 零基础看懂计算机视觉:让机器像人一样“看见”世界,原来原理这么简单
  • PvZ Toolkit:3步解锁植物大战僵尸终极游戏增强工具,打造完全自定义体验
  • SEO_本地中小企业快速见效的SEO推广技巧
  • 【PCIe验证每日学习·Day25】PCIe 电源管理机制(L0s/L1/L2/L3)全解析
  • AI 究竟让年轻人更有优势,还是更难立足?
  • 企业网站SEO优化需要做哪些内容优化_如何进行企业网站的SEO优化
  • DeepSeek可以解决什么问题?
  • 告别手动配置:用快马ai脚本实现openclaw一键式高效部署
  • 探索Wand-Enhancer:开源工具实现WeMod功能解锁与安全实践指南
  • 【深伪检测论文阅读 第一期】Triple-modality interaction for deepfake detection on zero-shot identity​
  • SQL视图如何实现动态过滤_通过SQL存储过程调用视图
  • ComfyUI-Manager架构设计与企业级节点管理优化方案
  • bestofrs.org! DDD? Rust? WebAssembly?—— 纯血Rust最佳实践齐打交!