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