排序查询
- 语法
select 查询列表
from 表
where 筛选条件
order by 排序列表
- 特点
asc/desc;
排序支持单个字段、多个字段、别名、函数;
order by一般放在查询语句最后(除limit之外)
常见函数
-
字符函数
concat
substr
instr
upper
lower
replace
length
trim
lpad
rpad -
数学函数
ceil
round
mod
floor
truncate
round -
日期函数
now
year
month
day
date_format: 将日期转化为字符
curdate
str_to_date: 将字符转化为日期
curtime
datediff: 返回两个日期相差的天数
4.其他函数
version
database
user
5.流程控制函数
if(条件表达式,表达式1,表达式2):如果条件表达式成立,则返回表达式1,否则返回表达式2.
case+变量/表达式/字段
when 常量1 then 值1
when 常量2 then 值2
…
else 值n
end;
case(区间判断)
when 条件一 then 值1
when 条件二 then 值2
…
else 值n
end;分组函数
- 分类
max
min
sum
avg
count - 特点
sum,avg一般用于数值型
max,min,count可以处理任何数据类型
以上分组函数都忽略null值
都可以搭配关键字distinct
count(字段):统计该字段的空值个数。
count(*): 统计结果集的行数
count(1): 相当于加了一列全为1的值,对1的个数的统计。
- 分类
分组查询
select 分组函数,分组后的字段
from 表
【where 筛选条件】
group by 分组字段
【having 分组后的筛选】
【order by 排序字段】
连接查询
查询中涉及多个字段
缺少有效连接时,出现笛卡尔乘积现象。
- 分类
按年代分类:
sql 92: 等值、非等值、自连接
sql 99:内连接,外连接,交叉连接