MySql学习之基本函数和聚合函数(三)

-- 基本函数

-- 数学运算

-- 绝对值
SELECT ABS(-1) -- 1
-- 向上取整
SELECT CEIL(1.1) -- 2
-- 向下取整
SELECT FLOOR(1.9) -- 1
-- 随机数(0~1)
SELECT RAND()
-- 判断一个数的符号
SELECT SIGN(10) -- 1
SELECT SIGN(0) -- 0
SELECT SIGN(-10) -- -1

-- 字符串函数

-- 字符串长度
SELECT CHAR_LENGTH('hello') -- 5
-- 拼接字符串
SELECT CONCAT('hello',' ','world') -- hello world
-- 大小写转换
SELECT LOWER('ABC') -- abc
SELECT UPPER('abc') -- ABC
-- 第一次出现的位置
SELECT INSTR('abcdabcdabcd','d') -- 4 
-- 字符串替换
SELECT REPLACE('abcd','ab','xy') -- xycd
SELECT INSERT('abcde',1,2,'xyz') -- xyzcde
-- 字符串截取
SELECT SUBSTR('abcd',1,2) -- ab
-- 字符串反转
SELECT REVERSE('abcd') -- dcba

-- 时间和日期函数

SELECT CURRENT_DATE() -- 2020-05-06
SELECT CURDATE() -- 2020-05-06
SELECT NOW() -- 2020-05-06 14:59:09
SELECT LOCALTIME() -- 2020-05-06 14:59:09
SELECT SYSDATE() -- 2020-05-06 14:59:09
SELECT YEAR(NOW()) -- 2020
SELECT MONTH(NOW()) -- 5
SELECT DAY(NOW()) -- 6
SELECT HOUR(NOW()) -- 14
SELECT MINUTE(NOW()) -- 59
SELECT SECOND(NOW()) -- 9

-- 系统
SELECT SYSTEM_USER() -- root@localhost
SELECT USER() -- root@localhost
SELECT VERSION() -- 8.0.20
-- 聚合函数

-- count(字段) 只包括所给字段,列会忽略所有的null值
SELECT COUNT(student_id) FROM student
-- count(*) 统计行数,不会忽略null值 
SELECT COUNT(*) FROM student
-- count(1) 忽略所有列,用1代表每行,不会忽略null值
SELECT COUNT(1) FROM student

SELECT SUM(result) AS 总分 FROM result
SELECT AVG(result) AS 平均分 FROM result
SELECT MAX(result) AS 最大值 FROM result
SELECT MIN(result) AS 最小值 FROM result

-- 查询不同课程平均分,最高分,最低分
SELECT s.subject_name,AVG(r.result),MAX(r.result),MIN(r.result)
FROM result r
JOIN `subject` s
ON r.subject_id = s.subject_id
GROUP BY r.subject_id
HAVING AVG(r.result)>80

你可能感兴趣的:(笔记)