一.连接
内连接:
内连接一共有两种方式:
隐式内连接:
select 字段名 from 表1,表2 where 条件 .....;
显式内连接:
select 字段名 from 表1 [inner] join 表2 on 连接条件 ;
内连接就是查询绿色部分,也就是两张或多张表相同的地方
最多的就是等值连接
外连接:
左外连接:
select 字段列表 from 表1 left join 表2 on 条件 .....;
上图中: A 蓝色区域
右外连接:
select 字段列表 from 表1 right join 表2 on 条件 .....;
上图中: B黄色区域
自连接:
自连接,就如它的名字一样,就是一张表自己连接自己,在自连接中一定要为表名取别名,这样才知道条件中事那个表的字段
select 字段列表 from 表A as a jion 表A as b on 条件.....;
二.联合查询
联合查询指的是使用两个sql 去查询两张表,然后拼接成一次结果集返回
关键字:
union : 拼接的结果去重
union all:拼接的结果不去重
select 字段列表 from 表 1 .....
union
select 字段列表 from 表 2 .....
注意:查询出来的结果集字段属性一定是要一样的,不然是拼接不了的
三.子查询
在sql语句中嵌套 select语句成为子查询
子查询语句可以被嵌套到 delete,update,insert ,select 语句中,不仅仅是只能嵌套到select 语句中
select 字段列表 from 表1 where colum = (select colum from 表2);
标量子查询:
子查询返回的值是单个值(数据,字符串,日期),这些最简单的形式
常用的操作符: = , <> , > , >= , < , <=
列子查询:
子查询返回的值是一列
常用的操作符:
in :在范围内
not in:不在范围内
any :有一个满足即可
some:与any 相同
all:所有返回值必须全部相同
行子查询:
子查询返回值的是一行
常用的操作符:
= , <> , IN , NOT IN
表子查询:
子查询返回的结果是多行多列,相当于一个小子表
常用操作符:IN
标签:语句,和子,查询,.....,联表,列表,连接,select From: https://www.cnblogs.com/5ran2yl/p/17417771.html