第五天
内置函数
时间处理函数:
1.看每个人的年份: SELECT year(字段名) from 表名
2.看每个人的月份: SELECT month(字段名) from 表名
3.看每个人的日: SELECT day(字段名) from 表名
数值处理函数:
select day('2022-01-02')...........
返回绝对值:abs()
SELECT abs(-10);
向上取整:ceil()
select ceil()
向下取整:floor()
SELECT floor()
取模: mod()
SELECT mod(5,3)
产生随机数: rand() (生成0-1之间随机的小数,左闭右开原则)
SELECT rand()
SELECT ceil(rand()*10)生成整数
四舍五入: round()
SELECT round(4.5)
合并字符串:concat()
SELECT concat ('你好','1') -> 你好1
去掉左右空格: trim()
SELECT trim(' 12 ') -> 12
去左空格: ltrim()
SELECT ltrim()
去右空格: rtrim()
SELECT rtrim()
截取字符串:
SELECT substring('我爱java',3,2) -> ja
返回字符串长度: length() (一个汉字占三个字节)
SELECT length()
改名 as: (as可以省略)
SELECT 字段名 as ' 新改的字段名' FROM 表名 as '新改的表名'
去重: distinct (只能单独使用,没办法和其他字段使用,否则去重会失效)
SELECT distinct(字段名)FROM 表名
聚合函数(只有一个返回结果)(不能和其他字段进行配合,但是能其他聚合函数配合)
count(*):返回字段条数
计算平均值: avg()
SELECT avg()
计算最大/小值: max/min()
SELECT max/min()
计算总和: sum()
SELECT sum()
排序: order by(默认升序)
SELECT * from 表名 【where】 order by(字段名) asc,(字段名)asc 升序
SELECT * from 表名 【where】 order by(字段名) desc ,(字段名)desc 降序
规范查询范围: LIMIT
SELECT * FROM 表名 LIMIT 0,10 从第0条数据查询到第10条
分组 : GROUP BY (往往配合聚合函数使用)
SELECT * FROM 表名 WHERE sex = '男'
SELECT * FROM 表名 WHERE sex = '女'
-> SELECT * FROM 表名 GROUP BY sex
HAVING: (对分组之后的进行筛选,和它类似的[where]是对分组之前的进行筛选)
SELECT * FROM 表名 [HAVING]
编写顺序` 少妇屋鬼混,哦了
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
LIMIT
执行顺序: 附近欧文肝癌还是斗殴了
from
where
group by
avg()等聚合函数
having
select
distinct
order by
limit