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' 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.求每个学生的平均分 四舍五入,取整 将...高级sql查询练习题
查询练习题
查询综合练习题