--01 按以下格式显示下面的信息,条件是工资大于1500的。
-- 部门名称 姓名 工资
select dname,ename,sal
from dept,emp
where dept.deptno = emp.deptno and sal > 1500
--2 按以下格式显示下面信息,条件是此人工资在所有人中最高。
-- 部门 姓名 工资
select dname,ename,sal
from dept,emp
where dept.deptno = emp.deptno
and emp.sal = (select max(sal) from emp)
--3 按以下格式显示下面信息
-- 某人 为 某人 工作
select e.ename || '为' || m.ename || '工作' as 描述
from emp e,emp m
where e.mgr = m.empno
--4 为所有人长工资,标准是:10部门长10%;20部门长15%;
-- 30部门长20%其他部门长18%(要求用DECODE函数)
select ename,deptno,sal,sal*(1+nvl(decode(deptno,10,0.1,20,0.15,30,0.2),0.18)) as newsal
from emp
--5
--根据工作年限长工资,标准是:为公司工作了几个月就长几个百分点。
select ename,hiredate,sal,sal*(1+round(months_between(sysdate,hiredate)/100.0)) as newsal
from emp
--6 查询出king所在部门的部门号\部门名称\部门人数
--ex1
select d.deptno,d.dname,count(*)
from dept d,emp e,emp m
where d.deptno = e.deptno
and e.deptno = m.deptno
and m.ename = 'KING'
group by d.deptno,d.dname
--ex2
select d.deptno,d.dname,count(*)
from dept d,emp e
where d.deptno = e.deptno
and e.deptno = (select deptno from emp where ename = 'KING')
group by d.deptno,d.dname
--7 查询出king所在部门的工作年限最大的员工名字
select ename,hiredate
from emp
where (deptno,hiredate) in (select deptno ,min(hiredate)
from emp
where deptno in (select deptno
from emp
where ename = 'KING')
group by deptno)
--8 查询出管理员工人数最多的人的名字和他管理的人的名字
with m as
( select empno,ename
from emp
where empno in ( select mgr
from emp
group by mgr
having count(*)>= all ( select count(*)
from emp
group by mgr)
)
)
select ename,'manager' as type from m
union
select e.ename, 'emp' as type from m,emp e where e.mgr = m.empno
--9 查询出工资成本最高的部门的部门号和部门名称
select d.deptno,d.dname
from dept d,emp e
where d.deptno = e.deptno
group by d.deptno,d.dname
having sum(e.sal) >= all (select sum(sal)
from emp
group by deptno)
--10 查询出工资不超过2500的人数最多的部门名称
select d.deptno,d.dname
from dept d,emp e
where d.deptno = e.deptno
and e.sal <= 2500
group by d.deptno,d.dname
having count(*) >= all (select count(*)
from emp
where sal <= 2500
group by deptno)
--11 查询出没有下属员工的人的名字和他的职位
select ename,job
from emp
where empno not in ( select distinct nvl(mgr,0)
from emp)
--12 查询出人数最多的那个部门的部门编号和部门名称
select d.deptno,d.dname
from dept d,emp e
where d.deptno = e.deptno
group by d.deptno,d.dname
having count(*) >= all (select count(*)
from emp
group by deptno)
--13 查询出没有员工的那个部门的部门编号和部门名称(要求用两种方法,其中一种要用集合运算)
--ex1
select deptno,dname
from dept
where deptno not in (select deptno from emp)
--ex2
select deptno,dname
from dept
where not exists
( select deptno deptno
from emp
where dept.deptno = emp.deptno )
--ex3
select deptno,dname
from dept
minus
select d.deptno,d.dname
from dept d ,emp e
where d.deptno = e.deptno
--14 查询出员工名字以A打头的人数最多的部门名称和员工名字
select d.dname,e.ename
from dept d,emp e
where d.deptno = e.deptno
and e.deptno in ( select deptno
from emp
where ename like 'A%'
group by deptno
having count(*) >= all (select count(*)
from emp
where ename like 'A%'
group by deptno)
)
--15 现在公司要给员工增加工龄工资,规则是:30*工作年限,请按以下格式显示下面结果:
-- 部门名称 员工姓名 原工资 增加额度 新工资
select d.dname as 部门名称,e.ename as 员工姓名,e.sal as 原工资,
trunc(months_between(sysdate,hiredate)/12,0) * 30 as 增加额度,
e.sal + trunc(months_between(sysdate,hiredate)/12,0) * 30 as 新工资
from dept d,emp e
where d.deptno = e.deptno
--16 针对DEPT和EMP表,查询出下面格式的结果并要求按部门编号和工资降序排列。
-- 部门名称 员工姓名 工资
select d.dname as 部门名称,e.ename as 员工姓名,
e.sal as 工资
from dept d,emp e
where d.deptno = e.deptno
order by d.deptno ,e.sal desc
--17 针对DEPT和EMP表,查询出下面格式的结果。
-- 部门编号 部门名称 部门工资最小值 部门工资最大值 部门工资平均值 部门工资合计值
select d.deptno as 部门编号,d.dname as 部门名称,
min(e.sal) as 部门工资最小值,
max(e.sal) as 部门工资最大值,
avg(e.sal) as 部门工资平均值,
sum(e.sal) as 部门工资合计值
from dept d,emp e
where d.deptno = e.deptno
group by d.deptno,d.dname
--18 针对DEPT和EMP表,查询出SMITH所在部门的部门名称、部门工资平均值。(要求使用子查询)
select d.deptno,d.dname,avg(e.sal)
from dept d,emp e
where d.deptno = e.deptno
and e.deptno in (select deptno from emp where ename = 'SMITH')
group by d.deptno,d.dname
--19 针对DEPT和EMP表,查询出下面格式的结果。(要求使用外连接,没有员工的部门名也要显示。
-- 员工姓名如果是空值,要求用"不存在"代替;如果工资是空值,要求用0代替。)
-- 部门名称 员工姓名 工资
select d.deptno,nvl(e.ename,'不存在'),nvl(e.sal,0)
from dept d ,emp e
where d.deptno = e.deptno(+)
--20 针对DEPT和EMP表,查询出没有员工的部门号和部门名称(要求用两种方法)
--ex1
select deptno,dname
from dept
where deptno not in (select deptno from emp)
--ex2
select deptno,dname
from dept
where not exists
( select deptno deptno
from emp
where dept.deptno = emp.deptno )
--ex3
select deptno,dname
from dept
minus
select d.deptno,d.dname
from dept d ,emp e
where d.deptno = e.deptno
--21 查询出平均工资最高的部门编号、部门名称和平均工资。
select d.deptno,d.dname,avg(e.sal)
from dept d,emp e
where d.deptno = e.deptno
group by d.deptno,d.dname
having avg(e.sal) >= all ( select avg(sal) from emp group by deptno)
--22 查询出工资高于全体平均工资人数最多的部门编号、部门名称和员工姓名、工资。
select d.deptno,d.dname,e.ename,e.sal
from dept d,emp e
where d.deptno = e.deptno
and d.deptno in ( select deptno
from emp
where sal > (select avg(sal) from emp)
group by deptno
having count(*) >= all ( select count(*)
from emp e
where e.sal > (select avg(sal) from emp)
group by e.deptno
)
)
分享到:
相关推荐
1.在多进程Oracle实例系统中,进程分为用户进程、后台进程和服务进程。 2.标准的SQL语言语句类型可以分为:数据定义语句(DDL)、数据操纵语句(DML)和数据控制语句(DCL)。 3.在需要滤除查询结果中重复的行时,必须...
以下是一些Oracle 10G面试中可能会遇到的经典题目及详细解释: 1. **什么是Oracle数据库?** Oracle数据库是一款关系型数据库管理系统(RDBMS),由甲骨文公司开发,广泛应用于企业级数据存储与管理,支持多种操作...
以下是一些基于题目内容的关键点解析: 1. Oracle默认安装时,账户`SYS`、`SYSTEM`和`SYSMAN`都是解锁的,但`SCOTT`账户通常是锁定的,需要手动解锁才能使用。 2. Oracle数据文件的后缀名为`.DBF`,这是Oracle数据...
根据提供的Oracle经典练习题及其标准答案,我们可以详细分析并总结其中涉及的重要知识点: ### 1. 基本查询:筛选特定条件的数据 - **题目示例**:选择在部门30中员工的所有信息。 - **SQL语句**:`select * from ...
根据给定文件的信息,我们可以梳理出46道经典的Oracle数据库查询题目所涉及的关键知识点,包括基本的表结构设计、数据插入以及复杂的SQL查询语句。下面将详细介绍这些知识点。 ### 表结构设计 #### 学生表...
在题目中提到的SQL查询需求是找出每门课都大于80分的学生姓名。这可以通过子查询或者连接查询来实现。例如,可以先找出所有分数大于80的记录,再通过子查询确保每个学生在所有课程中的分数都满足条件。 ```sql ...
经典的oracle面试题及答案,单表查询,多表关联查询,子查询,常用内置函数使用,多且全.
本资源“oracle经典sql语句练习题和答案”提供了在scott用户下的两个典型表格——emp(员工表)和dept(部门表)的实践操作题目,旨在帮助用户提升SQL技能。 首先,让我们来了解这两个核心表格。`emp`表通常包含...
这个经典题库包含了针对Oracle OCP认证考试的大量练习题目,配合答案及详细讲解,是备考者的重要参考资料。 在Oracle OCP的学习和备考过程中,你需要掌握以下几个关键知识点: 1. **Oracle数据库基础**:了解...
Oracle经典教程是一本深入浅出、全面覆盖Oracle数据库系统的基础教程。这本教材不仅适合初学者,也适合那些希望巩固和提升Oracle技能的专业人士。以下将详细解析其中的关键知识点: 一、Oracle简介 Oracle是全球...
通过不断练习和挑战这些经典查询题目,读者能够逐渐掌握Oracle SQL的精髓,提升自己的数据库管理和查询技能。 以上知识点不仅涵盖了Oracle SQL的基础查询操作,还深入到了高级查询技巧以及数据完整性和优化策略,为...
这份"oracle习题集"提供了丰富的练习题目,涵盖了Oracle的各种关键知识点,包括SQL查询、数据库设计、性能优化、PL/SQL编程以及数据库管理等方面。对于初学者和进阶者来说,都是提升技能的宝贵资源。 首先,习题...
题目包含:1.基本SQL-SELECT语句 2.过滤和排序数据 3.单行函数 4.多表查询 5.分组函数 6.子查询 7.创建和管理表 8.数据处理 9.约束 10.视图 11.数据库对象 12.企业sql笔试题目 等
【标题】"四百道JAVA和ORACLE笔试面试题目...对于每一个文件,如"java经典题目.doc"、"Java题目汇总.doc"、"1oracle类.doc"、"java基础.txt",都应认真研读,理解并尝试解答,以确保对这些知识点有深入的理解和掌握。
oracle 部分面试题 Oracle 部分面试题涵盖了多个方面的知识点,包括数据查询、数据分析、数据处理等。下面是对每个面试题的详细解释和知识点总结: 面试题一(厦门) 题目:找出忘记填写性别的员工 知识点: * ...
以下是对题目中提到的一些关键知识点的详细解释: 1. **冷备份与热备份**:冷备份是在数据库关闭状态下进行的,简单且可靠,适用于非归档模式,但无法实现增量备份或在备份过程中进行数据修改。热备份则在数据库...
"sql自学通,sql练习经典题目"这个资料集,显然是为希望提升SQL技能的人准备的,特别关注Oracle数据库的SQL语句。 Oracle数据库是全球最广泛使用的数据库管理系统之一,尤其在大型企业中应用广泛。它的SQL语法与...