顺序: from --> where --> group by --> having --> select --> order by
快速记忆方式: 倒数第一 排序 倒数第二 select 开头最新 from
----------------通俗解释-------------------
distinct 去重
limit 留几行数据
is not 不是
在order by字段 后加上asc / asc 升序/
desc 降序
join 多表联查/ 字段左右合在一起
union 内容合并 / 上下合在一起
with as 子表名
decode(course, '语文', score) 语文, (单行函数),选择函数
group by 分组
max/min/avg 组合函数最值/平均值
over 开窗函数
data_sub('时间',-1) 时间间隔设置
----------------多表-------------------
from 表1,表2 92语法
from 表1join表2 99语法
/交叉连接cross join/ (inner) join/ left join/ right join/ full join/
等值连接:自然连接 : 自动做等值连接(同名字段|主外键字段) natural join
1,自然连接-----natural join- 自动做等值连接(比92不要写where了)
2,join ..using(同名字段) 指定使用哪个同名字段做等值连接-,也是系统自动做等值连接(连接条件省略)
3,join..on ,既能够做等值连接,也能做非等值连接--join..on(连接条件)
99语法的----内连接(inner) join
99语法的----外连接,全连接
----------------rownum -------------------
--rownum : 结果集中行记录的序号
--一个结果集就存在一份rownum
--rownum从1开始,每次+1,有规律,有顺序
groupby 和 rownum 谁执行? rownum先执行
-------------时间函数--------------
语法:date(字段名) 大小写都行
where YEAR(字段名) = YEAR(NOW())
where MONTH(字段名) = MONTH(NOW())
where day(字段名) < 31
现在时间用 now()
add_months(字段名, 几)
//--只有月份有这个函数,日期改变用 +
date_sub('时间',interval 3 day)
date_add(尽量用这个,这个常用)
select date_format(now(),'%Y-%m-%d');