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