MySQL内建查询函数
MySQL作为流行的关系型数据库管理系统,提供了丰富的内建查询函数,这些函数在处理数据时发挥着重要作用,以下是对MySQL内建查询函数的详细介绍:
一、字符串函数
1、CONCAT:用于连接多个字符串。SELECT CONCAT('Hello', ' ', 'World') 结果为'Hello World'。
2、SUBSTRING:从字符串中提取子字符串,如SELECT SUBSTRING('HelloWorld', 6) 结果为'World'。
3、LENGTH:返回字符串的长度。SELECT LENGTH('HelloWorld') 结果为11。
4、UPPER/LOWER:将字符串转换为大写或小写,如SELECT UPPER('hello') 结果为'HELLO',SELECT LOWER('HELLO') 结果为'hello'。
5、LPAD/RPAD:左填充或右填充字符串到指定长度。SELECT LPAD('01', 5, '') 结果为'01',SELECT RPAD('01', 5, '') 结果为'01'。
6、REPLACE:替换字符串中的子串,如SELECT REPLACE('Hello MySQL', 'Hello', 'Hi') 结果为'Hi MySQL'。
7、TRIM:去掉字符串两端的空格。SELECT TRIM(' hell o ') 结果为'hell o'。
8、REVERSE:反转字符串,如SELECT REVERSE('abcd') 结果为'dcba'。
9、ELT:返回列表中的第N个元素。SELECT ELT(3, 'a', 'b', 'c', 'd') 结果为'c'。
二、数值函数
1、ROUND:将数值四舍五入到指定的小数位数,如SELECT ROUND(3.14159, 2) 结果为3.14。
2、ABS:返回数值的绝对值。SELECT ABS(5) 结果为5。
3、FLOOR:返回不大于指定数值的最大整数,如SELECT FLOOR(3.7) 结果为3。
4、CEIL:向上取整,返回不小于指定数值的最小整数。SELECT CEIL(2.3) 结果为3。

5、MOD:返回两个数值相除的余数,如SELECT MOD(3, 2) 结果为1。
6、RAND:生成0~1之间的随机浮点数,可以配合其他函数生成随机验证码等。SELECT LPAD(ROUND(RAND()*1000000, 0), 6, '0') 可生成6位随机码。
7、SIGN:返回参数的符号,正数返回1,负数返回1,零返回0,如SELECT SIGN(5) 结果为1。
8、POW/EXP:分别用于计算幂和指数。SELECT POW(2, 3) 结果为8,SELECT EXP(1) 结果为自然常数e的值。
三、日期和时间函数
1、NOW:返回当前日期和时间。SELECT NOW() 结果为当前的日期和时间。
2、CURDATE/CURTIME:分别用于获取当前日期和当前时间,如SELECT CURDATE() 结果为当前日期,SELECT CURTIME() 结果为当前时间。
3、DATE_FORMAT:将日期格式化为指定格式。SELECT DATE_FORMAT(NOW(), '%Y%m%d') 结果为当前日期的格式化表示,如'20220101'。
4、DATE_ADD/DATE_SUB:分别用于日期的加法和减法运算。SELECT DATE_ADD(NOW(), INTERVAL 7 DAY) 结果为7天后的时间,SELECT DATE_SUB(NOW(), INTERVAL 15 DAY) 结果为15天前的时间。
5、DATEDIFF:计算两个日期之间的天数差,如SELECT DATEDIFF('20220101', '20211201') 结果为31。
6、YEAR/MONTH/DAY:分别用于提取日期中的年份、月份和日期。SELECT YEAR('20220101') 结果为2022,SELECT MONTH('20220101') 结果为1,SELECT DAY('20220101') 结果为1。
7、HOUR/MINUTE/SECOND:分别用于提取时间中的小时、分钟和秒,如SELECT HOUR('12:34:56') 结果为12,SELECT MINUTE('12:34:56') 结果为34,SELECT SECOND('12:34:56') 结果为56。

8、UNIX_TIMESTAMP:返回当前时间的Unix时间戳,即从1970年1月1日00:00:00 UTC到现在的秒数。SELECT UNIX_TIMESTAMP()。
9、FROM_UNIXTIME:将Unix时间戳转换为日期时间格式,如SELECT FROM_UNIXTIME(UNIX_TIMESTAMP()) 结果为当前的日期和时间。
四、流程控制函数
1、IF:根据条件返回不同的值。SELECT IF(salary > 10000, '高薪', '普通'),如果salary 大于10000,则返回'高薪',否则返回'普通'。
2、CASE WHEN:实现多条件分支处理。SELECT CASE WHEN score >= 90 THEN 'A' WHEN score >= 80 THEN 'B' ELSE 'C' END AS grade FROM exams; 根据score 的不同范围返回不同的等级。
五、聚合函数
1、COUNT:统计行数或满足条件的行数,如SELECT COUNT(*) FROM table_name; 统计表中的所有行数,SELECT COUNT(column_name) FROM table_name; 统计指定列非空的行数。
2、SUM:求和。SELECT SUM(price) FROM orders; 计算订单中所有商品价格的总和。
3、AVG:求平均值,如SELECT AVG(score) FROM exams; 计算考试分数的平均值。
4、MAX:求最大值。SELECT MAX(salary) FROM employees; 查找员工中的最高工资。
5、MIN:求最小值,如SELECT MIN(age) FROM students; 查找学生中的最小年龄。
六、加密和类型转换函数

1、MD5:用于生成哈希值,常用于密码加密等场景。SELECT MD5('password') 返回密码的MD5加密值。
2、AES_ENCRYPT:用于加密敏感数据。
3、CAST:强制转换数据类型,如SELECT CAST(column_name AS char) FROM table_name; 将指定列的数据类型转换为字符型。
七、其他实用函数
1、USER:返回当前用户名。
2、DATABASE:返回当前数据库名。
3、VERSION:返回MySQL的版本号。
4、LAST_INSERT_ID:返回最后插入记录的自动编号值。
MySQL的内建查询函数涵盖了数据处理的各个方面,熟练掌握这些函数的使用,可以大大提高数据库操作的效率和灵活性。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/153695.html