高级查询练习题三

发布 2021-05-08 19:21:28 阅读 3862

1)找出工资高于公司平均工资的所有员工?

-查看所有信息---先了解大体。

select *from emp;

- 先求出平均工资。

select **g(sal) from emp;

-找出工资高于平均值的。

select * from emp where sal>(select **g(sal) from emp);

2)高于部门30中员工最高工资的其他员工?

- 找出部门30 员工的最高工资。

select max(sal) from emp where deptno = 30';

- 找回高于上边的其他员工信息。

select *from emp where sal>(select max(sal) from emp where deptno = 30');

3)低于部门30中员工工资的其他员工?

- 要找出低于部门为30员工工资的话,要找出部门为30的最低工资。

select min(sal) from emp where deptno = 30';

- 找回低于部门。

select *from emp where sal <(select min(sal) from emp where deptno = 30');

4)找员工姓名和直接上级的名字?

-员工姓名。

select ename from emp;

- 直接上级姓名mgr

select 直接上级姓名 from emp work,emp boss where =

-法二。select ename,(select ename from emp where empno = from emp e;

-显示员工姓名和上级姓名。

select lower( 姓名,lower( 直接上级姓名 from emp work,emp boss where =

5)显示部门名称和人数(

-显示部门名称 lower 小写。

select lower(dname) from dept;

- 显示所有人数。

select count(empno) from emp;

- 显示各个部门的人数。

select count(empno) from emp group by deptno;

- 显示部门名称和人数。

select (select lower(dname) from dept where deptno = 部门名称,count(empno) 部门人数 from emp e group by deptno;

6)显示每个部门的最高工资的员工(

- 在emp表中,显示部门编号。

select deptno,max(sal) from emp group by deptno;

- 部门名称 (select 字段名称 from dept where deptno = 只能查出一个结果。

select (select lower(dname) from dept where deptno = 部门名称,max(sal) 工资最高数 from emp e group by deptno;

- 法二。select max(sal) 工资最高数, from

7)显示每个部门的工资前2名的员工?

select *from emp a where (select count(*)from emp where deptno = and sal>

select 工资状态, count(工资状态)||人' as 人数 from (select

decode(sign(低工资',decode(sign(正常工资',-1,'正常工资',1,decode(sign(高工资',-1,'高工资','老板')

) as 工资状态。

from emp e) group by 工资状态;

使用scott/tiger用户下的emp表和dept表完成下列练习,表的结构说明如下。

emp员工表(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/comm佣金/deptno部门编号)

dept部门表(deptno部门编号/dname部门名称/loc地点)

工资 = 薪金 + 佣金。

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

- 列出部门。

select *from dept;

- 查看员工部门编号。

select deptno from emp;

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

select *from dept where deptno in(select distinct deptno from emp);

-法二。select * from dept where in (select deptno from emp group by deptno);

2.列出薪金比“smith”多的所有员工。

- smith 的薪金。

select sal from emp where ename = smith'

-薪金比“smith”多的所有员工。

select *from emp where sal>(select sal from emp where ename = smith');

3.列出所有员工的姓名及其直接上级的姓名。

- 员工姓名。

select ename from emp ;

- 上级姓名。

select from emp work,emp boss where =

-列出所有员工的姓名及其直接上级的姓名。

select from emp work,emp boss where =

-法二。select ename,(select ename from emp where empno = from emp e;

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

- 查看所有。

select *from emp;

-查看员工的受雇日期 ,并将日期转换为标准形式,select to_char(hiredate,'yyyy-mm-dd') from emp;

- 查看员工的受雇日期大于 1982-01-01

select hiredate from emp where to_char(hiredate,'yyyy-mm-dd') 1982-01-01';

- 员工直接上级的受雇时间。

select from emp work,emp boss where

-列出受雇日期早于其直接上级的所有员工。 注意 : 应该是小于。。。

select from emp work,emp boss

where and to_char(

-法二。select * from emp e where hiredate from emp where = empno);

5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。

select 部门名称,e.* from dept d

left join

select *from emp) e

on = -法二--分开求,这种不好。

select empno, from emp,dept where =

select deptno from (select empno, from emp,dept where = where is null;

6.列出所有“clerk”(办事员)的姓名及其部门名称。

- 列出所有“clerk”(办事员)的姓名。

select from emp e where = clerk'

-列出所有“clerk”(办事员)的姓名及其部门名称。

select lower(dname) from dept where deptno = 所属部门 from emp e where = clerk'

高级sql查询练习题

1 查询 01 课程比 02 课程成绩高的学生的信息及课程分数。2 查询 01 课程比 02 课程成绩低的学生的信息及课程分数。3 查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩。4 查询平均成绩小于60分的同学的学生编号和学生姓名和平均成绩。5 查询所有同学的学生编号 学生姓名 选...

查询练习题

网络数据库 讲稿。简单的单表查询。例1 检索出1983年6月1日之后出生的学生的姓名 性别和民族,并按降序排列。select 姓名,性别,民族 from 学生 where 出生日期 1983 6 1 order by 出生日期 desc 多表查询。在from后跟随多个表。例1 查找出已修学分达到20...

查询综合练习题

1.显示每个学生的每门课的成绩。带有关系的选择查询 2.统计各系的男女教师人数 统计1992年参加工作的男教师人数分别保存为各自命名 自。选名称 的查询结果。带条件 计算的选择查询 3.统计各类职称教师人数,列字段显示 人数 预定义计算,性别分组的选择查询 4.求每个学生的平均分 四舍五入,取整 将...