博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle开发之<<SQL Cookbook>>学习笔记整理:第三章 操作多个表
阅读量:6242 次
发布时间:2019-06-22

本文共 1288 字,大约阅读时间需要 4 分钟。

1.union all只是结果集叠加,union叠加后去重。

2.使用join实现表的关联,笛卡尔积:cross join, 等值连接:inner join, 左连接:left join, 右连接:right join, 全连接:full outer join。

3.使用intersect和in配合也可以实现等值连接,intersect返回两个行来源中的共同行,且不返回重复行。

SELECT empno,       ename,       job,       sal,       deptno    FROM emp WHERE (ename,job,sal) IN(SELECT ename,        job,        sal       FROM emp    INTERSECT SELECT ename,        job,        sal      FROM v);

4.用minus实现结果集相减,基本等价于not in,注意not in不去重且不能处理空值(会返回NULL,因为not in等价于not or,"TRUE OR NULL"结果为TRUE, "FALSE OR NULL"结果为NULL),minus去重且可以空值,解决空值问题可以用not exists.

5.使用反连接(外连接+NULL筛选)来查找与其他表不匹配的记录,示例如下:

SELECT d.* FROM   dept d LEFT OUTER JOIN emp e    ON (d.deptno=e.deptno)WHERE e.deptno IS NULL

6.使用外连接或标量子查询来向结果中添加列,示例如下:

select e.ename,d.loc,eb.received                     from emp e join deptno don (e.deptno=d.deptno)               left join emp_bonus ebon (e.empno=eb.empno)order by 2等价于select e.ename,d.loc,(select eb.received from  emp_bonus ebwhere e.empno=eb.empno) as receivedfrom emp e,deptno dwhere e.deptno=d.deptnoorder by 2

7.找出两个表中不同的数据:

思路:(1)首先找出表EMP中存在而视图V中没有的行;

         (2)然后合并在视图V中存在而表EMP中没有的行。

技巧:MINUS+UNION ALL

8.聚集和关联一起使用时,先聚集再关联,或者先去重再关联,避免产生笛卡尔积导致汇总结果不对。

9.full outer join = left outer jion + union + right outer join.

 

         

 

转载于:https://www.cnblogs.com/davidxu/p/6479284.html

你可能感兴趣的文章
微软宣布Entity Framework 5的性能有了显著提升
查看>>
SPSS中八类常用非参数检验之二:二项分布(Binomial)检验
查看>>
mysql字段类型范围说明:int、bigint、smallint、tinyint,char、varchar、nvarchar
查看>>
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
查看>>
C# Socket编程(5)使用TCP Socket
查看>>
SQL SERVER IN参数化处理
查看>>
Python MongoDB Spatial Query
查看>>
NetBeans IDE 7.4 Beta版本build JavaFX时生成的可执行jar包执行时找不到依赖的jar包
查看>>
笔记本wifi热点设置好后,手机连上但不能上网问题
查看>>
Run ASP.NET MVC site on mac (mono/xamarin studio)
查看>>
win8.1安装驱动出现“文件的哈希值不在指定的目录”的解决办法[zz]
查看>>
CRM 常用SQL 脚本
查看>>
备忘录--关于线程和IO知识
查看>>
【iCore3 双核心板】例程八:定时器PWM实验——呼吸灯
查看>>
jquery tmpl 详解
查看>>
docker学习笔记4:利用docker hub上的mysql镜像创建mysql容器
查看>>
【Xamarin开发 Android 系列 3】循序渐进的学习顺序
查看>>
自定义列表dl的使用原因和场合
查看>>
Oracle11G 卸载步骤
查看>>
PHP递归生成树形数组
查看>>