SQL - 查询

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

子句顺序

你可能感兴趣的:(SQL - 查询)