1.单表查询
1.1全表、别名、不重复
全表查询:select * from 表名;
查询指定列:select 字段1[,字段2,…] from 表名;
别名的设置:select 字段名 [as] 列别名 from 原表名 [as]表别名;
查询不重复的记录:select distinct 字段名 from 表名;
字段的别名设置只能在select语句中
1.2条件、模糊、空值
条件查询:select 字段1[,字段2,…] from 表名 where 查询条件;
空值查询:select 字段1[,字段2,…] from 表名 where 空值字段 is[ not] null;
模糊查询: select 字段1[,字段2,…] from 表名 where 字符串字段[ not] like 通配符;
1.百分号(%)通配符:匹配多个字符;
2.下划线(_)通配符:匹配一个字符
3.模糊查询只能用于字符串类型的字段
1.3排序、限制
查询结果排序:select 字段1[,字段2,…] from 表名 order by 字段1[ 排序方向,字段2 排序方向,…];
1.多字段排序时,先按第一个字段排序,第一个字段值相同时再按第二个字段排序
2.指定排序方向:asc升序,desc降序(没有指定排序方向时,默认是asc升序)
限制查询结果数量:select 字段1[,字段2,…] from 表名 limit [偏移量,] 行数;
1.limit接受一个或两个数字参数,参数必须是一个整数常量
2.第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目
3.如果只给定一个参数,表示返回最大的记录行数目
4.初始记录行的偏移量是0(而不是1)
1.4分组
分组查询:select 字段1[,字段2,…] from 表名[ where 查询条件] group by 分组字段1[,分组字段2,…];
将查询结果按照一个或多个字段进行分组,字段值相同的为一组,对每个组进行聚合计算
分组后筛选:select 字段1[,字段2,…] from 表名[ where 查询条件][ group by 分组字段1[,分组字段2,…]] having 筛选条件;
> 没有group by的having子句,having会将每条记录作为一个组进行筛选
where与having的区别:
where子句作用于表,having子句作用于组。
where条件查询的作用域是针对数据表进行筛选,而having条件查询则是对分组结果进行过滤。 where在分组和聚合计算之前筛选行,而having在分组和聚合之后筛选分组的行,因此where子句不能包含聚合函数。
分组之后必然要聚合,分组之后,select语句选择显示的字段只能是分组字段、聚合字段、和分组字段一一对应的字段
1.5 select语句顺序
书写顺序
SELECT:要返回的列或表达式 必须使用
FROM:从中检索数据的表或视图 仅从中检索数据时使用
WHERE:行级过滤仅对记录进行筛选时使用
GROUP BY:分组字段仅在分组聚合运算时使用
HAVING:组级过滤仅对分组进行筛选时使用
ORDER BY:输出排序仅对查询结果进行排序时使用
LIMIT:限制输出 仅对查询结果限制输出时使用
执行顺序
FROM
若有连接步骤,则先from,再on,再join
WHERE;
GROUP BY ;
HAVING;SELECT;
ORDER BY ;
LIMIT
1.6运算符
算术
+


雷达卡


京公网安备 11010802022788号







