Toggle navigation
首页
产品中心
全新RDIF.vNext低代码框架
镇店
.NET C/S开发框架
.NET Web敏捷开发框架
.NET 快速开发框架(全新EasyUI版本)
.NET 代码生成器
.NET WebAPI服务端开发框架
客户案例
付款方式
国思学堂
技术文章
新闻资讯
下载
关于
首页
技术文章
数据库金典
正文
原创
2018-07-13
浏览 (
8639
)
[推荐]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)实例数据,本文所用表结构如下: ![](http://doc.rdiframework.net/blog/article/20180713111346129.png-pw) ![](http://doc.rdiframework.net/blog/article/20180713111400687.png-pw) ER图: ![](http://doc.rdiframework.net/blog/article/20180713111524267.png-pw) 用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),及时了解最新动态。 使用微信扫描二维码立即关注 ![微信扫描二维码](http://doc.rdiframework.net/weixin.png )
正文到此结束
本文标签:
数据库
版权声明:
本站原创文章,由
guosisoft.com
发布,遵循
CC 4.0 by-sa
版权协议,转载请附上原文出处链接和本声明。
上一篇
[强烈推荐]ORACLE SQL:经典查询练手第四篇(不懂装懂,永世饭桶!)
下一篇
Mustache模板技术
热门推荐
{{article.title}}
热门指数:
浏览({{article.lookCount + 5000}})
相关文章
{{article.title}}
该篇文章的评论功能暂时被站长关闭
说给你听
本文目录
文章标签
RDIF.NET
其他
微信开发
.NET
消息交互
.NetCore
项目管理
常用工具
工作流
Web前端
数据库
挨踢业界
随机文章
RDIFramework.NET V3.3 Web版角色授权管理新增角色对操作权限项、模块起止生效日期的设置
史上最全面的SignalR系列教程-4、SignalR 自托管全解(使用Self-Host)-附各终端详细实例
mysql导入大量数据时报MySQL server has gone away错误的解决办法
【长文】带你搞明白Redis
ORACLE常见问题一千问[201至300](不怕学不成、就怕心不诚!)
.Net Core发布到Linux下验证码失效的处理
RDIFramework.NET — 基于.NET的快速信息化系统开发框架 — 系列目录
RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.7 版本发布
ORACLE常见问题一千问[301至400](不怕学不成、就怕心不诚!)
ORACLE常见问题一千问[101至200](不怕学不成、就怕心不诚!)
RDIFramework.NET敏捷开发框架Web新增邮件中心实现便捷式的邮件收发
微软开发者大会:VS 2019 Preview 发布;Windows UX 主要技术开源
ORACLE常见问题一千问[401至500](不怕学不成、就怕心不诚!)
RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件Web业务平台
最好用的.NET敏捷开发框架-RDIFramework.NET V3.6 Ace版全新发布 100%源码授权
企业数字化转型如何做?看过来
(推荐)(提供下载)ORACLE常见问题一千问(不怕学不成、就怕心不诚!)
RDIFramework.NET V3.2->WinForm版本重构岗位授权管理界面更规范、高效与美观
一网打尽,一文讲通虚拟机VirtualBox及Linux使用
信息系统项目管理系列之三:项目管理过程
网站信息
文章总数:599 篇
标签总数:8 个
分类总数:8 个
留言数量:1385 条
在线人数:
89
人
运行天数:1321天
最后更新:2023-05-18
QQ:406590790
13005007127