当前位置: 首页 > 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.cnnetsun.cn/news/1694123.html

相关文章:

  • 自感:在西方现象学与东方生活儒学之间——一种意义哲学的奠基
  • 如何高效使用wx-charts:微信小程序图表库的完整功能解析与实战指南
  • 5步掌握Greasy Fork用户脚本平台:从安装到精通的实战手册
  • 新手福音:在快马平台用AI生成代码,轻松学透MobaXterm核心功能
  • CSS Grid布局如何实现固定页脚效果_利用网格高度视口百分比单位
  • 实战指南:三阶段掌握SMU Debug Tool高效调控AMD Ryzen处理器
  • 突破物理输入限制:vJoy虚拟控制器重构人机交互新范式
  • tcc-g15:为Dell G15笔记本解锁三重散热控制能力
  • 2025届最火的五大降AI率方案横评
  • Stable-Diffusion-V1-5 跨模态理解展示:根据复杂文本描述生成精准场景
  • 电源电压会影响晶振精度吗?
  • OpenClaw权限管理:安全使用Qwen3.5-9B的5个关键配置
  • S2-Pro Markdown文档大师:Typora风格的高效写作与排版助手
  • 越改越高是怎么回事?降AI方法用错了才会这样
  • 快速验证openclaw部署:用快马AI一键生成本地配置原型脚本
  • BetterNCM Installer:3分钟搞定网易云插件安装的终极指南
  • Spring Boot整合EasyExcel,动态导出表头和数据
  • Windows 平台 Tongsuo 国密 NTLS 编译实战:从环境搭建到库文件生成
  • 从理论到实践:基于快马平台,快速构建可落地的电商客服AI Agent
  • Cosmos平台解析:英伟达如何用世界基础模型重塑机器人及自动驾驶未来?
  • CLion运行按钮灰色问题排查与CMake配置修复指南
  • 别再手动改URDF了!用xacro.py一键转换Kinova机械臂模型(附Rviz可视化完整流程)
  • 告别文件丢失焦虑!快卫士文件备份功能重磅上线
  • 伴随状语分析
  • novel-downloader完全指南:从入门到精通的7个关键步骤
  • 多机器人系统的Port-Hamiltonian建模:从理论到实践
  • 效率倍增,使用快马生成ansible playbook自动化部署ubuntu生产服务器
  • 计算机毕业设计 | springboot线上杂货铺商城 商品日用百货购买平台(附源码)
  • 3秒获取百度网盘提取码:开源智能工具的终极解决方案
  • 别再只谈MQTT协议了!用JSON格式封装物联网数据,这5个实战场景让你秒懂