MySQL数据库的函数种类繁多,涵盖流程控制、聚合、加密、日期和时间、数字以及字符串处理等多个方面,以下是对这些函数的具体介绍:
1、流程控制函数
IF(test, t, f):如果test
为真,则返回t
;否则返回f
,示例:SELECT IF(1>0, 'yes', 'no');
结果为yes
。
IFNULL(arg1, arg2):如果arg1
不为空,则返回arg1
;否则返回arg2
,示例:SELECT IFNULL(NULL, 'default value');
结果为default value
。
NULLIF(arg1, arg2):如果arg1
等于arg2
,则返回NULL;否则返回arg1
,示例:SELECT NULLIF('a', 'a');
结果为 NULL。
CASE WHEN [test] THEN [result] … ELSE [default] END:根据条件选择结果,示例:SELECT CASE WHEN score >= 60 THEN 'pass' ELSE 'fail' END;
。
2、聚合函数
COUNT(col):统计查询结果的行数,示例:SELECT COUNT(*) FROM students;
。
MIN(col):查询指定列的最小值,示例:SELECT MIN(age) FROM students;
。
MAX(col):查询指定列的最大值,示例:SELECT MAX(salary) FROM employees;
。
SUM(col):求和,返回指定列的总和,示例:SELECT SUM(price) FROM products;
。
AVG(col):求平均值,返回指定列数据的平均值,示例:SELECT AVG(score) FROM exams;
。
3、加密函数
SHA():计算字符串的安全散列算法(SHA)校验和,示例:SELECT SHA('password');
。
MD5():计算字符串的MD5校验和,示例:SELECT MD5('text');
。
PASSWORD(str):返回字符串的加密版本,示例:SELECT PASSWORD('mypassword');
。
ENCRYPT(str, salt):使用UNIX密码加密方法,用关键词salt
加密字符串,示例:SELECT ENCRYPT('password', 'salt');
。
4、日期函数
CURDATE():返回当前日期,示例:SELECT CURDATE();
。
NOW():返回当前日期和时间,示例:SELECT NOW();
。
DATE_ADD(date, INTERVAL expr unit):给日期添加指定的时间间隔,示例:SELECT DATE_ADD(CURDATE(), INTERVAL 1 DAY);
。
DATEDIFF(d1, d2):计算两个日期之间的天数差,示例:SELECT DATEDIFF('20240101', '20241231');
。
YEARWEEK(date, mode):返回日期所在的年份和周数,示例:SELECT YEARWEEK(NOW());
。
5、数字函数
ABS(x):返回数字的绝对值,示例:SELECT ABS(10);
。
ROUND(x, d):将数字四舍五入到指定的小数位数,示例:SELECT ROUND(123.456, 2);
。
MOD(x, y):返回x除以y的余数,示例:SELECT MOD(10, 3);
。
CEIL(x):返回不小于x的最小整数,示例:SELECT CEIL(1.2);
。
FLOOR(x):返回不大于x的最大整数,示例:SELECT FLOOR(1.7);
。
6、字符串函数
CONCAT(s1, s2, …):连接一个或多个字符串,示例:SELECT CONCAT('Hello', ' ', 'World');
。
SUBSTR(str, pos, len):从字符串中提取子串,示例:SELECT SUBSTR('Hello', 2, 3);
。
UPPER(str):将字符串转换为大写,示例:SELECT UPPER('hello');
。
LOWER(str):将字符串转换为小写,示例:SELECT LOWER('HELLO');
。
LENGTH(str):返回字符串的长度,示例:SELECT LENGTH('abcdefg');
。
TRIM(str):去除字符串两端的空格,示例:SELECT TRIM(' hello world ');
。
MySQL提供了丰富的函数来处理各种数据类型,这些函数在实际应用中可以极大地提高数据处理的效率和灵活性。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1223557.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复