Oracle SQL:经典查询练手第一篇(1)(2)
各答案如下,欢迎大家给出不出的解答方式。 --------1.列出至少有一个员工的所有部门。--------- SQL select dname from dept where deptno in ( select deptno from emp); DN
各答案如下,欢迎大家给出不出的解答方式。
- --------1.列出至少有一个员工的所有部门。---------
- SQL> select dname from dept where deptno in(select deptno from emp);
- DNAME
- --------------
- RESEARCH
- SALES
- ACCOUNTING
- --------或--------
- SQL> select dname from dept where deptno in(select deptno from emp group by deptno having count(deptno) >=1);
- DNAME
- --------------
- ACCOUNTING
- RESEARCH
- SALES
- --------2.列出薪金比“SMITH”多的所有员工。----------
- SQL> select * from emp where sal > (select sal from emp where ename = 'SMITH');
- EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
- ----- ---------- --------- ----- ----------- --------- --------- ------
- 7499 ALLEN SALESMAN 7698 1981-2-20 1600.00 300.00 30
- 7521 WARD SALESMAN 7698 1981-2-22 1250.00 500.00 30
- 7566 JONES MANAGER 7839 1981-4-2 2975.00 20
- 7654 MARTIN SALESMAN 7698 1981-9-28 1250.00 1400.00 30
- 7698 BLAKE MANAGER 7839 1981-5-1 2850.00 30
- 7782 CLARK MANAGER 7839 1981-6-9 2450.00 10
- 7788 SCOTT ANALYST 7566 1987-4-19 4000.00 20
- 7839 KING PRESIDENT 1981-11-17 5000.00 10
- 7844 TURNER SALESMAN 7698 1981-9-8 1500.00 0.00 30
- 7876 ADAMS CLERK 7788 1987-5-23 1100.00 20
- 7900 JAMES CLERK 7698 1981-12-3 950.00 30
- 7902 FORD ANALYST 7566 1981-12-3 3000.00 20
- 7934 MILLER CLERK 7782 1982-1-23 1300.00 10
- 102 EricHu Developer 1455 2011-5-26 1 5500.00 14.00 10
- 104 huyong PM 1455 2011-5-26 1 5500.00 14.00 10
- 105 WANGJING Developer 1455 2011-5-26 1 5500.00 14.00 10
- 16 rows selected
- --------3.列出所有员工的姓名及其直接上级的姓名。----------
- SQL> select a.ename,(select ename from emp b where b.empno=a.mgr) as boss_name from emp a;
- ENAME BOSS_NAME
- ---------- ----------
- SMITH FORD
- ALLEN BLAKE
- WARD BLAKE
- JONES KING
- MARTIN BLAKE
- BLAKE KING
- CLARK KING
- SCOTT JONES
- KING
- TURNER BLAKE
- ADAMS SCOTT
- JAMES BLAKE
- FORD JONES
- MILLER CLARK
- EricHu
- huyong
- WANGJING
- 17 rows selected
- --------4.列出受雇日期早于其直接上级的所有员工。----------
- SQL> select a.ename from emp a where a.hiredate<(select hiredate from emp b where b.empno=a.mgr);
- ENAME
- ----------
- SMITH
- ALLEN
- WARD
- JONES
- BLAKE
- CLARK
- 6 rows selected
- --------5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门----------
- SQL> select a.dname,b.empno,b.ename,b.job,b.mgr,b.hiredate,b.sal,b.deptno
- 2 from dept a left join emp b on a.deptno=b.deptno;
- DNAME EMPNO ENAME JOB MGR HIREDATE SAL DEPTNO
- -------------- ----- ---------- --------- ----- ----------- --------- ------
- RESEARCH 7369 SMITH CLERK 7902 1980-12-17 800.00 20
- SALES 7499 ALLEN SALESMAN 7698 1981-2-20 1600.00 30
- SALES 7521 WARD SALESMAN 7698 1981-2-22 1250.00 30
- RESEARCH 7566 JONES MANAGER 7839 1981-4-2 2975.00 20
- SALES 7654 MARTIN SALESMAN 7698 1981-9-28 1250.00 30
- SALES 7698 BLAKE MANAGER 7839 1981-5-1 2850.00 30
- ACCOUNTING 7782 CLARK MANAGER 7839 1981-6-9 2450.00 10
- RESEARCH 7788 SCOTT ANALYST 7566 1987-4-19 4000.00 20
- ACCOUNTING 7839 KING PRESIDENT 1981-11-17 5000.00 10
- SALES 7844 TURNER SALESMAN 7698 1981-9-8 1500.00 30
- RESEARCH 7876 ADAMS CLERK 7788 1987-5-23 1100.00 20
- SALES 7900 JAMES CLERK 7698 1981-12-3 950.00 30
- RESEARCH 7902 FORD ANALYST 7566 1981-12-3 3000.00 20
- ACCOUNTING 7934 MILLER CLERK 7782 1982-1-23 1300.00 10
- ACCOUNTING 102 EricHu Developer 1455 2011-5-26 1 5500.00 10
- ACCOUNTING 104 huyong PM 1455 2011-5-26 1 5500.00 10
- ACCOUNTING 105 WANGJING Developer 1455 2011-5-26 1 5500.00 10
- 50abc
- OPERATIONS
- Developer
- 20 rows selected
- 上一篇:Oracle分页小谈
- 下一篇:Oracle SQL:经典查询练手第二篇(1)
精彩图集
精彩文章