几个oracle练习题

--1.查询哪个部门的平均工资是最高的,列出部门编码、平均工资。  
select deptno,avg(sal) from emp group by deptno having avg(sal)=(select max(avg(sal)) from emp group by deptno);
--2.列出各个部门中工资最高的员工的信息:名字、部门号、工资。  
select emp.ename,emp.deptno,emp.sal
from emp,(select deptno t_dept,max(sal) t_maxsal from emp group by deptno) tab1
where emp.deptno=tab1.t_dept and emp.sal=tab1.t_maxsal;
--3.查询上级是“KING”的员工姓名(ename)和工资(sal)。  
select ename,sal from emp where mgr=(select empno from emp where ename=‘KING‘);
--4.查询部门所在地(loc)为“NEW YORK”的部门的员工的姓名(ename),部门名称(dname)和岗位名称(job)
select ename,deptno,job from emp where deptno=(select deptno from dept where loc=‘NEW YORK‘);
--5.查询工资比公司平均工资高的所有员工的员工号(empno), 姓名(ename)和工资(sal)。
select empno,ename,sal from emp where sal>(select avg(sal) from emp);
--6.查询姓名中包含字母“u”的员工在相同部门的员工的员工号(empno)和姓名(ename)。
select empno,ename from emp where deptno=(select deptno from emp where ename like ‘%U%‘);
--7.查询哪些员工的薪水比本部门的平均薪水低。  
select emp.*
from emp,(select deptno,avg(sal) avg_sal from emp group by deptno) tab
where emp.deptno=tab.deptno and emp.sal<tab.avg_sal;
--8.查询emp表前5条记录
select * from (select emp.*,rownum rn from emp ) tab1 where tab1.rn<=5;
--9.查询第3-5条记录,无需排序
select * from (select emp.*,rownum rn from emp ) tab1 where tab1.rn between 3 and 5;
--10.查询公司工资最高的三个人
select * from (
select tab1.*,rownum rn from (select emp.* from emp order by sal desc)tab1)tab2 where tab2.rn<=3;
--11.查询公司工资最低的五个人
select * from (
select tab1.*,rownum rn from (select emp.* from emp order by sal asc)tab1)tab2 where tab2.rn<=5;

原文地址:https://www.cnblogs.com/AlohaBill/p/8684884.html

时间: 2024-10-10 22:44:50

几个oracle练习题的相关文章

Oracle练习题

刚学了Oracle数据库的SQL,DDL,DML,DCL等语句,然后在网上搜到的一套题,但是,这套题的答案有些和我理解的题目需求不同,这里的答案是我自己根据自己理解的需求写出来的,欢迎各位看客指点不足. --------------------------------------------------------------------------------------------------------- -----建表 1 create table student( 2 sno varc

Oracle 练习题

1. 查询Student表中的所有记录的Sname.Ssex和Class列. 2. 查询教师所有的单位即不重复的Depart列. 3. 查询Student表的所有记录. 4. 查询Score表中成绩在60到80之间的所有记录. 5. 查询Score表中成绩为85,86或88的记录. 6. 查询Student表中“95031”班或性别为“女”的同学记录. 7. 以Class降序查询Student表的所有记录. 8. 以Cno升序.Degree降序查询Score表的所有记录. 9. 查询“95031

oracle练习题--来自芝加哥的有钱人

题目:从 scott 用户的 emp/dept 表中,找到"来自芝加哥最有钱的那个人". 思路: 1.这个人来自芝加哥 2.这个人是最有钱的,而且是芝加哥最有钱的 分两步查询: 1.找出所有来自芝加哥的人 2.从来自芝加哥的人中找到最有钱的那个 :1.打开运行界面:window键+R-->输入cmd :2.通过sqlplus查询工具查询scott系统数据库:C:\Users\Admin>sqlplus scott/zhang1622505426  --sqlplus  数据

另一套Oracle SQL练习题

题干: 1 create table student( 2 sno varchar2(10) primary key, 3 sname varchar2(20), 4 sage number(2), 5 ssex varchar2(5) 6 ); 7 create table teacher( 8 tno varchar2(10) primary key, 9 tname varchar2(20) 10 ); 11 create table course( 12 cno varchar2(10)

Oracle SQL部分练习题

SQL练习题 注:查询列表不建议用 “*” 1.列出至少有一个雇员的所有部门: a. select * from dept where deptno in(select distinct deptno from emp); b. (oracle11gCBO 新特性 in(多个值)会智能过滤掉重复字段,通过执行计划验证): select * from dept where deptno in (select deptno from emp group by deptno having count(

Oracle数据库面试练习题

1.列出至少有一个员工的所有部门.分析:每个部门有多少员工  —— 根据部门编号进行分组select deptno,count(*) from emp group by deptno having count(*) >= 1; 2.列出薪金比“SMITH”多的所有员工.分析:先查询出SMITH工资  : select sal from emp where ename=’SMITH';select * from emp where sal > (select sal from emp where

oracle中 SQL语句 经典练习题

 创建 student 表 创建score表 创建teacher表 创建grade表 --1. 查询Student表中的所有记录的Sname.Ssex和Class列. SELECT s.sname, s.ssex, s.class FROM student s --2. 查询教师所有的单位即不重复的Depart列. SELECT DISTINCT depart FROM teacher --3. 查询Student表的所有记录. SELECT * FROM student --4. 查询Scor

oracle强化练习题

编写简单的查询语句 1.显示部门表的全部信息 Select * from dept; 2.显示部门号码,部门名称 Selectdeptno,dname from dept; 3.显示以下字段及字符串的连接:员工名 ,"  1个月的工资为:  " ,工资   .如:Amy 1个月的工资为:8000 Select ename||'一个月的工资为:'|| sal fromemp; 4.显示员工姓名,参加工作时间,工作 Selectename,hiredate,job from emp; 5.

oracle复杂查询的练习题

练习一.列出薪金高于在部门30工作的所有员工的薪金的员工的姓名.薪金.部门名称.部门人数 思考步骤: 1.确定需要使用的数据表 一.emp:员工的姓名.薪金 二.dept : 部门表:部门名称 三.emp: 部门人数:需要使用统计字段 2.确定已知的关联字段 关联字段:emp.deptno=dept.deptno 1.查询出部门30工作的所有员工的薪金 select sal from emp where deptno=30;   ---查询出来的数据为多行单列数据,需要大于这里面的所有数据,需要