概述
select-3
交、并、差运算
集合——一个表、或select后的结果等均可以看作是一个集合
并——粉色区域
a union b:
a union all b:
交——白色区域(‘‘两个人之间没有交集’’)
a intersect b:
差——白色区域
a minus b:
b minus a:
综合示例
--用交运算求emp表中工资大于2000的员工信息(不删除重复元素)
SELECT * from emp WHERE sal>3000
UNION ALL
SELECT * from emp WHERE sal>2000;
--用交运算求emp表中10部门和20部门的员工信息(删除重复元素)
SELECT * from emp WHERE sal>3000
UNION
SELECT * from emp WHERE sal>2000;
--用并运算求emp表中工资大于800小于2000的数据
SELECT * from emp WHERE sal>800
intersect
SELECT * from emp WHERE sal<2000;
--求10部门员工信息差20部门员工信息
select * from emp where deptno=10
minus
select * from emp where deptno=20;
--求20部门员工信息差10部门员工信息
select * from emp where deptno=20
minus
select * from emp where deptno=10;
运行效果如下:
交:
并:
差:
注:
- 交、并、差必须保证结果集的一致性,例如列的一致性等
联表查询
笛卡尔积(交叉连接)——行、列扩充
select 列名,... ,列名 from 表名1 CROSS JOIN 表名2;
注:
- 笛卡尔积结果集的行数为表1行数*表2行数
- 笛卡尔积结果集的列数为表1列数+表2列数
示例如下:
内连接——不显示不符合连接条件的数据
select 列名,... ,列名 from 表名1 inner JOIN 表名2 on 连接条件;
示例如下:
自连接——同一表连接同一表
select 列名,... ,列名 from 表1 别名 1 inner JOIN 表1 别名2 on 连接条件;
示例如下:
注:自连接格外注意两个表之间逻辑联系
不等连接——连接条件为不等条件(比较运算符)
示例如下:
全连接——查询出两个表数据,若连接条件对应不上则显示null
select 列名,列名,列名,....
from 表A full outer join 表B on 连接条件;
示例如下:
左外连接——显示左表全数据
select 列名,列名,...
from 表A left outer join 表B on 连接条件;
注:左外连接左边表数据中不符合规则也会显示出来
右外连接——显示右表全数据
select 列名,列名,列名,...
from 左表 right outer join 右表 on 连接条件
注:右外连接右边表数据中不符合规则也会显示出来
自然连接——自动连接数据类型和列名都相同的字段,然后返回符合条件的结果
select 列名,列名,...
from 表1 natural join 表2;
示例如下:
子查询
from后接select语句
select 列名 from (select语句);
where后接select语句
select 列名 from 表名 where 列名 比较运算符(>、<、=)、in (select语句);
注:=与in的区别
- =要求后接的select语句返回的结果集只能为一行,in可以有多行
having后接select语句
select 列名 from 表名 group by 列名 having 列名 比较运算符 (select语句);
select与from之间的select语句
select 列名,(select语句) from 表名;
最后
以上就是清爽口红为你收集整理的select查询(交、并、差、联表查询、子查询) select-3 的全部内容,希望文章能够帮你解决select查询(交、并、差、联表查询、子查询) select-3 所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复