zoukankan      html  css  js  c++  java
  • Oracle 学习笔记(七)

    子查询

    概念:指嵌入在其他 sql 语句中的 select 语句,也叫做嵌套查询。 

     

    单行子查询 

    指只返回一行数据的子查询语句

    查询 SMITH 同部门的所有员工 

    1、查询出 SMITH 的部门号 

    select deptno from emp WHERE ename = 'SMITH'; 

    2 、查询 SMITH 同部门的所有员工  

    SELECT * FROM emp WHERE deptno = (select deptno from emp WHERE ename = 'SMITH'); 

    (执行 sql 是从左到右扫描,如果有括号,括号里面的先被优先执行)

    多行子查询

    指返回多行数据的子查询语句

    查询和部门 10 的工作相同的雇员的名字、岗位、工资和部门号 

    1、去重查询部门为 10 的工作

    SELECT DISTINCT job FROM emp WHERE deptno = 10; 

    2、查询和部门 10 的工作相同的雇员的名字、岗位、工资和部门号

    SELECT * FROM emp WHERE job IN (SELECT DISTINCT job FROM emp WHERE deptno = 10); 

    (不能用 job = **,因为等号是一对一的) 

    在多行子查询中使用 all 操作符

    查询工资比部门 30 的所有员工的工资高的员工的姓名、工资和部门号

    SELECT ename, sal, deptno FROM emp WHERE sal > all (SELECT sal FROM emp WHERE deptno = 30); 

    还可以用函数 MAX 查询 

    SELECT ename, sal, deptno FROM emp WHERE sal > (SELECT MAX(sal) FROM emp WHERE deptno = 30); (执行效率上, 函数高得多) 

    在多行子查询中使用 ANY 操作符

    查询工资比部门 30 的任意一个员工的工资高的员工姓名、工资和部门号

    SELECT ename, sal, deptno FROM emp WHERE sal > ANY (SELECT sal FROM emp WHERE deptno = 30); 

    今天笔记做到这,后续有空继续。

      

    【微信公众号:Stephen】一个毕业三年后自学 Java 入行的程序员。
  • 相关阅读:
    PHPCMS实现文章置顶功能的方法
    phpcms v9栏目列表调用每一篇文章内容方法1
    phpcms v9使用GET调用指定id文章内容、页面数据方法
    PHPCMS GET标签使用
    PHPCMS栏目调用2
    PHPCMS二层栏目调用
    PHPCMS get当中使用limit
    phpcms栏目调用
    WAMP学习日记之:Apache发布php网站
    用Apache实现一个ip虚拟多个web站点
  • 原文地址:https://www.cnblogs.com/stephen-java/p/10816713.html
Copyright © 2011-2022 走看看