软件世界网 购物 网址 三丰软件 | 小说 美女秀 图库大全 游戏 笑话 | 下载 开发知识库 新闻 开发 图片素材
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
移动开发 架构设计 编程语言 Web前端 互联网
开发杂谈 系统运维 研发管理 数据库 云计算 Android开发资料
  软件世界网 -> 数据库 -> OracleSQL经典查询练手第三篇 -> 正文阅读
数据库 最新文章
Python&MySQL&PyQt
最新用python来操作mysql完全解析
mongodb的安装详解
1.PDO简介
《MySQL必知必会学习笔记》:高级联结
【翻译自mos文章】怎么对Microsoft(Office)
MyCAT全局表描述及示例
ocp
关于SQL数据表存储过程表名前缀换成dbo代码
数据库调优教程(二)慢查询数据准备

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

  2016-04-01 16:57:01

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

本计算机上使用的是Oracle 11.2.0版本,使用scott用户登陆。使用的是系统自带的表。
表结构:
describe employees;


describe departments;


describe locations;


select *from employees;(由于空间限制,此表的行和列都没有截取全部,一共107行,11列)


select *from departments;(由于空间限制,此表的列截取了全部,行没有截取全部,一共27行)


select *from locations;


由于空间限制,此表的行和列都没有截取全部,一共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;


SELECT TO_CHAR(SALARY,'$99,999.99')FROM EMPLOYEES WHERE ROWNUM<5;


-- 说明:对于'$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;


(说明:可能是由于Oracle版本的问题或者是我使用的工具的问题,我的解答可能和别的博客的解答不一样,读者们可以根据自己的实际情况选取,我选用的是第二种)
--3.找出谁是最高领导,将名字按大写形式显示。
select upper(first_name||' '||last_name)namefrom employees where manager_idis null;


--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');


--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');


--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;


--7.哪些员工和Chen(LAST_NAME)同部门。
select * from employeeswhere department_id=(select department_id from employeeswhere last_name='Chen');(由于空间限制,截图不完全,共6行,11列)


--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列)


--9.哪些员工跟Hall(LAST_NAME)不在同一个部门。
select *from employeeswhere department_id<>(select department_id from employeeswhere last_name='Hall');(由于空间限制,截图不完全,共72行,11列)
 

--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列)


--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列)
 

--12.显示Executive部门有哪些职位。
select job_id from employees e,departments d where e.department_id=d.department_id and d.department_name='Executive';


--13.整个公司中,最高工资和最低工资相差多少。
select max(salary)-min(salaryfrom employees;


--14.提成大于0 的人数。
select count(*)from employeeswhere commission_pct>0;


--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;

--16.整个公司有多少个领导。
select count(distinct(manager_id)) allLeaders from employees where manager_id isnotnull;


--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列)




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

转载请注明出处:http://blog.csdn.net/gcw1024
上一篇文章      下一篇文章      查看所有文章
2016-04-01 16:56:17  
360图书馆 论文大全 母婴/育儿 软件开发资料 网页快照 文字转语音 购物精选 软件 美食菜谱 新闻中心 电影下载 小游戏 Chinese Culture
生肖星座解梦 三沣玩客 拍拍 视频 开发 Android开发 站长 古典小说 网文精选 搜图网 天下美图 中国文化英文 多播视频 装修知识库
2017-1-18 20:02:10
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  软件世界网 --