Toggle navigation
首页
产品中心
全新RDIF.vNext低代码框架
镇店
.NET C/S开发框架
.NET Web敏捷开发框架
.NET 快速开发框架(全新EasyUI版本)
.NET 代码生成器
.NET WebAPI服务端开发框架
客户案例
付款方式
国思学堂
技术文章
新闻资讯
下载
关于
首页
技术文章
数据库金典
正文
原创
2018-07-13
浏览 (
9203
)
[推荐]ORACLE SQL:经典查询练手第五篇(不懂装懂,永世饭桶!)
本文与大家共同讨论与分享ORACLE SQL的一些常用经典查询,欢迎大家补充,同时你认为有那些经典的也可分享出来。在本文中,对每一个问题,你要是认为有什么更好的解决方法也欢迎你及时提出。交流与分享才能共同进步嘛,感谢! 接上四篇: [[推荐]ORACLE SQL:经典查询练手第一篇](http://www.guosisoft.com/article/detail/80) [[推荐]ORACLE SQL:经典查询练手第二篇](http://www.guosisoft.com/article/detail/66) [[推荐]ORACLE SQL:经典查询练手第三篇](http://www.guosisoft.com/article/detail/65) [[推荐]ORACLE SQL:经典查询练手第四篇](http://www.guosisoft.com/article/detail/178) 本篇数据查询属于复杂业务,难度比较高,请继续努力,通过我为大家设立的这个系列,循序渐进,只要你对每一篇,每一个试题都实践测试,认真练习。我相信你对常用、经典的、复杂的SQL已能熟能生巧,信手拈来! 本文使用ORACLE自带的人力资源(HR)实例数据,本文所用表结构如下:   ER图:  用SQL完成以下问题列表: ``` 1. 哪些部门的人数比90 号部门的人数多。 2. Den(FIRST_NAME)、Raphaely(LAST_NAME)的领导是谁(非关联子查询)。 3. Den(FIRST_NAME)、Raphaely(LAST_NAME) 领导谁(非关联子查询)。 4. Den(FIRST_NAME)、Raphaely(LAST_NAME) 的领导是谁(关联子查询)。 5. Den(FIRST_NAME)、Raphaely(LAST_NAME) 领导谁(关联子查询)。 6. 列出在同一部门共事,入职日期晚但工资高于其他同事的员工:名字、工资、入职日期 (关联子查询)。 7. 哪些员工跟Den(FIRST_NAME)、Raphaely(LAST_NAME)不在同一个部门(非关联子查询)。 8. 哪些员工跟Den(FIRST_NAME)、Raphaely(LAST_NAME)不在同一个部门(关联子查询)。 9. Finance部门有哪些职位(非关联子查询)。 10. Finance部门有哪些职位(关联子查询)。 ``` 各试题解答如下(欢迎大家指出不同的方法或建议!): ``` /*--------1、哪些部门的人数比90号部门的人数多。---------*/ SQL> SELECT DEPARTMENT_ID,COUNT(*) FROM EMPLOYEES GROUP BY DEPARTMENT_ID HAVING COUNT(*) > (SELECT COUNT(*) FROM EMPLOYEES WHERE DEPARTMENT_ID = 90 ); DEPARTMENT_ID COUNT(*) ------------- ---------- 6 45 5 34 6 /*-------2、Den(FIRST_NAME)、Raphaely(LAST_NAME)的 领导是谁(非关联子查询)。---------*/ SQL> SELECT FIRST_NAME || ' ' || LAST_NAME FROM EMPLOYEES WHERE EMPLOYEE_ID = (SELECT MANAGER_ID FROM EMPLOYEES WHERE FIRST_NAME = 'Den' AND LAST_NAME = 'Raphaely' ); FIRST_NAME||''||LAST_NAME ---------------------------------------------- Steven King /*-------3、Den(FIRST_NAME)、Raphaely(LAST_NAME)领导谁(非关联子查询)。---------*/ SQL> SELECT FIRST_NAME || ' ' || LAST_NAME FROM EMPLOYEES WHERE MANAGER_ID IN (SELECT EMPLOYEE_ID FROM EMPLOYEES WHERE FIRST_NAME = 'Den' AND LAST_NAME = 'Raphaely' ); FIRST_NAME||''||LAST_NAME ---------------------------------------------- Alexander Khoo Shelli Baida Sigal Tobias Guy Himuro Karen Colmenares --或者 SQL> SELECT FIRST_NAME || ' ' || LAST_NAME FROM EMPLOYEES WHERE MANAGER_ID = (SELECT EMPLOYEE_ID FROM EMPLOYEES WHERE FIRST_NAME = 'Den' AND LAST_NAME = 'Raphaely' ); FIRST_NAME||''||LAST_NAME ---------------------------------------------- Alexander Khoo Shelli Baida Sigal Tobias Guy Himuro Karen Colmenares /*-------4、Den(FIRST_NAME)、Raphaely(LAST_NAME)的领导是谁(关联子查询)。---------*/ SQL> SELECT FIRST_NAME || ' ' || LAST_NAME FROM EMPLOYEES EMP1 WHERE EXISTS ( SELECT 1 FROM EMPLOYEES EMP2 WHERE FIRST_NAME = 'Den' AND LAST_NAME = 'Raphaely' AND EMP2.MANAGER_ID = EMP1.EMPLOYEE_ID); FIRST_NAME||''||LAST_NAME ---------------------------------------------- Steven King /*-------5、Den(FIRST_NAME)、Raphaely(LAST_NAME)领导谁(关联子查询)。---------*/ SQL> SELECT FIRST_NAME || ' ' || LAST_NAME FROM EMPLOYEES EMP1 WHERE EXISTS ( SELECT 1 FROM EMPLOYEES EMP2 WHERE FIRST_NAME = 'Den' AND LAST_NAME = 'Raphaely' AND EMP2.EMPLOYEE_ID = EMP1.MANAGER_ID); FIRST_NAME||''||LAST_NAME ---------------------------------------------- Alexander Khoo Shelli Baida Sigal Tobias Guy Himuro Karen Colmenares /*-------6、列出在同一部门共事,入职日期晚但工资高于其他同事的员工: 名字、工资、入职日期(关联子查询)。---------*/ SQL> SELECT FIRST_NAME || ' ' || LAST_NAME AS 姓名, SALARY AS 工资,HIRE_DATE AS 入职日期 FROM EMPLOYEES EMP1 WHERE EXISTS ( SELECT 1 FROM EMPLOYEES EMP2 WHERE EMP2.DEPARTMENT_ID = EMP1.DEPARTMENT_ID AND EMP1.HIRE_DATE > EMP2.HIRE_DATE AND EMP1.SALARY > EMP2.SALARY ); 姓名 工资 入职日期 ---------------------------------------------- ---------- ----------- Nancy Greenberg 12000.00 1994-8-17 Jose Manuel Urman 7800.00 1998-3-7 Shelli Baida 2900.00 1997-12-24 Adam Fripp 8200.00 1997-4-10 Matthew Weiss 8000.00 1996-7-18 Jennifer Dilly 3600.00 1997-8-13 Julia Dellinger 3400.00 1998-6-24 Laura Bissot 3300.00 1997-8-20 Kevin Mourgos 5800.00 1999-11-16 Shanta Vollman 6500.00 1997-10-10 Vance Jones 2800.00 1999-3-17 Anthony Cabrio 3000.00 1999-2-7 Girard Geoni 2800.00 2000-2-3 Douglas Grant 2600.00 2000-1-13 Donald OConnell 2600.00 1999-6-21 Randall Perkins 2500.00 1999-12-19 Martha Sullivan 2500.00 1999-6-21 Kevin Feeney 3000.00 1998-5-23 Alana Walsh 3100.00 1998-4-24 Samuel McCain 3200.00 1998-7-1 Timothy Gates 2900.00 1998-7-11 Jean Fleaur 3100.00 1998-2-23 Winston Taylor 3200.00 1998-1-24 Michael Rogers 2900.00 1998-8-26 Britney Everett 3900.00 1997-3-3 Kelly Chung 3800.00 1997-6-14 Alexis Bull 4100.00 1997-2-20 Randall Matos 2600.00 1998-3-15 John Seo 2700.00 1998-2-12 Stephen Stiles 3200.00 1997-10-26 Mozhe Atkinson 2800.00 1997-10-30 Irene Mikkilineni 2700.00 1998-9-28 Julia Nayer 3200.00 1997-7-16 Hazel Philtanker 2200.00 2000-2-6 Ki Gee 2400.00 1999-12-12 Steven Markle 2200.00 2000-3-8 Sarah Bell 4000.00 1996-2-4 Nandita Sarchand 4200.00 1996-1-27 Lisa Ozer 11500.00 1997-3-11 Clara Vishney 10500.00 1997-11-11 Eleni Zlotkey 10500.00 2000-1-29 Gerald Cambrault 11000.00 1999-10-15 Alberto Errazuriz 12000.00 1997-3-10 Tayler Fox 9600.00 1998-1-24 Harrison Bloom 10000.00 1998-3-23 Danielle Greene 9500.00 1999-3-19 Charles Johnson 7211.00 2000-1-4 Mattea Marvins 7200.00 2000-1-24 Ellen Abel 11000.00 1996-5-11 Karen Partners 13500.00 1997-1-5 John Russell 14000.00 1996-10-1 Peter Tucker 10000.00 1997-1-30 David Bernstein 9500.00 1997-3-24 Jonathon Taylor 8600.00 1998-3-24 Alyssa Hutton 8800.00 1997-3-19 Peter Hall 9000.00 1997-8-20 Jack Livingston 8000.00 1998-4-23 Christopher Olsen 8000.00 1998-3-30 Elizabeth Bates 7300.00 1999-3-24 William Smith 7400.00 1999-2-23 Nanette Cambrault 7500.00 1998-12-9 rows selected /*-------7、哪些员工跟Den(FIRST_NAME)、Raphaely(LAST_NAME) 不在同一个部门(非关联子查询)。---------*/ SQL> SELECT FIRST_NAME || ' ' || LAST_NAME FROM EMPLOYEES WHERE DEPARTMENT_ID <> (SELECT DEPARTMENT_ID FROM EMPLOYEES WHERE FIRST_NAME = 'Den' AND LAST_NAME = 'Raphaely' ); FIRST_NAME||''||LAST_NAME ---------------------------------------------- Steven King Neena Kochhar Lex De Haan Alexander Hunold Bruce Ernst David Austin Valli Pataballa --等等 --或者 SQL> SELECT FIRST_NAME || ' ' || LAST_NAME FROM EMPLOYEES WHERE DEPARTMENT_ID NOT IN (SELECT DEPARTMENT_ID FROM EMPLOYEES WHERE FIRST_NAME = 'Den' AND LAST_NAME = 'Raphaely' ); /*-------8、哪些员工跟Den(FIRST_NAME)、Raphaely(LAST_NAME) 不在同一个部门(关联子查询)。---------*/ SQL> SELECT FIRST_NAME || ' ' || LAST_NAME FROM EMPLOYEES EMP1 WHERE NOT EXISTS ( SELECT 1 FROM EMPLOYEES EMP2 WHERE EMP1.DEPARTMENT_ID = EMP2.DEPARTMENT_ID AND EMP2.FIRST_NAME = 'Den' AND EMP2.LAST_NAME = 'Raphaely'); FIRST_NAME||''||LAST_NAME ---------------------------------------------- Kimberely Grant Lex De Haan Neena Kochhar Steven King Pat Fay Michael Hartstein Diana Lorentz Valli Pataballa --等等 /*-------9、Finance部门有哪些职位(非关联子查询)。---------*/ SQL> SELECT DISTINCT JOB_ID FROM EMPLOYEES WHERE DEPARTMENT_ID = ( SELECT DEPARTMENT_ID FROM DEPARTMENTS WHERE DEPARTMENT_NAME = 'Finance'); JOB_ID ---------- FI_ACCOUNT FI_MGR --或者 SQL> SELECT DISTINCT JOB_ID FROM EMPLOYEES WHERE DEPARTMENT_ID IN ( SELECT DEPARTMENT_ID FROM DEPARTMENTS WHERE DEPARTMENT_NAME = 'Finance'); JOB_ID ---------- FI_ACCOUNT FI_MGR /*-------10、Finance部门有哪些职位(关联子查询)。---------*/ SQL> SELECT DISTINCT JOB_ID FROM EMPLOYEES WHERE EXISTS( SELECT 1 FROM DEPARTMENTS WHERE EMPLOYEES.DEPARTMENT_ID = DEPARTMENTS.DEPARTMENT_ID AND DEPARTMENTS.DEPARTMENT_NAME = 'Finance'); JOB_ID ---------- FI_ACCOUNT FI_MGR ``` ----- 一路走来数个年头,感谢RDIF框架的支持者与使用者,大家可以通过下面的地址了解详情。 官方网站:[http://www.guosisoft.com/](http://www.guosisoft.com/) [http://www.rdiframework.net/](http://www.rdiframework.net/) 特别说明,框架相关的技术文章请以官方网站为准,欢迎大家收藏! **国思RDIF低代码快速开发框架**由海南国思软件科技有限公司专业团队长期打造、一直在更新、一直在升级,请放心使用! 欢迎关注国思RDI低代码快速开发框架官方公众微信(微信号:guosisoft),及时了解最新动态。 使用微信扫描二维码立即关注 
正文到此结束
本文标签:
数据库
版权声明:
本站原创文章,由
guosisoft.com
发布,遵循
CC 4.0 by-sa
版权协议,转载请附上原文出处链接和本声明。
上一篇
[强烈推荐]ORACLE SQL:经典查询练手第四篇(不懂装懂,永世饭桶!)
下一篇
Mustache模板技术
热门推荐
{{article.title}}
热门指数:
浏览({{article.lookCount + 5000}})
相关文章
{{article.title}}
该篇文章的评论功能暂时被站长关闭
说给你听
本文目录
文章标签
RDIF.NET
其他
微信开发
.NET
消息交互
.NetCore
项目管理
常用工具
工作流
Web前端
数据库
挨踢业界
随机文章
RDIFramework.NET代码生成器全新V5.1版本发布
windows系统git使用ssh方式和gitee进行同步
国思RDIF.vNext全新低代码快速开发框架平台发布
RDIFramework.NET V3.3 WinForm版新增日程管理功能模块
(推荐)(提供下载)ORACLE常见问题一千问(不怕学不成、就怕心不诚!)
书写高质量JavaScript代码的要义(The Essentials of Writing High Quality JavaScript)翻译
SQLServer中的CTE(Common Table Expression)通用表表达式使用详解
微信公众号开发C#系列-9、多公众号集中管理
RDIFramework.NET CS敏捷开发框架 SOA服务三种访问(直连、WCF、WebAPI)方式
.NET敏捷开发框架-RDIFramework.NET V6.0发布
【长文】带你搞明白Redis
ORACLE常见问题一千问[1至100](不怕学不成、就怕心不诚!)
团队项目开发"编码规范"之七:控件命名规则
史上最全面的SignalR系列教程-4、SignalR 自托管全解(使用Self-Host)-附各终端详细实例
[推荐]ORACLE SQL:经典查询练手第三篇(不懂装懂,永世饭桶!)
ORACLE常见问题一千问[201至300](不怕学不成、就怕心不诚!)
ORACLE常见问题一千问[701至800](不怕学不成、就怕心不诚!)
如何有效创建工作分解结构?
RDIFramework.NET V3.3 Web版角色授权管理新增角色对操作权限项、模块起止生效日期的设置
经典的52条产品交互设计原则
网站信息
文章总数:599 篇
标签总数:8 个
分类总数:8 个
留言数量:1385 条
在线人数:
89
人
运行天数:1321天
最后更新:2023-05-18
QQ:406590790
13005007127