首页 > 代码库 > 查询五子句
查询五子句
高级查询
select 【all|distinct】*或字段名 【as】 字段别名 from 表名 【as】 表别名 【where 子句】【group by子句】【having子句】【order by子句】【limit 子句】
【all|distinct】
select选项
all 所有记录包含重复,
distinct 不包含重复
此处重复:指的是查询出来的数据,记录所有的字段都相同才是重复。
字段别名
表别名
主要用于在多表进行查询时,多个表中可能有同名的字段,通过表别名进行指定。
【where 子句】
原理:
根据条件将位于硬盘中的数据读取到内存中,进行显示或进行其后子句的操作
如果没有where子句,表示位于硬盘所有的数据都符合条件。
where子句的运算符
between m and n m至n之间的值,包含m与n
in 在某个集合内
not in 对in进行取反
is null 专用于判断null值
is not null 对is null进行取反
<=> 专用于判断null值
like 进行模糊查询
占位符
% 当前位置的0个或多个字符
_ 当前位置的1个字符
【group by子句】
进行分组,主要用是分组后应用统计函数。
select 字段名 from 表名 group by 字段名,字段名...
统计函数
max() 统计最小分组中的最大值
min() 统计最小分组中的最小值
avg() 统计最小分组中的平均值
sum() 统计最小分组中的和
count(*或字段名) 统计最小分中的记录数
* 全部记录
字段名 如果count统计的字段中包含null值,则此条记录不参与统计。
如果没有指定group by子句,那么相当于所有的记录是一个组。
with rollup
回溯
对最小分组以上的大组再进行一次统计。
【having子句】
对group by之后的结果再进行一次,筛选。
having 可以实现where的某些功能。但不建议使用having代替where,存在效率问题。
【order by子句】对最近的一个结果集进行排序。
最近的结果集:如果只有where表示对where的结果集进行排序,
如果有where又有group by对group by的结果集进行排序。
asc (缺省)升序
desc 降序
【limit 子句】
分页原理:
limit (页码-1)*每页的记录数,每页的记录数
联合查询:
应用场合:
分表存储,联合查询。
对同一个表的不同部分进行不同的操作。
语法:
select 语句
union
select 语句
联合查询的order by条件:
1、每个select语句必须使用括号括起来
2、每个select语句必须包含limit 子句。
查询五子句