Oracle SQL经典查询练手.docx

上传人:b****1 文档编号:10670064 上传时间:2023-05-27 格式:DOCX 页数:35 大小:99.75KB
下载 相关 举报
Oracle SQL经典查询练手.docx_第1页
第1页 / 共35页
Oracle SQL经典查询练手.docx_第2页
第2页 / 共35页
Oracle SQL经典查询练手.docx_第3页
第3页 / 共35页
Oracle SQL经典查询练手.docx_第4页
第4页 / 共35页
Oracle SQL经典查询练手.docx_第5页
第5页 / 共35页
Oracle SQL经典查询练手.docx_第6页
第6页 / 共35页
Oracle SQL经典查询练手.docx_第7页
第7页 / 共35页
Oracle SQL经典查询练手.docx_第8页
第8页 / 共35页
Oracle SQL经典查询练手.docx_第9页
第9页 / 共35页
Oracle SQL经典查询练手.docx_第10页
第10页 / 共35页
Oracle SQL经典查询练手.docx_第11页
第11页 / 共35页
Oracle SQL经典查询练手.docx_第12页
第12页 / 共35页
Oracle SQL经典查询练手.docx_第13页
第13页 / 共35页
Oracle SQL经典查询练手.docx_第14页
第14页 / 共35页
Oracle SQL经典查询练手.docx_第15页
第15页 / 共35页
Oracle SQL经典查询练手.docx_第16页
第16页 / 共35页
Oracle SQL经典查询练手.docx_第17页
第17页 / 共35页
Oracle SQL经典查询练手.docx_第18页
第18页 / 共35页
Oracle SQL经典查询练手.docx_第19页
第19页 / 共35页
Oracle SQL经典查询练手.docx_第20页
第20页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Oracle SQL经典查询练手.docx

《Oracle SQL经典查询练手.docx》由会员分享,可在线阅读,更多相关《Oracle SQL经典查询练手.docx(35页珍藏版)》请在冰点文库上搜索。

Oracle SQL经典查询练手.docx

OracleSQL经典查询练手

OracleSQL:

经典查询练手第一篇

(1)

2011-06-2109:

14胡勇EricHu'sTechSpace我要评论(9)字号:

T|T

本文与大家共同讨论与分享ORACLESQL的一些常用经典查询,欢迎大家补充,同时你认为有那些经典的也可分享出来。

在本文中,对每一个问题,你要是认为有什么更好的解决方法也欢迎你及时提出。

交流与分享才能共同进步嘛,感谢!

AD:

本文与大家共同讨论与分享ORACLESQL的一些常用经典查询,欢迎大家补充,同时你认为有那些经典的也可分享出来。

在本文中,对每一个问题,你要是认为有什么更好的解决方法也欢迎你及时提出。

交流与分享才能共同进步嘛,感谢!

本文使用的实例表结构与表的数据如下:

scott.emp员工表结构如下:

1.Name     Type         Nullable Default Comments  

2.-------- ------------ -------- ------- --------  

3.EMPNO    NUMBER(4)                       员工号        

4.ENAME    VARCHAR2(10) Y                  员工姓名        

5.JOB      VARCHAR2(9)  Y                  工作        

6.MGR      NUMBER(4)    Y                  上级编号        

7.HIREDATE DATE         Y                  雇佣日期        

8.SAL      NUMBER(7,2)  Y                  薪金        

9.COMM     NUMBER(7,2)  Y                  佣金        

10.DEPTNO   NUMBER

(2)    Y                  部门编号 

scott.dept部门表:

1.Name   Type         Nullable Default Comments  

2.------ ------------ -------- ------- --------  

3.DEPTNO NUMBER

(2)                         部门编号         

4.DNAME  VARCHAR2(14) Y                    部门名称      

5.LOC    VARCHAR2(13) Y                    地点    

提示:

工资=薪金+佣金

scott.emp表的现有数据如下:

1.SQL> select * from emp; 

2.  

3.EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO 

4.----- ---------- --------- ----- ----------- --------- --------- ------ 

5. 7369 SMITH      CLERK      7902 1980-12-17     800.00               20 

6. 7499 ALLEN      SALESMAN   7698 1981-2-20     1600.00    300.00     30 

7. 7521 WARD       SALESMAN   7698 1981-2-22     1250.00    500.00     30 

8. 7566 JONES      MANAGER    7839 1981-4-2      2975.00               20 

9. 7654 MARTIN     SALESMAN   7698 1981-9-28     1250.00   1400.00     30 

10. 7698 BLAKE      MANAGER    7839 1981-5-1      2850.00               30 

11. 7782 CLARK      MANAGER    7839 1981-6-9      2450.00               10 

12. 7788 SCOTT      ANALYST    7566 1987-4-19     4000.00               20 

13. 7839 KING       PRESIDENT       1981-11-17    5000.00               10 

14. 7844 TURNER     SALESMAN   7698 1981-9-8      1500.00      0.00     30 

15. 7876 ADAMS      CLERK      7788 1987-5-23     1100.00               20 

16. 7900 JAMES      CLERK      7698 1981-12-3      950.00               30 

17. 7902 FORD       ANALYST    7566 1981-12-3     3000.00               20 

18. 7934 MILLER     CLERK      7782 1982-1-23     1300.00               10 

19.  102 EricHu     Developer  1455 2011-5-26 1   5500.00     14.00     10 

20.  104 huyong     PM         1455 2011-5-26 1   5500.00     14.00     10 

21.  105 WANGJING   Developer  1455 2011-5-26 1   5500.00     14.00     10 

22.  

23.17 rows selected 

Scott.dept表的现有数据如下:

1.SQL> select * from dept; 

2.  

3.DEPTNO DNAME          LOC 

4.------ -------------- ------------- 

5.    10 ACCOUNTING     NEW YORK 

6.    20 RESEARCH       DALLAS 

7.    30 SALES          CHICAGO 

8.    40 OPERATIONS     BOSTON 

9.    50 50abc          50def 

10.    60 Developer      HaiKou 

11.  

12.6 rows selected 

用SQL完成以下问题列表:

1.列出至少有一个员工的所有部门。

2.列出薪金比“SMITH”多的所有员工。

3.列出所有员工的姓名及其直接上级的姓名。

4.列出受雇日期早于其直接上级的所有员工。

5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门

6.列出所有“CLERK”(办事员)的姓名及其部门名称。

7.列出最低薪金大于1500的各种工作。

8.列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。

9.列出薪金高于公司平均薪金的所有员工。

10.列出与“SCOTT”从事相同工作的所有员工。

11.列出薪金等于部门30中员工的薪金的所有员工的姓名和薪金。

12.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。

13.列出在每个部门工作的员工数量、平均工资和平均服务期限。

14.列出所有员工的姓名、部门名称和工资。

15.列出所有部门的详细信息和部门人数。

16.列出各种工作的最低工资。

17.列出各个部门的MANAGER(经理)的最低薪金。

18.列出所有员工的年工资,按年薪从低到高排序。

OracleSQL:

经典查询练手第一篇

(2)

2011-06-2109:

14胡勇EricHu'sTechSpace我要评论(9)字号:

T|T

本文与大家共同讨论与分享ORACLESQL的一些常用经典查询,欢迎大家补充,同时你认为有那些经典的也可分享出来。

在本文中,对每一个问题,你要是认为有什么更好的解决方法也欢迎你及时提出。

交流与分享才能共同进步嘛,感谢!

AD:

各答案如下,欢迎大家给出不出的解答方式。

1.--------1.列出至少有一个员工的所有部门。

--------- 

2.SQL> select dname from dept where deptno in(select deptno from emp);  

3.DNAME 

4.-------------- 

5.RESEARCH 

6.SALES 

7.ACCOUNTING 

8.--------或-------- 

9.SQL> select dname from dept where deptno in(select deptno from emp group by deptno having count(deptno) >=1);  

10.DNAME 

11.-------------- 

12.ACCOUNTING 

13.RESEARCH 

14.SALES 

1.--------2.列出薪金比“SMITH”多的所有员工。

---------- 

2.SQL> select * from emp where sal > (select sal from emp where ename = 'SMITH'); 

3.  

4.EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO 

5.----- ---------- --------- ----- ----------- --------- --------- ------ 

6. 7499 ALLEN      SALESMAN   7698 1981-2-20     1600.00    300.00     30 

7. 7521 WARD       SALESMAN   7698 1981-2-22     1250.00    500.00     30 

8. 7566 JONES      MANAGER    7839 1981-4-2      2975.00               20 

9. 7654 MARTIN     SALESMAN   7698 1981-9-28     1250.00   1400.00     30 

10. 7698 BLAKE      MANAGER    7839 1981-5-1      2850.00               30 

11. 7782 CLARK      MANAGER    7839 1981-6-9      2450.00               10 

12. 7788 SCOTT      ANALYST    7566 1987-4-19     4000.00               20 

13. 7839 KING       PRESIDENT       1981-11-17    5000.00               10 

14. 7844 TURNER     SALESMAN   7698 1981-9-8      1500.00      0.00     30 

15. 7876 ADAMS      CLERK      7788 1987-5-23     1100.00               20 

16. 7900 JAMES      CLERK      7698 1981-12-3      950.00               30 

17. 7902 FORD       ANALYST    7566 1981-12-3     3000.00               20 

18. 7934 MILLER     CLERK      7782 1982-1-23     1300.00               10 

19.  102 EricHu     Developer  1455 2011-5-26 1   5500.00     14.00     10 

20.  104 huyong     PM         1455 2011-5-26 1   5500.00     14.00     10 

21.  105 WANGJING   Developer  1455 2011-5-26 1   5500.00     14.00     10 

22. 16 rows selected 

1.--------3.列出所有员工的姓名及其直接上级的姓名。

---------- 

2.SQL> select a.ename,(select ename from emp b where b.empno=a.mgr) as boss_name from emp a;  

3.ENAME      BOSS_NAME 

4.---------- ---------- 

5.SMITH      FORD 

6.ALLEN      BLAKE 

7.WARD       BLAKE 

8.JONES      KING 

9.MARTIN     BLAKE 

10.BLAKE      KING 

11.CLARK      KING 

12.SCOTT      JONES 

13.KING        

14.TURNER     BLAKE 

15.ADAMS      SCOTT 

16.JAMES      BLAKE 

17.FORD       JONES 

18.MILLER     CLARK 

19.EricHu      

20.huyong      

21.WANGJING     

22.17 rows selected 

1.--------4.列出受雇日期早于其直接上级的所有员工。

---------- 

2.SQL> select a.ename from emp a where a.hiredate<(select hiredate from emp b where b.empno=a.mgr);  

3.ENAME 

4.---------- 

5.SMITH 

6.ALLEN 

7.WARD 

8.JONES 

9.BLAKE 

10.CLARK  

11.6 rows selected 

12. 

1.--------5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门---------- 

2.SQL> select a.dname,b.empno,b.ename,b.job,b.mgr,b.hiredate,b.sal,b.deptno 

3.  2  from dept a left join emp b on a.deptno=b.deptno; 

4.  

5.DNAME          EMPNO ENAME      JOB         MGR HIREDATE          SAL DEPTNO 

6.-------------- ----- ---------- --------- ----- ----------- --------- ------ 

7.RESEARCH        7369 SMITH      CLERK      7902 1980-12-17     800.00     20 

8.SALES           7499 ALLEN      SALESMAN   7698 1981-2-20     1600.00     30 

9.SALES           7521 WARD       SALESMAN   7698 1981-2-22     1250.00     30 

10.RESEARCH        7566 JONES      MANAGER    7839 1981-4-2      2975.00     20 

11.SALES           7654 MARTIN     SALESMAN   7698 1981-9-28     1250.00     30 

12.SALES           7698 BLAKE      MANAGER    7839 1981-5-1      2850.00     30 

13.ACCOUNTING      7782 CLARK      MANAGER    7839 1981-6-9      2450.00     10 

14.RESEARCH        7788 SCOTT      ANALYST    7566 1987-4-19     4000.00     20 

15.ACCOUNTING      7839 KING       PRESIDENT       1981-11-17    5000.00     10 

16.SALES           7844 TURNER     SALESMAN   7698 1981-9-8      1500.00     30 

17.RESEARCH        7876 ADAMS      CLERK      7788 1987-5-23     1100.00     20 

18.SALES           7900 JAMES      CLERK      7698 1981-12-3      950.00     30 

19.RESEARCH        7902 FORD       ANALYST    7566 1981-12-3     3000.00     20 

20.ACCOUNTING      7934 MILLER     CLERK      7782 1982-1-23     1300.00     10 

21.ACCOUNTING       102 EricHu     Developer  1455 2011-5-26 1   5500.00     10 

22.ACCOUNTING       104 huyong     PM         1455 2011-5-26 1   5500.00     10 

23.ACCOUNTING       105 WANGJING   Developer  1455 2011-5-26 1   5500.00     10 

24.50abc                                                                  

25.OPERATIONS                                                             

26.Developer                                                           

27.  

28.20 rows selected 

OracleSQL:

经典查询练手第一篇(3)

2011-06-2109:

14胡勇EricHu'sTechSpace我要评论(9)字号:

T|T

本文与大家共同讨论与分享ORACLESQL的一些常用经典查询,欢迎大家补充,同时你认为有那些经典的也可分享出来。

在本文中,对每一个问题,你要是认为有什么更好的解决方法也欢迎你及时提出。

交流与分享才能共同进步嘛,感谢!

AD:

1.--------6.列出所有“CLERK”(办事员)的姓名及其部门名称。

---------- 

2.SQL> select a.ename,b.dname from emp a join dept b on a.deptno=b.deptno and a.job='CLERK';  

3.ENAME      DNAME 

4.---------- -------------- 

5.SMITH      RESEARCH 

6.ADAMS      RESEARCH 

7.JAMES      SALES 

8.MILLER     ACCOUNTING 

1.--------7.列出最低薪金大于1500的各种工作。

---------- 

2.SQL> select distinct job as HighSalJob from emp group by job having min(sal)>1500;  

3.HIGHSALJOB 

4.---------- 

5.ANALYST 

6.Developer 

7.MANAGER 

8.PM 

9.PRESIDENT 

1.--------8.列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。

---------- 

2.SQL> select ename from emp where deptno=(select deptno from dept where dname='SALES');  

3.ENAME 

4.---------- 

5.ALLEN 

6.WARD 

7.MARTIN 

8.BLAKE 

9.TURNER 

10.JAMES  

11.6 rows selected 

1.--------9.列出薪金高于公司平均薪金的所有员工。

---------- 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2