- -- 绝对值
- SELECT ABS(-8)
-
- -- 向上取整
- SELECT CEILING(9.8)
-
- -- 向下取整
- SELECT FLOOR(9.8)
-
- -- 随机数字(0-1)
- SELECT RAND()
-
- -- 判断一个数的符号 (正数1,负数-1)
- SELECT SIGN(10)
- SELECT SIGN(-10)
- -- 字符串长度
- SELECT CHAR_LENGTH('飞流直下三千尺,疑是银河落九天')
-
- -- 拼接字符串
- SELECT CONCAT('我','爱','中国')
-
- -- 查询,从某个位置开始替换某个长度(第一个数字是第几个位置前,第二个数字是替换几个字符)
- SELECT INSERT('我爱编程',2,1,'超级热爱')
-
- -- 小写字母
- SELECT LOWER('XiaoXie')
-
- -- 大写字母
- SELECT UPPER('DaXie')
-
- -- 返回第一次出现的子串的索引
- SELECT INSTR('XIAOMING,XIAOHONG','A')
-
- -- 替换出现的指定字符串
- SELECT REPLACE('坚持就能成功','坚持','努力')
-
- -- 返回指定的子字符串(源字符串,截取的位置,截取的长度)
- SELECT SUBSTR('坚持就能成功', 5, 2);
-
- -- 反转
- SELECT REVERSE('好真气天天今');
- SELECT CURRENT_DATE(); -- 获取当前日期
- SELECT CURDATE(); -- 获取当前日期
- SELECT NOW(); -- 获取当前的时间
- SELECT LOCALTIME(); -- 获取本地时间
- SELECT SYSDATE(); -- 获取系统时间
-
- SELECT YEAR(NOW()); -- 年
- SELECT MONTH(NOW()); -- 月
- SELECT DAY(NOW()); -- 日
- SELECT HOUR(NOW()); -- 时
- SELECT MINUTE(NOW()); -- 分
- SELECT SECOND(NOW()); -- 秒
- SELECT SYSTEM_USER(); -- 用户名
- SELECT USER(); -- 用户名
- SELECT VERSION(); -- MySQL版本
| 函数名称 | 描述 |
| count() | 计数 |
| SUM() | 求和 |
| AVG() | 平均值 |
| MAX() | 最大值 |
| MIN() | 最小值 |
| .......... | ............ |
例:
- -- 聚合函数
- -- 都能统计 表中数据
-
- -- count(字段) 会忽略所有的null值(想查询一个表中有多少个记录,就使用这个count())
- SELECT COUNT(student_name) FROM student;
- -- COUNT(*) 不会忽略所有的null值 本质计算行数
- SELECT COUNT(*) FROM student;
- -- COUNT(1) 不会忽略所有的null值 本质计算行数
- SELECT COUNT(1) FROM student;
-
-
- SELECT SUM(student_result) AS '总和' FROM result;
- SELECT AVG(student_result) AS '平均分' FROM result;
- SELECT MAX(student_result) AS '最高分' FROM result;
- SELECT MIN(student_result) AS '最低分' FROM result;
-
- -- 查询不同课程的平均分,最高分,最低分
- SELECT sub.subject_name AS '课程',
- AVG(res.student_result) AS '平均分',
- MAX(res.student_result) AS '最高分',
- MIN(res.student_result) AS '最低分'
- FROM result res
- INNER JOIN `subject` sub
- ON res.`subject_no`=sub.`subject_no`
- GROUP BY res.`subject_no`
- HAVING AVG(res.student_result) >80;