DQL

DQL语言

语法(圈内数字表示执行顺序表示):

select 查询列表     ⑦
from 表1 别名        ①
连接类型 join 表2   ②
on 连接条件           ③
where 筛选             ④
group by 分组列表 ⑤
having 筛选            ⑥
order by排序列表   ⑧
limit 起始条目索引,条目数; ⑨

分组查询:

select 分组函数,分组的字段  from 表【where 分组前筛选条件】group by 分组的字段   having 分组后的筛选 【order by 排序列表】

where条件针对原始表,having条件针对分组后的表。

连接查询:

SQL92::

1.等值连接: select  查询列表  from 表1 as 别名,表2 as 别名  where  表1.key=表2.key 【and  筛选条件】【group by 分组字段】 【having 分组后筛选】

 2.非等值连接:  select  查询列表  from 表1 别名,表2 别名  where 非等值的连接条件【and 筛选条件】【group by 分组字段】【having 分组后的筛选】【order by 排序字段】

 3.自连接:  select 查询列表 from 表 别名1,表 别名2 where 等值的连接条件【and 筛选条件】【group by 分组字段】【having 分组后的筛选】【order by 排序字段】

SQL99:

 1.内连接:select 查询列表 from 表1 别名【inner】 join 表2 别名 on 连接条件 where 筛选条件【group by 分组列表】【having 分组后的筛选】【order by 排序列表】【limit 子句】;

特点:
①表的顺序可以调换
内连接的结果=多表的交集
③n表连接至少需要n-1个连接条件

  2.外连接:select 查询列表 from 表1 别名 left|right|full【outer】 join 表2 别名 on 连接条件【where 筛选条件】【group by 分组列表】【having 分组后的筛选】【order by 排序列表】【limit 子句】

特点:
查询的结果=主表中所有的行,如果从表和它匹配的将显示匹配行,如果从表没有匹配的则显示null
②left join 左边的就是主表,right join 右边的就是主表,full join 两边都是主表
③一般用于查询除了交集部分的剩余的不匹配的行

  3.交叉连接:select 查询列表 from 表1  别名  cross join 表2  别名

特点:
类似于笛卡尔乘积

子查询

  嵌套在其他语句内部的select语句称为子查询或内查询,外面的语句可以是insert、update、delete、select等,一般select作为外面语句较多外面如果为select语句,则此语句称为外查询或主查询;

1、按结果集的行列
标量子查询(单行子查询):结果集为一行一列
列子查询(多行子查询):结果集为多行一列
行子查询:结果集为一行多列
表子查询:结果集为多行多列

语法:

  select后面:
      仅仅支持标量子查询
  from后面:
      表子查询
  where或having后面:
      标量子查询
      列子查询
      行子查询
  exists后面:
      标量子查询
      列子查询
      行子查询
      表子查询

分页查询:

  select 查询列表
  from 表
  limit 【offset,】size;
注意:
offset代表的是起始的条目索引,默认从0开始
size代表的是显示的条目数

联合查询:

  合并、联合,将多次查询结果合并成一个结果

语法:

查询语句1
  union 【all】
查询语句2
  union 【all】
...

特点
1、要求多条查询语句的查询列数必须一致
2、要求多条查询语句的查询的各列类型、顺序最好一致
3、union 去重,union all包含重复项

条件查询:

语法:

  select 查询列表
  from 表名
  where 筛选条件

简单条件运算符  :  > < = <> != >= <= <=>安全等于

逻辑运算符:  && and ,  || or ,  !  not

模糊查询:   

like:一般搭配通配符使用,可以判断字符型或数值型
通配符:%任意多个字符,_任意单个字符

between and
in
is null /is not null:用于判断null值

 

posted @ 2018-08-06 09:17  yi点黑暗  阅读(236)  评论(0编辑  收藏  举报