首页 > 数据库 > Oracle教程 > 正文

用SQL进行嵌套查询

互联网 2017-04-11 16:36:04 0

  在select查询语句里可以嵌入select查询语句,称为嵌套查询。有些书上将内嵌的select语句称为子查询,子查询形成的结果又成为父查询的条件。

  子查询可以嵌套多层,子查询操作的数据表可以是父查询不操作的数据表。子查询中不能有order by分组语句。

  4.4.1 简单嵌套查询

  在【命令编辑区】执行下列语句。

  

  select emp.empno,emp.ename,emp.job,emp.sal from scott.emp where sal>=(select sal from scott.emp where ename='WARD');   

  单击【执行】按钮,出现如图4.19所示的结果。

  【参见光盘文件】:/第4章/4.4/441.sql。

  在这段代码中,子查询select sal from scott.emp where ename='WARD'的含义是从emp数据表中查询姓名为WARD的员工的薪水,父查询的含义是要找出emp数据表中薪水大于等于WARD的薪水的员工。上面的查询过程等价于两步的执行过程。

  (1)执行“select sal from scott.emp where ename='WARD'”,得出sal=1250;

  (2)执行“select emp.empno,emp.ename,emp.job,emp.sal from scott.emp where sal>=1250;”

  4.4.2 带【in】的嵌套查询

  在【命令编辑区】执行下列语句。

  

  select emp.empno,emp.ename,emp.job,emp.sal from scott.emp where sal in (select sal from scott.emp where   ename='WARD');

  

  单击【执行】按钮,出现如图4.20所示的结果。

  【参见光盘文件】:/第4章/4.4/442.sql。

  上述语句完成的是查询薪水和WARD相等的员工,也可以使用【not in】来进行查询。 4.4.3 带【any】的嵌套查询

  在【命令编辑区】执行下列语句。

  

  select emp.empno,emp.ename,emp.job,emp.sal from scott.emp where sal >any(select sal from scott.emp where   job='MANAGER');

  

  单击【执行】按钮,出现如图4.21所示的结果。

  【参见光盘文件】:/第4章/4.4/443.sql。

  带any的查询过程等价于两步的执行过程。

  (1)执行“select sal from scott.emp where job='MANAGER'”,其结果如图4.22所示。

  【参见光盘文件】:/第4章/4.4/443-1.sql。

  (2)查询到3个薪水值2975、2850和2450,父查询执行下列语句。

  【参见光盘文件】:/第4章/4.4/443-2.sql。

  

  select emp.empno,emp.ename,emp.job,emp.sal from scott.emp where sal >2975 or sal>2850 or sal>2450;   

  4.4.4 带【some】的嵌套查询

  在【命令编辑区】执行下列语句。

  

  select emp.empno,emp.ename,emp.job,emp.sal from scott.emp where sal =some(select sal from scott.emp where   job='MANAGER');

  

  单击【执行】按钮,出现如图4.23所示的结果。

  【参见光盘文件】:/第4章/4.4/444.sql。

  带some的嵌套查询与any的步骤相同。

  (1)子查询,执行“select sal from scott.emp where job='MANAGER'”,其结果如图4.22所示。

  (2)父查询执行下列语句。

  • 相关标签:
  • 版权归原作者所有,如果有侵犯到您的权益,请联系本站删除!
  • 相关文章


    • 暂无相关信息

    专题推荐

    今日头条
  • 学习Python的正确姿势 学习Python的正确姿势
  • Google Chrome 58.0.3029.96 正式版发布 Google Chrome 58.0.3029.96 正式版发布
  • Docker公司更换 CEO,将着重发力商业变现 Docker公司更换 CEO,将着重发力商业变现
  • 优酷播放器 一款无优酷LOGO的精美优酷播放器代码 优酷播放器 一款无优酷LOGO的精美优酷播放器代码
  • 热门标签