MySQL函数

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

1.1 数学运算

SELECT ABS(-8) -- 绝对值

mysql 聚合函数合并字段 mysql聚合字符串_MySQL

SELECT CEILING(9.4) -- 向上取整

mysql 聚合函数合并字段 mysql聚合字符串_字符串_02

SELECT FLOOR(9.7) -- 向下取整

mysql 聚合函数合并字段 mysql聚合字符串_数据库_03

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

mysql 聚合函数合并字段 mysql聚合字符串_mysql 聚合函数合并字段_04

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

mysql 聚合函数合并字段 mysql聚合字符串_字符串_05

1.2 字符串函数

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

mysql 聚合函数合并字段 mysql聚合字符串_mysql 聚合函数合并字段_06

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

mysql 聚合函数合并字段 mysql聚合字符串_字符串_07

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

mysql 聚合函数合并字段 mysql聚合字符串_数据库_08

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

mysql 聚合函数合并字段 mysql聚合字符串_数据库_09

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

mysql 聚合函数合并字段 mysql聚合字符串_mysql 聚合函数合并字段_10

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

mysql 聚合函数合并字段 mysql聚合字符串_mysql 聚合函数合并字段_11

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

mysql 聚合函数合并字段 mysql聚合字符串_mysql_12

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

mysql 聚合函数合并字段 mysql聚合字符串_mysql 聚合函数合并字段_13

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

mysql 聚合函数合并字段 mysql聚合字符串_mysql 聚合函数合并字段_14

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

mysql 聚合函数合并字段 mysql聚合字符串_字符串_15

1.3 时间和日期函数(记住)

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

mysql 聚合函数合并字段 mysql聚合字符串_MySQL_16

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

mysql 聚合函数合并字段 mysql聚合字符串_字符串_17

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

mysql 聚合函数合并字段 mysql聚合字符串_mysql_18

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

mysql 聚合函数合并字段 mysql聚合字符串_MySQL_19

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

mysql 聚合函数合并字段 mysql聚合字符串_MySQL_20

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

1.4 系统

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

mysql 聚合函数合并字段 mysql聚合字符串_mysql 聚合函数合并字段_21

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

mysql 聚合函数合并字段 mysql聚合字符串_mysql_22

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

mysql 聚合函数合并字段 mysql聚合字符串_mysql 聚合函数合并字段_23

1.5 应用

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

mysql 聚合函数合并字段 mysql聚合字符串_mysql 聚合函数合并字段_24

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

mysql 聚合函数合并字段 mysql聚合字符串_MySQL_25


mysql 聚合函数合并字段 mysql聚合字符串_mysql 聚合函数合并字段_26

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

mysql 聚合函数合并字段 mysql聚合字符串_mysql 聚合函数合并字段_27

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

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

mysql 聚合函数合并字段 mysql聚合字符串_mysql_28

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

mysql 聚合函数合并字段 mysql聚合字符串_mysql 聚合函数合并字段_29

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

mysql 聚合函数合并字段 mysql聚合字符串_MySQL_30

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

mysql 聚合函数合并字段 mysql聚合字符串_MySQL_31

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

mysql 聚合函数合并字段 mysql聚合字符串_mysql_32

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

mysql 聚合函数合并字段 mysql聚合字符串_mysql 聚合函数合并字段_33

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

mysql 聚合函数合并字段 mysql聚合字符串_MySQL_34

2.2 分组过滤

-- 查询不同课程的平均分,最高分,最低分,且平局分大于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 -- 分组后的条件

mysql 聚合函数合并字段 mysql聚合字符串_MySQL_35