一  比较86和92语法中多表连接区别 
 
   1笛卡尔积 
 
   --oracle连接的基础 笛卡尔积

--92语法 更加清晰明了的区别了 每一种连接

--解决了多表关联时  条件不清晰的问题 
 
   select * from emp;

select * from dept;

--86语法 
 
   select * from emp e,dept d; 
 
    --92语法 
 
   select * from emp cross join dept

2内连接

select * from emp;

select * from dept;

--86语法

select * from emp e,dept d where e.deptno=d.deptno;

--92语法

select * from emp inner join dept on emp.deptno=dept.deptno

3左外连(左外连接和右外联的区别在于 谁为主 谁为从  意义相同)

--86语法

select * from emp e,dept d where e.deptno=d.deptno(+)

--92语法

select * from emp e left join dept d on e.deptno=d.deptno

-- oracle中子查询

表子查询  只要输出的结果是个表结构 就可以放在from后查询 也可以设置别名

select abc.ename,abc.loc from (

select * from emp e inner join dept d on e.deptno=d.deptno

) abc;

select * from emp;

select * from dept; 
 
       /** 
 
          列的子查询  子查询 永远只能返回一行一列数据

列子查询的原理 
 
         for(emp e: list<emp>){ 
 
             syso(e.ename); 
 
             for(dept d: list<dept>){ 
 
                if(e.deptno==d.deptno){ 
 
                    syso(d.dname) 
 
                     break; 
 
                } 
 
             } 
 
          } 
 
       **/ 
 
       select ename,(select dname from dept  where deptno=e.deptno) from emp e;

--条件子查询

select * from tab;

select * from salgrade

--薪水等级是2的人

select losal,hisal from salgrade where grade=2

select * from emp where sal>=(select losal from salgrade where grade=2) 
 
              and sal<=(select hisal from salgrade where grade=2)

select * from emp  e inner join salgrade s on e.sal>=s.losal and e.sal<=s.hisal

where s.grade=2

/** 
 
        /**

--多行子查询 
 
        for(emp e: list<emp>){ 
 
             syso(e.ename); 
 
             for(dept d: list<dept>){ 
 
                if(d.dname.indexOf('A')>=0){ 
 
                 if(e.deptno==d.deptno ){ 
 
                      syso(d.dname) 
 
                      break;


 
                } 
 
             } 
 
          } 
 
        **/

select * from emp where deptno =any(

select deptno from dept where dname like '%A%'


 
        select * from emp where deptno in( 
 
               select deptno from dept where dname like '%A%' 
 
        )  
 
        --效率最高的子查询语句 
 
       select * from emp e where exists( 
 
               select deptno from dept d where d.deptno=e.deptno and dname like '%A%' 
 
        )

2 集合操作符 
 
     并集 
 
     union all 集合中的元素 全部叠加 不会去重复 
 
     union  集合中的元素 全部叠加 会去重复 
 
     intersect 交集 
 
     {1,2},{2,3} 结果为 {2} 
 
     minus 取差集

{1,2},{2,3} 结果为{1}

转载于:https://www.cnblogs.com/t0404/p/10291071.html

Oracle86和92语法的连接,子查询,集合的操作相关推荐

  1. mySQL学习记录(局域网连接/基础查询/条件查询/常见函数/窗口函数/表连接/子查询/插修删建表)

    一些基础概念 DB 数据库 存储数据的容器 DBMS 数据库管理系统 又称数据库软件.产品如mysql/oracle/db2/sqlserver SQL 结构化查询语言 是所有的DBMS都使用的一种D ...

  2. Oracle入门--水表项目(单表查询,链接查询,左右外连接,子查询,分页查询)(3)

    水表项目建表 1.1.1 分析 1.1.2 SQL实现 表结构 -- <自来水公司收费系统> -- 1 业主类型表 create table t_ownertype(id number p ...

  3. 4,表查询语法,表连接,子查询

    数据库基础四: 今日内容: 一:单表查询语法 from 找表 where 第一次筛选 group by 分组 having 二次筛选 distinct 去重(数据一模一样时去重复的,在from之前使用 ...

  4. mysql数据库入门教程(5):多表操作(连接查询,子查询,分页查询,联合查询)

    前文介绍了单表查询:mysql数据库入门教程(4):查询讲解大全 今天介绍下多表查询 一.连接查询 含义:又称多表查询,当查询的字段来自于多个表时,就会用到连接查询 先送上下面所讲用到的sql脚本 h ...

  5. case when嵌套子查询_Oracle基础连接查询!!!

    1. 字符到日期的转换 (1) 在Oracle中将字符转换为日期的函数是什么? (2) To_date('字符','转换格式') To_date('2019-03-04','yyyy-MM-dd') ...

  6. MySql基础篇---002 SQL之SELECT使用篇: 基本的SELECT语句,运算符,排序与分页,多表查询,单行函数,聚合函数,子查询

    第03章_基本的SELECT语句 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 1. SQL概述 1.1 SQL背景知识 1946 年,世界上第一台电脑 ...

  7. oracle多表关联查询报表,oracle多表关联查询和子查询

    oracle多表关联查询和子查询 一.多表关联查询 例子: sql> create table student1 ( sid varchar(3), sname varchar(6), sage ...

  8. MySQL子查询原理分析

    01 前言 子查询,通俗解释就是查询语句中嵌套着另一个查询语句.相信日常工作中接触到 MySQL 的同学都了解或使用过子查询,但是具体它是怎样实现的呢? 查询效率如何? 这些恐怕好多人就不太清楚了,下 ...

  9. SQL中的关联子查询

    目录 关联查询 例子 分解相关的嵌套查询 与不同的表一起使用 关联子查询与内部联接 哪个更快? 哪个更容易阅读? 哪一个更好? HAVING子句中的关联子查询 在本文中,我们将查看几个示例并将关联子查 ...

最新文章

  1. 提效工具git的基本使用
  2. 牛客网 -- 计算机历年考研复试上机题 -- 手机键盘
  3. ABP从入门到精通(2):aspnet-zero-core 使用MySql数据库
  4. python 读写 json文件
  5. 面向对象的分析与设计
  6. Java基础零碎知识点总结(持续补充)
  7. eclipse提交代码到github其他分支
  8. ubuntu中Ruby开发集成环境
  9. phpstudy开机自启
  10. Router-view
  11. mono java 性能_Mono对Java的支持
  12. Java中的实体类(VO、PO、DO、DTO、BO、QO、DAO、POJO)
  13. 计算机提示无法识别usb,电脑提示“无法识别的USB设备”如何解决?
  14. 商场会员营销小程序-连接会员,赋能商家
  15. Windows10安装Centos7双系统
  16. kali 主动信息收集之dmitry和amap
  17. 考研英语 - word-list-46
  18. 相关性质和条件变量-ReentrantLock详解(2)-AQS-并发编程(Java)
  19. PYTORCH 笔记 DILATE 代码解读
  20. 用浏览器打开.html文件的经过

热门文章

  1. 将 app 打包成 deb 发布安装
  2. WinPcap捕获数据包
  3. java实现数字(摘要)签名,生成签名文件,防止文件被人篡改内容,分析和实现
  4. 设计进步,记一笔,控制层的代码,他不光控制还要校验数据!以前理解错啦
  5. 3 Git 分支 - 分支管理
  6. 用C++11 实现 thread pool
  7. 离散数学及其应用上的一个问题
  8. windows和linux下的文件路径表示
  9. 覃超-算法训练营 学习方法分享[1] 如何精通一个领域
  10. 数组指针和指针数组,函数指针和指针函数,常量指针和指针常量,常量引用