1. 单个列
2. 多个列
3. 所有列
4. order by 子句
5. 多个列排序,并指定方向
6. where 子句, > ,< ,= ,BETWEEN ,IS NULL
7. 高级数据过滤
-
and 和 or 并且组合
-
in 指定范围,范围中的每个条件都可以进行匹配
-
not 在where中用来否定后跟条件的关键字
8. 通配符
-
% 通配符,匹配多个字符
-
_通配符,匹配单个字符
-
[] 通配符,通配指定位置的一个字符
9.计算字段
![](https://img.haomeiwen.com/i3156988/de7a7ebfe7419c47.png)
10.使用别名
![](https://img.haomeiwen.com/i3156988/eb0bb600e3f728b9.png)
11.执行算术计算
![](https://img.haomeiwen.com/i3156988/ec98338701d0bc89.png)
12.数据分组
-
创建分组: group by (列名), 每一个此列的值成为一行,并得到select指定的数据
-
过滤分组: 对上述分组进行过滤
-
排序分组: 与group by 的不同是排序产生输出
10. 子查询
仅推荐from子句的子查询(where/select子句中的子查询最好用联结代替,因为效率很低)
多行子查询(结果集不是单行的)不能出现在select子句中
![](https://img.haomeiwen.com/i3156988/79e2d43bcb95f104.png)
where 子句中,可以使用 in(在结果集中), all(比所有结果集都...), any(比结果集中某一个...), exists() 关键字来处理多行表达式结果集的条件判断
11.联结表 join
-
创建联结。 用where子句创建联结。
-
内部联结。 用于两个表之间的等值测试。
-
联结多个表
12.高级联结
无论何时对表进行联结,至少应该有一个列出现在不止一个表中,是被联结的列。
-
表别名:
-
自联结:
Jim Jones 所在公司工作的所有客户
-
外部联结:包括了没有关联行的行
上述语句与以下相同
-
带聚集函数的联结:
13.组合查询
在单个查询中从不同的表返回类似的数据
对单个表执行多个查询,按单个查询返回数据
-
创建组合查询
union中每个查询必须包含相同的列、表达式或聚集函数(顺序可以不同)
不同类型会做隐式类型转换
- 包含重复项 用union all 代替 union
-
对组合查询结果排序
函数
文本处理函数
![](https://img.haomeiwen.com/i3156988/03d24bebebbcc788.png)
日期和时间处理函数
DATEPART(yy, order_date)
参数1: 返回成分
参数2: 从中返回成分的日期
数值处理函数
![](https://img.haomeiwen.com/i3156988/21a55bcd9b23cc6e.png)
聚集函数: 运行在行组上,计算和返回单个值的函数
![](https://img.haomeiwen.com/i3156988/e7c6616b9697194a.png)
1 avg函数忽略值为null的行
2 count函数中,count(*)计数包括null值的列,cout(column)计数不包括null的
3. 聚合函数可使用 all(默认) 或 distinct(只包含不同的值) 如 select avg(distinct 列名) as avg_price
子句顺序
![](https://img.haomeiwen.com/i3156988/de1908fb11f274c9.png)
网友评论