MySQL常用函数&聚合函数与分组过滤

MySQL函数

MySQL常用函数(但并不常用)

1. 数学运算


SELECT ABS(-8) -- 绝对值

在这里插入图片描述

SELECT CEILING(9.4) -- 向上取整

在这里插入图片描述

SELECT FLOOR(9.7) -- 向下取整

在这里插入图片描述

SELECT RAND() -- 返回一个0~1之间的随机数

在这里插入图片描述

SELECT SIGN(-8) -- 返回一个数的正负 0 => 0 负数 => -1 正数 => 1

在这里插入图片描述

2. 字符串函数

SELECT CHAR_LENGTH("李旭,永远的神")-- 返回字符串的长度

在这里插入图片描述

SELECT CONCAT("李旭","永远的神","!")-- 拼接字符串

在这里插入图片描述

SELECT INSERT("我爱编程",1,2,"超级热爱")-- 查询,从某个位置开始替换某个长度

在这里插入图片描述

SELECT LOWER("WWWWWW") -- 转小写

在这里插入图片描述

SELECT UPPER("wwwwww") -- 转大写

在这里插入图片描述

SELECT INSTR("luxuyongyuandeshen","xu") -- 返回第一次出现字串的索引(从1开始)

在这里插入图片描述

SELECT REPLACE("要相信光","要","一定会")-- 替换字符串

在这里插入图片描述

SELECT SUBSTR("李旭,永远的神",1,2) -- 截取指定的字符串(源字符串,截取位置,截取长度)

在这里插入图片描述

SELECT SUBSTR("李旭,永远的神",4,3) -- 截取指定的字符串(源字符串,截取位置,截取长度)

在这里插入图片描述

SELECT REVERSE("李旭,永远的神") -- 反转字符串

在这里插入图片描述

3.时间和日期函数(记住)

SELECT CURRENT_DATE() -- 获取当前日期

在这里插入图片描述

SELECT CURDATE()  -- 获取当前日期(CURRENT_DATE(),CURDATE()获取结果相同)

在这里插入图片描述

SELECT NOW() -- 获取当前时间

在这里插入图片描述

SELECT LOCALTIME() -- 获取本地时间

在这里插入图片描述

SELECT SYSDATE() -- 获取系统时间(NOW(),LOCALTIME(),SYSDATE()获取的结果是相同的)

在这里插入图片描述

SELECT YEAR(NOW()) -- 获取当前年
SELECT MONTH(NOW()) -- 获取当前月
SELECT DAY(NOW()) -- 获取当前日
SELECT HOUR(NOW()) -- 获取当前时
SELECT MINUTE(NOW()) -- 获取当前分
SELECT SECOND(NOW()) -- 获取当前秒

4. 系统

SELECT SYSTEM_USER() -- 查看当前用户

在这里插入图片描述

SELECT USER()-- 查看当前用户(SYSTEM_USER(),USER()的结果相同)

在这里插入图片描述

SELECT VERSION() -- 查看MySQL的版本

在这里插入图片描述

5. 应用

-- 查找姓周的同学
SELECT `studentname` FROM `student`
WHERE `studentname` LIKE "周%"

在这里插入图片描述

-- 查找姓周的同学 把周改为 洲 (select语句不会改变表 这只是查询的结果)
SELECT REPLACE(`studentname`,"周","洲") FROM `student`
WHERE `studentname` LIKE "周%"

在这里插入图片描述
在这里插入图片描述

聚合函数(常用)与分组过滤

在这里插入图片描述

统计表中有多少条记录(count())

SELECT COUNT(`studentno`) FROM `student`; -- count(字段) ,会忽略查询的null值

在这里插入图片描述

SELECT COUNT(*) FROM `student` -- 不会忽略null值,本质,计算行数

在这里插入图片描述

SELECT COUNT(1) FROM `student` -- 不会忽略null值,本质,计算行数

在这里插入图片描述

SELECT SUM(`studentresult`) AS "总分" FROM `result`

在这里插入图片描述

SELECT AVG(`studentresult`) AS "平均分" FROM `result`

在这里插入图片描述

SELECT MAX(`studentresult`) AS "最高分" FROM `result`

在这里插入图片描述

SELECT MIN(`studentresult`) AS "最低分" FROM `result`

在这里插入图片描述

分组过滤

-- 查询不同课程的平均分,最高分,最低分,且平局分大于60
SELECT `subjectname`,AVG(`studentresult`) AS "平均分",MAX(`studentresult`) AS "最高分",MIN(`studentresult`) AS "最低分"
FROM `result` AS r
INNER JOIN `subject` AS sub
WHERE r.`subjectno` = sub.`subjectno` 
GROUP BY r.`subjectno` -- 通过什么字段来分组
HAVING 平均分 > 60 -- 分组后的条件

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/I_r_o_n_M_a_n/article/details/114295398