一.实验目的
掌握Oracle中的数据查询与操作语句的编写
二.实验内容
根据scott模式下的emp和dept表,完成以下操作。
-
查询10号部门的所有员工信息。
-
查询工种为clerk的员工的员工号,员工名和部门号。
-
查询员工的姓名和入职日期,按入职日期先后排序。
-
查询至少有两个员工的部门信息。
-
查询15号部门中工资排名前8的员工信息。
-
查询部门人数大于10的部门的员工信息。
-
向emp表中插入一条记录,员工名为fan,员工号为8000,其他信息与smith员工的信息相同。
三.实验过程
1.查询10号部门的所有员工信息。
SELECT * from emp where deptno = 10;
![](https://img.haomeiwen.com/i7046760/de31305850be1268.png)
2.查询工种为clerk的员工的员工号,员工名和部门号。
Select EMPNO,ENAME, DEPTNO from emp where job = ‘CLERK’;
![](https://img.haomeiwen.com/i7046760/076c822b123c5a4c.png)
3.查询员工的姓名和入职日期,按入职日期先后排序。
Select ENAME,HIREDATE from emp order by HIREDATE asc;
![](https://img.haomeiwen.com/i7046760/af09380bd04e998d.png)
4.查询至少有两个员工的部门信息。
Select * from emp where deptno in(select deptno from emp group by deptno having count(deptno)>=2);
![](https://img.haomeiwen.com/i7046760/0fd195d445ead65b.png)
5.查询15号部门中工资排名前8的员工信息。(这里没有第15行)
select * from (select row_number() over(partition by deptno order by [sal](https://www.baidu.com/s?wd=sal&tn=SE_PcZhidaonwhc_ngpagmjz&rsv_dl=gh_pc_zhidao) desc) rk,[emp](https://www.baidu.com/s?wd=emp&tn=SE_PcZhidaonwhc_ngpagmjz&rsv_dl=gh_pc_zhidao).* from [emp](https://www.baidu.com/s?wd=emp&tn=SE_PcZhidaonwhc_ngpagmjz&rsv_dl=gh_pc_zhidao)) where rk <= 8 and deptno =10;
![](https://img.haomeiwen.com/i7046760/70b56d8145181229.png)
6.查询部门人数大于10的部门的员工信息。(我的emp表没有大于10的人)
Select EMPNO,ENAME, DEPTNO from emp where deptno in(select deptno from emp group by deptno having count(deptno)>=2)order by DEPTNO asc ;
![](https://img.haomeiwen.com/i7046760/e9189facddf384f4.png)
7.向emp表中插入一条记录,员工名为fan,员工号为8000,其他信息与smith员工的信息相同。
Insert into emp select 8000,'fan',job,mgr,hiredate,sal,comm,deptno from emp where ename = 'SMITH';
![](https://img.haomeiwen.com/i7046760/afe32ce3a2352c19.png)
网友评论