常用函数
学习目标
- 掌握字符串函数用法
- 掌握数值函数用法
- 掌握日期函数用法
- 掌握其他常用函数
1. 常用字符串函数
① CHAR_LENGTH(s)
SELECT CHAR_LENGTH("哈利波特");
结果返回:4
② CONCAT(s1,s2...sn)
SELECT CONCAT("火影忍者", "海贼王", "哆啦A梦", "名侦探柯南");
结果返回:火影忍者海贼王哆啦A梦名侦探柯南
③ FORMAT(x,n)
SELECT FORMAT('250500.5634', 2);
结果返回:250,500.56 (数字上的引号可以省略)
④ LOWER(s)
SELECT LOWER('ABC');
结果返回:abc
⑤ UPPER(s)
SELECT UPPER('abc');
结果返回:ABC
⑥ SUBSTR(s, start, length)
SELECT SUBSTR("麦兜响当当", 2, 3);
结果返回:兜响当
⑦ TRIM(s)
SELECT TRIM(' 张三 丰 ');
结果返回:张三 丰 (中间空格不会去除)
2. 常用数值函数
① AVG(列)
SELECT AVG(列名);
效果:计算该列的平均值
② COUNT(列/*)
SELECT COUNT(列名/*);
效果:统计结果的行数
③ MAX(列)
SELECT MAX(列名);
效果:返回该列最大的一个值
④ MIN(列)
SELECT MIN(列名);
效果:返回该列最小的一个值
⑤ SUM(列)
SELECT SUM(列名);
效果:统计该列的值总和
⑥ RAND()
SELECT RAND();
效果:返回0~1之间的一个随机数字,如:0.5332661974553635
3. 常用日期函数
① ADDDATE(日期,加的天数)
SELECT ADDDATE("2023-01-20",INTERVAL 10 DAY);
效果:2023-01-20加10天,返回2023-01-30
② ADDTIME(日期时间,加的时间)
SELECT ADDTIME("2023-01-20 1:21:09","2:33:19");
效果:2023-01-20 1:21:09上加2小时33分19秒,返回2023-01-20 03:54:28
③ DATEDIFF(开始日期,结束日期)
SELECT DATEDIFF("2022-02-20","2023-02-20");
效果:-365
④ DATE_ADD(日期,加的天数)
SELECT DATE_ADD("2023-02-20",INTERVAL 10 DAY);
效果:2023-02-20加10天,返回2023-03-02
⑤ DATE_SUB(日期,减的天数)
SELECT DATE_SUB("2023-02-20",INTERVAL 10 DAY);
效果:2023-02-20减10天,返回2023-02-10
⑥ DATE_FORMAT(日期表达式,日期格式)
SELECT DATE_FORMAT("20230220","%Y-%m-%d");
效果:格式化日期时间,返回2023-02-20
⑦ YEAR(日期时间)
SELECT YEAR("2023-02-20 10:28:09");
效果:截取年份,返回2023
⑧ MONTH(日期时间)
SELECT MONTH("2023-02-20 10:28:09");
效果:截取月份,返回2
⑨ DAY(日期时间)
SELECT DAY("2023-02-20 10:28:09");
效果:截取日,返回20
⑩ TIME(日期时间)
SELECT TIME("2023-02-20 10:28:09");
效果:截取时间,返回10:28:09
⑪ CURDATE()
SELECT CURDATE();
效果:返回系统日期
⑫ CURTIME()
SELECT CURTIME();
效果:返回系统时间
⑬ NOW()
SELECT NOW();
效果:返回系统当前日期和时间
⑭ SYSDATE()
SELECT SYSDATE();
效果:返回系统当前日期和时间
4. 常用其他函数
① CASE函数
SELECT CASE sex
WHEN 1 THEN '男'
WHEN 0 THEN '女'
ELSE '未知'
END
FROM user_info;
效果:在user_info表中,sex性别如果=1,则显示为“男”;sex性别如果=0,则显示为“女”;如果不是0也不是1,则显示“未知”
② IF函数
SELECT IF(age >= 18,'已成年','未成年') FROM user_info;
效果:在user_info表中,age年龄大于18,则显示“已成年”;否则显示“未成年”
③ IFNULL函数
SELECT IFNULL(age,'未填写年龄') FROM user_info;
效果:在user_info表中,age如果不是null,则返回实际值;如果age是null,则返回“未填写年龄”
④ ISNULL函数
SELECT ISNULL(age) FROM user_info;
效果:在user_info表中,age年龄是null,则显示为1;年龄不是null,则显示为0
⑤ NULLIF函数
SELECT NULLIF(create_user,update_user) FROM news;
效果:在user_info表中,如果create_user创建人和update_user修改人是一致的,则返回null;否则返回create_user创建人
⑥ DATABASE()
SELECT DATABASE();
效果:返回当前所在的数据库名