以下习题都已Oracle数据库中默认表为主体

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

SELECT DISTINCT D.DNAME FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO;

SELECT * FROM DEPT WHERE DEPTNO IN(SELECT DISTINCT DEPTNO FROM EMP);

SELECT DISTINCT D.DNAME FROM EMP E JOIN DEPT D USING(DEPTNO);

2、列出薪金比“SMITH”多的所有员工。(大于最大薪水SMITH员工)

SELECT ENAME FROM EMP WHERE SAL>(SELECT SAL FROM EMP WHERE ENAME ='SMITH');

3、列出所有员工的姓名及其直接上级的姓名。
SELECT E.ENAME,M.ENAME FROM EMP E,EMP M WHERE E.MGR=M.EMPNO;

SELECT E.ENAME,M.ENAME FROM EMP E JOIN EMP M ON(E.MGR=M.EMPNO);

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

SELECT E.ENAME FROM EMP E,EMP M WHERE E.MGR=M.EMPNO AND E.HIREDATE<M.HIREDATE;
SELECT E.ENAME FROM EMP E JOIN EMP M ON(E.MGR=M.EMPNO AND E.HIREDATE<M.HIREDATE);

5、列出部门名称和这些部门的员工信息,包括那些没有员工的部门。

SELECT D.DNAME,E.ENAME FROM EMP E FULL OUTER JOIN DEPT D USING(DEPTNO);

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

SELECT E.ENAME,D.DNAME FROM EMP E FULL OUTER JOIN DEPT D USING(DEPTNO) WHERE JOB='CLERK';

SELECT E.ENAME,D.DNAME FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO AND JOB ='CLERK';

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

SELECT JOB,MIN(SAL) FROM EMP GROUP BY JOB HAVING MIN(SAL)>1500;

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

SELECT * FROM EMP E JOIN DEPT D USING (DEPTNO) WHERE D.DNAME='SALES';

9、列出薪金高于公司平均薪金的所有员工。
SELECT ENAME,SAL FROM EMP WHERE SAL>(SELECT AVG(SAL) FROM EMP);

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

SELECT JOB FROM EMP WHERE ENAME='SOCTT';

SELECT ENAME FROM EMP WHERE ENAME<>'SCOTT'AND JOB=(SELECT JOB FROM EMP WHERE ENAME='SCOTT');

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

SELECT ENAME,SAL FROM EMP WHERE SAL IN (SELECT SAL FROM EMP WHERE DEPTNO=30)AND DEPTNO<>30;

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

SELECT ENAME,SAL FROM EMP WHERE SAL>ALL(SELECT SAL FROM EMP WHERE DEPTNO=30);

13、列出在每个部门工作的员工数量、平均工资和平均服务期限。
SELECT D.DNAME,COUNT(E.ENAME),AVG(SAL),AVG(MONTHS_BETWEEN(SYSDATE,HIREDATE)/12)FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO GROUP BY D.DNAME;

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

SELECT E.ENAME,D.DNAME,SAL FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO;

15、列出从事同一种工作但属于不同部门的员工的一种组合。

select distinct M.ename from emp e,emp m where e.job=m.job and e.deptno<>m.deptno;

16、列出所有部门的详细信息和部门人数。

SELECT d.DNAME,COUNT(E.ENAME) FROM EMP E ,DEPT D WHERE E.DEPTNO=D.DEPTNO GROUP BY D.DNAME;

17、列出各种工作的最低工资。
SELECT JOB,MIN(SAL) FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO GROUP BY E.JOB;

SELECT JOB,MIN(SAL) FROM EMP E JOIN DEPT D ON(E.DEPTNO=D.DEPTNO) GROUP BY E.JOB;

18、列出各个部门的MANAGER(经理)的最低薪金(job为MANAGER)。

SELECT DEPTNO,MIN(SAL) FROM EMP WHERE JOB='MANAGER'GROUP BY DEPTNO;

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

SELECT ENAME,(SAL*12+nvl(comm,0)*12)年薪 FROM EMP ORDER BY 年薪;

SELECT ENAME,(SAL*12+nvl(comm,0)*12)年薪 FROM EMP ORDER BY 1;

Oracle数据库习题的更多相关文章

  1. Oracle数据库——触发器的创建与应用

    一.涉及内容 1.理解触发器的概念.作用和类型. 2.练习触发器的创建和使用. 二.具体操作 (实验) 1.利用触发器对在scott.emp表上执行的DML操作进行安全性检查,只有scott用户登录数 ...

  2. Oracle数据库——SQL高级查询

    一.涉及内容 1.掌握SELECT语句的多表连接查询. 2.掌握SELECT语句的子查询. 二.具体操作 (一)根据Oracle数据库scott方案下的emp表和dept表,完成下列操作: 1.查询所 ...

  3. oracle数据库查询全系整理

    oracle数据库方面的知识到今天已经整理了12篇.当然,这不是终点,这只是一个开始,希望我写的文章可以帮助更多初学数据库的童鞋快速上手,如果你觉得文章对你有帮助,那么恭喜你已经入门了,数据库里面的知 ...

  4. Oracle数据库 —— DML完结

    时间:2016-8-18 01:17 ----------------------------------------------------------------------------停下休息的 ...

  5. 使用Zabbix监控Oracle数据库

    Orabbix介绍 监控Oracle数据库我们需要安装第三方提供的Zabbix插件,我们先测试比较有名的Orabbix,http://www.smartmarmot.com/product/orabb ...

  6. Oracle 数据库知识汇总篇

    Oracle 数据库知识汇总篇(更新中..) 1.安装部署篇 2.管理维护篇 3.数据迁移篇 4.故障处理篇 5.性能调优篇 6.SQL PL/SQL篇 7.考试认证篇 8.原理体系篇 9.架构设计篇 ...

  7. Oracle数据库该如何着手优化一个SQL

    这是个终极问题,因为优化本身的复杂性实在是难以总结的,很多时候优化的方法并不是用到了什么高深莫测的技术,而只是一个思想意识层面的差异,而这些都很可能连带导致性能表现上的巨大差异. 所以有时候我们应该先 ...

  8. Oracle 数据库语句大全

    Oracle数据库语句大全 ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CH ...

  9. Oracle数据库升级(10.2.0.4->11.2.0.4)

    环境: RHEL5.4 + Oracle 10.2.0.4 目的: 在本机将数据库升级到11.2.0.4 之前总结的Oracle数据库异机升级:http://www.cnblogs.com/jyzha ...

随机推荐

  1. 嵌入资源的方式让Winform使用系统没有的字体,无需安装字体

    原文: How to embed a True Type font http://bobpowell.net/embedfonts.aspx 测试项目下载: http://files.cnblogs. ...

  2. [问题2014A08] 复旦高等代数 I(14级)每周一题(第十教学周)

    [问题2014A08]  设 \(A=(a_{ij})\) 为数域 \(\mathbb{K}\) 上的 \(n\) 阶方阵, 定义函数 \[f(A)=\sum_{i,j=1}^na_{ij}^2.\] ...

  3. [问题2014S14] 复旦高等代数II(13级)每周一题(第十四教学周)

    [问题2014S14]  设 \(V\) 为酉空间, 证明: 不存在 \(V\) 上的非零线性变换 \(\varphi\), 使得对 \(V\) 中任一向量 \(v\) 均有 \[(\varphi(v ...

  4. Oracle简单的函数语言

    函数:这里的函数相当于java中写好的一些方法,有名字,可以传递参数,实现某一项具体功能. 函数分为: 1.单行函数 1.字符函数 2.日期函数 3.数字函数 4.转换函数 2.分组函数(后面的章节再 ...

  5. HDU-4529 郑厂长系列故事——N骑士问题 状态压缩DP

    题意:给定一个合法的八皇后棋盘,现在给定1-10个骑士,问这些骑士不能够相互攻击的拜访方式有多少种. 分析:一开始想着搜索写,发现该题和八皇后不同,八皇后每一行只能够摆放一个棋子,因此搜索收敛的很快, ...

  6. epoll的内部实现 & 百万级别句柄监听 & lt和et模式非常好的解释

    epoll是Linux高效网络的基础,比如event poll(例如nodejs),是使用libev,而libev的底层就是epoll(只不过不同的平台可能用epoll,可能用kqueue). epo ...

  7. google protobuf ios开发使用

    简介: protobuf 即 google protocol buffer 是一种数据封装格式协议: 比如其他经常用的xml,json等格式:protobuf的优势是效率高,同样的一份数据使用prot ...

  8. 在centos6.5中安装github的客户端git

    简介 git是一个分布式版本控制软件,我采用的采用的安装方式是源码安装 1.安装编译git时需要的包 # yum install curl-devel expat-devel gettext-deve ...

  9. 第一个Android程序

    MainActivity.java package com.example.crystalball; import android.support.v4.app.Fragment; import an ...

  10. guava--Joiner、Splitter、MapJoinner、MapSplitter

    Joiner: List<String> stringList = new ArrayList<String>(); stringList.add("aa" ...