首页 > 代码库 > 查询五子句

查询五子句

高级查询

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 mn之间的值,包含mn

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 bygroup by的结果集进行排序。

asc (缺省)升序

desc 降序

limit 子句】

分页原理:

limit (页码-1)*每页的记录数,每页的记录数

联合查询:

应用场合:

分表存储,联合查询。

对同一个表的不同部分进行不同的操作。

语法:

select 语句

union

select 语句

联合查询的order by条件:

1、每个select语句必须使用括号括起来

2、每个select语句必须包含limit 子句。

查询五子句