当前位置 : 主页 > 手机开发 > ROM >

(十三)子查询

来源:互联网 收集:自由互联 发布时间:2021-06-10
子查询的语法很简单,就是select语句的嵌套使用 SQL select * from emp where sal ( select sal from emp where ename = ‘ SCOTT ‘ ); EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO -- -------- ---------- --------- ---------- --

子查询的语法很简单,就是select语句的嵌套使用

SQL> select * from emp where sal>(select sal from emp where ename=SCOTT);

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
      7839 KING       PRESIDENT            17-11月-81           5000                    10

已用时间:  00: 00: 00.02
SQL>

子查询的语法格式:

select select_list 
from table 
where exper operator
    (select select_list 
    from table);

 

注意:
  1.主查询和子查询可以是不同的表,只要子查询的结果,主查询可以使用就可以

  2.主查询的select, where, having, from 后都可以放置子查询

  3.不可以在group by 后放置子查询语句

  4.强调:在from 后放置的子查询(***) ,from后放置的是一个集合(表,查询的结果)

  5一般先执行子查询(内查询),再执行主查询(外查询),但相关子查询除外.

  6.单行操作符对应单行子查询,多行操作符对应多行子查询

 

主,子查询在不同的表之间进行

查询部门名称是‘SALES’的员工信息

SQL> select * from emp e where e.deptno = (select d.deptno from dept d where d.dname=SALES);

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
      7499 ALLEN      SALESMAN        7698 20-2月 -81           1600        300         30
      7521 WARD       SALESMAN        7698 22-2月 -81           1250        500         30
      7654 MARTIN     SALESMAN        7698 28-9月 -81           1250       1400         30
      7698 BLAKE      MANAGER         7839 01-5月 -81           2850                    30
      7844 TURNER     SALESMAN        7698 08-9月 -81           1500          0         30
      7900 JAMES      CLERK           7698 03-12月-81            950                    30

已选择6行。

已用时间:  00: 00: 00.05
SQL>

使用多表查询

SQL> select e.* from emp e,dept d where e.deptno=d.deptno and d.dname=SALES;

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
      7499 ALLEN      SALESMAN        7698 20-2月 -81           1600        300         30
      7521 WARD       SALESMAN        7698 22-2月 -81           1250        500         30
      7654 MARTIN     SALESMAN        7698 28-9月 -81           1250       1400         30
      7698 BLAKE      MANAGER         7839 01-5月 -81           2850                    30
      7844 TURNER     SALESMAN        7698 08-9月 -81           1500          0         30
      7900 JAMES      CLERK           7698 03-12月-81            950                    30

已选择6行。

已用时间:  00: 00: 00.06
SQL>
上一篇:seaborn库
下一篇:ora-01189故障解决办法
网友评论