软件世界网 购物 网址 三丰软件 | 小说 美女秀 图库大全 游戏 笑话 | 下载 开发知识库 新闻 开发 图片素材
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
移动开发 架构设计 编程语言 Web前端 互联网
开发杂谈 系统运维 研发管理 数据库 云计算 Android开发资料
  软件世界网 -> 数据库 -> OracleSQL经典查询练手第三篇 -> 正文阅读

[数据库]OracleSQL经典查询练手第三篇


Oracle SQL 经典查询练手第三篇
本文分享的是Oracle SQL的经典查询第三篇,仅仅是作者自己的见解,如有问题,希望您给出建议或者方法。同时,欢迎广大读者们补充,如果您有经典的查询方式也可以拿出来我们共同分享,共同成长,共同进步。

本计算机上使用的是Oracle 11.2.0版本,使用scott用户登陆。使用的是系统自带的表。
表结构:
describe employees;
[img]http://img.blog.csdn.net/20160330105331545?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

describe departments;
[img]http://img.blog.csdn.net/20160330105336748?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

describe locations;
[img]http://img.blog.csdn.net/20160330105340717?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

select *from employees;(由于空间限制,此表的行和列都没有截取全部,一共107行,11列)
[img]http://img.blog.csdn.net/20160330105347701?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

select *from departments;(由于空间限制,此表的列截取了全部,行没有截取全部,一共27行)
[img]http://img.blog.csdn.net/20160330105352685?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

select *from locations;
[img]http://img.blog.csdn.net/20160330105357670?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

由于空间限制,此表的行和列都没有截取全部,一共23行,6列)
----hr用户----
1.让SELECTTO_CHAR(SALARY,'L99,999.99') FROM HR.EMPLOYEES WHERE  ROWNUM < 5 输出结果的货币单位是¥和$。
2.列出前五位每个员工的名字,工资、涨薪后的的工资(涨幅为8%),以“元”为单位进行四舍五入。
3.找出谁是最高领导,将名字按大写形式显示。
4. 找出First_Name 为David,Last_Name为Austin 的直接领导名字。
5. First_Name 为Alexander,Last_Name为Hunold领导谁。(谁向David 报告)。
6. 哪些员工的工资高于他直接上司的工资,列出员工的名字和工资,上司的名字和工资。
7. 哪些员工和Chen(LAST_NAME)同部门。
8. 哪些员工跟De Haan(LAST_NAME)做一样职位。
9. 哪些员工跟Hall(LAST_NAME)不在同一个部门。
10. 哪些员工跟William(FIRST_NAME)、Smith(LAST_NAME)做不一样的职位。
11. 显示有提成的员工的信息:名字、提成、所在部门名称、所在地区的名称。
12. 显示Executive部门有哪些职位。
13. 整个公司中,最高工资和最低工资相差多少。
14. 提成大于0 的人数。
15. 显示整个公司的最高工资、最低工资、工资总和、平均工资保留到整数位。
16. 整个公司有多少个领导。
17. 列出在同一部门入职日期晚但工资高于其他同事的员工:名字、工资、入职日期。
--1.让SELECTTO_CHAR(SALARY,'L99,999.99') FROM HR.EMPLOYEES WHERE  ROWNUM < 5 输出结果的货币单位是¥和$。
SELECT TO_CHAR(SALARY,'L99,999.99')FROM EMPLOYEES WHERE ROWNUM<5;
[img]http://img.blog.csdn.net/20160330105401436?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

SELECT TO_CHAR(SALARY,'$99,999.99')FROM EMPLOYEES WHERE ROWNUM<5;
[img]http://img.blog.csdn.net/20160330105405186?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

-- 说明:对于'$99,999.99'格式符: 
--    L:表示强制显示当地货币符号 
--    $:表示显示美元符号 
--    9:表示一个数字 
--    0:表示强制0显示 
--    .:表示一个小数点 
--    ,:表示一个千位分隔符 
--2.列出前五位每个员工的名字,工资、涨薪后的的工资(涨幅为8%),以“元”为单位进行四舍五入。
(第一种)select first_name,salary,round(salary*1.08) sal from employees where rownum<6;
(第二种)select *from(select first_name,salary,round(salary*1.08) sal from employees order by salarydesc)whererownum<6;
[img]http://img.blog.csdn.net/20160330105414545?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

(说明:可能是由于Oracle版本的问题或者是我使用的工具的问题,我的解答可能和别的博客的解答不一样,读者们可以根据自己的实际情况选取,我选用的是第二种)
--3.找出谁是最高领导,将名字按大写形式显示。
select upper(first_name||' '||last_name)namefrom employees where manager_idis null;
[img]http://img.blog.csdn.net/20160330105419842?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

--4.找出First_Name 为David,Last_Name为Austin 的直接领导名字。
select first_name,last_name from employeeswhere employee_id=(select manager_id from employeeswhere first_name='David'and last_name='Austin');
[img]http://img.blog.csdn.net/20160330105433233?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

--5.First_Name 为Alexander,Last_Name为Hunold领导谁。(谁向David 报告)。
select upper(first_name||' '||last_namename from employees where manager_idin(select employee_id from employeeswhere first_name='Alexander'and last_name='Hunold');
[img]http://img.blog.csdn.net/20160330105437108?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

--6.哪些员工的工资高于他直接上司的工资,列出员工的名字和工资,上司的名字和工资。
select e1.first_name,e1.salary,e2.first_name,e2.salary from employees e1,employees e2 where e1.manager_id=e2.employee_id and e1.salary>e2.salary;
[img]http://img.blog.csdn.net/20160330105441186?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

--7.哪些员工和Chen(LAST_NAME)同部门。
select * from employeeswhere department_id=(select department_id from employeeswhere last_name='Chen');(由于空间限制,截图不完全,共6行,11列)
[img]http://img.blog.csdn.net/20160330105445983?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

--8.哪些员工跟De Haan(LAST_NAME)做一样职位。
select *from employeeswhere job_id=(select job_id from employeeswhere last_name='De Haan')and last_name<>'DeHaan';(由于空间限制,截图不完全,共1行,11列)
[img]http://img.blog.csdn.net/20160330105450561?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

--9.哪些员工跟Hall(LAST_NAME)不在同一个部门。
select *from employeeswhere department_id<>(select department_id from employeeswhere last_name='Hall');(由于空间限制,截图不完全,共72行,11列)
 [img]http://img.blog.csdn.net/20160330105457889?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
--10.哪些员工跟William(FIRST_NAME)、Smith(LAST_NAME)做不一样的职位。
select *from employeeswhere job_id<>(select job_id from employeeswhere first_name='William' and last_name='Smith');(由于空间限制,截图不完全,共77行,11列)
[img]http://img.blog.csdn.net/20160330105503030?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

--11.显示有提成的员工的信息:名字、提成、所在部门名称、所在地区的名称。
select e.first_name,e.last_name,e.commission_pct,d.department_name,l.city from employees e,departments d,locations l where e.department_id=d.department_id and d.location_id=l.location_id
and e.commission_pct isnotnull;(由于空间限制,截图不完全,共34行,5列)
 [img]http://img.blog.csdn.net/20160330105508499?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
--12.显示Executive部门有哪些职位。
select job_id from employees e,departments d where e.department_id=d.department_id and d.department_name='Executive';
[img]http://img.blog.csdn.net/20160330105512937?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

--13.整个公司中,最高工资和最低工资相差多少。
select max(salary)-min(salaryfrom employees;
[img]http://img.blog.csdn.net/20160330105522765?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

--14.提成大于0 的人数。
select count(*)from employeeswhere commission_pct>0;
[img]http://img.blog.csdn.net/20160330105528578?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

--15.显示整个公司的最高工资、最低工资、工资总和、平均工资保留到整数位。
select max(nvl(salary,0))as highestsal,min(nvl(salary,0))as lowestsal,sum(nvl(salary,0))as sumsal,round(avg(nvl(salary,0)))as avgsal from employees;
[img]http://img.blog.csdn.net/20160330105541860?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
--16.整个公司有多少个领导。
select count(distinct(manager_id)) allLeaders from employees where manager_id isnotnull;
[img]http://img.blog.csdn.net/20160330105547061?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

--17.列出在同一部门入职日期晚但工资高于其他同事的员工:名字、工资、入职日期。
select distinct e1.first_name||' '||e1.last_name,e1.salary,e1.hire_date from employees e1,employees e2 where e1.department_id=e2.department_id and e1.hire_date> e2.hire_dateand e1.salary>e2.salary;( 由于空间限制,截图不完全,共65行,3列)
[img]http://img.blog.csdn.net/20160330105551438?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center



作者水平有限,难免有错误之处,殷切希望广大读者批评指正。

转载请注明出处:http://blog.csdn.net/gcw1024
......显示全文...
    点击查看全文


上一篇文章      下一篇文章      查看所有文章
2016-04-01 16:56:17  
数据库 最新文章
Python&MySQL&PyQt
最新用python来操作mysql完全解析
mongodb的安装详解
1.PDO简介
《MySQL必知必会学习笔记》:高级联结
【翻译自mos文章】怎么对Microsoft(Office)
MyCAT全局表描述及示例
ocp
关于SQL数据表存储过程表名前缀换成dbo代码
数据库调优教程(二)慢查询数据准备
360图书馆 软件开发资料 文字转语音 购物精选 软件下载 美食菜谱 新闻资讯 电影视频 小游戏 Chinese Culture
生肖星座 三丰软件 视频 开发 Android开发 站长 古典小说 网文精选 搜图网 美图 中国文化英文版 多播 租车 短信
2017-7-24 10:35:41
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  软件世界网 --