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

张开发
2026/4/4 18:33:53 15 分钟阅读
MySQL函数及条件查询相关用法
文章目录前言一、函数可跳过1.字符串函数2.数值函数3.日期和时间函数4.聚合函数常用5.控制流函数6.加密和压缩函数7.系统信息函数二、条件查询select1.筛选条件子句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。二、条件查询select1.筛选条件子句where与having的区别筛选子句wherehaving作用阶段作用于原始数据作用于分组(group by)后的数据使用场景对单行记录进行筛选对聚合结果的筛选与聚合函数的关系where子句中不能直接使用聚合函数having必须搭配group by,且条件经常包含聚合函数查询语句的书写顺序如下(重点):select--from--where--group by--having--order by--limit2.比较运算符关系运算符用法等于 or !不等于小于大于小于等于大于等于用于空值(NULL)的相等比较注意:如果有空值的比较,若用进行比较输出的则为false,输出的则为true此时如果输入则查询不出成绩为null的学生,用于空值的比较3.逻辑运算符逻辑运算符逻辑情况作用情况and逻辑与多个条件都为true结果才为trueor逻辑或有一个条件为true结果就为truenot逻辑非取反条件为true结果为false查询数学大于语文并且物理大于英语的学生信息两个条件必须同时满足查询数学大于语文或者物理大于英语的学生信息两个条件满足一个即可4.范围运算符between and在某个范围内包含边界not between and不在某个范围内查询语文成绩在91和100之间的学生信息包含915.集和运算符in (value1,value2,...):匹配集合中的任意值not in (value1,value2,...):不匹配集合中的任意值查询数学成绩不在999893的学生信息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可以省略

更多文章