湘潭大學數據原理實驗

  1. 檢索dept中所有的記錄,並按部門名稱排序。
create or replace view v1 as
select * from univ.dept order by dname; 
  1. 列出工資(SAL)在15000到25000之間的所有員工的ENAME,SAL,並按ENAME排序。
create view V2 as
select ename,sal
from  univ.emp
where sal between 15000 and 25000
order by ename;
  1. 顯示DEPT表中的部門編號和部門名稱,並按部門名稱排序。
create or replace view V3 as
  select deptno,dname
  from univ.dept
  order by dname;
  1. 顯示所有不同的工作類型,並降序排序。
create or replace view v4 as
select distinct job from univ.emp order by job desc;
  1. 列出沒有提成(comm)的所有職工的姓名與工資,並按姓名排序。
create view V5 as
select ename,sal
from univ.emp
where comm is null
order by ename;
  1. 列出部門編號是20,工作是“clerk”(辦事員)的職工信息,並按姓名排序。
create view v6 as 
  select * 
  from univ.emp 
  where (job='clerk'and deptno=20)order by ename;
  1. 顯示姓名中包含AR或IN的職工姓名,並按姓名排序。
create view v7 as 
select ename 
  from univ.emp 
  where (ename like'%AR%' or ename like'%IN%')
  order by ename;
  1. 顯示姓名中包含AR和IN的職工姓名,並按姓名排序。
create view V8 as
select distinct ename
from univ.emp
where ename like '%AR%' and ename like '%IN%'
order by ename;
  1. 顯示所有職工的姓名和各項收入總和(sal+comm),並按姓名排序。
create or replace view V9 as
  select ename,sal+nvl(comm,0) as salcomm 
  from univ.emp
  order by ename;
  1. 查詢每個部門的平均工資(用round函數取整),並按部門編號排序。
create view v10 
as select deptno, round(avg(sal)) "平均工資"
 from univ.emp group by deptno;
  1. 查詢出每個部門中工資最高的職工,並按部門編號排序。若同一部門有多個最高工資者,再按職工號排序。
create view V11 as
select *
from univ.emp
where sal in (select max(sal) 
from univ.emp 
group by deptno)
order by deptno,empno asc;
  1. 查詢出每個部門比本部門平均工資高的職工人數,並按部門編號排序。
create or replace view V12 as
   select a.deptno,count(*) as rs 
   from univ.emp a,(select deptno,avg(sal) avgsal from univ.emp group by deptno) b 
   where a.deptno=b.deptno and a.sal>b.avgsal group by a.deptno 
   order by deptno;
  1. 列出至少有一個職工的所有部門,並按部門編號排序。
create view v13 as 
select deptno from univ.dept 
where deptno in (select deptno from univ.emp group by deptno having count(deptno)>=1)  order by deptno;
  1. 列出工資比“JONES”多的所有職工,並按職工編號排序。
create view v14 as 
  select * from univ.emp 
   where sal>(select sal from univ.emp where ename = 'JONES')
   order by empno;
  1. 列出所有職工的姓名及其直接上級的姓名,並按職工姓名排序。
create or replace view V15 as
   select distinct a.ename,
   (select ename  from univ.emp where univ.emp.empno=a.mgr) as manager 
   from univ.emp a
   where mgr is not null
   order by ename;
  1. 列出受僱日期早於其直接上級的所有職工,並按姓名排序。
create view v16 as 
select * from univ.emp a 
where a.hiredate<(select hiredate from univ.emp b where(b.empno=a.mgr)) order by a.ename;
  1. 列出部門名稱和這些部門職工的編號、姓名,要求同時列出那些沒有職工的部門,並按部門名稱和職工編號排序。
create view V17 as
select dname,empno,ename
from univ.emp natural right outer join univ.dept
order by dname,empno;
  1. 列出所有辦事員的姓名及其部門名稱,並按姓名排序。
create view v18 as
select a.ename,b.dname from univ.emp a 
left outer join univ.dept b 
on a.deptno=b.deptno where job='clerk' order by a.ename;
  1. 列出最低工資大於35000的各種工作類型,並降序排序。
create view v19 as
select job from univ.emp where sal>35000 order by job desc;
  1. 列出在銷售部(“sales”)工作的職工的姓名,並按姓名排序。
create view V20 as
select ename
from univ.emp natural join univ.dept
where dname='SALES'
order by ename;
  1. 列出工資高於公司平均工資的所有職工,並按姓名排序。
create or replace view V21 as
   select ename,sal
   from univ.emp
   where sal>(select max(sal) from univ.emp where deptno=30)
   order by ename;
  1. 列出與“SCOTT”從事相同工作的所有職工,並按姓名排序。
create view v22 as
  select * 
  from univ.emp 
  where job=(select job from univ.emp where ename='SCOTT') 
  order by   ename;
  1. 列出工資高於“30號部門的最高工資”的職工姓名和工資,並按姓名排序。
   create or replace view V23 as
   select ename,sal
   from univ.emp
   where sal>(select max(sal) from univ.emp where deptno=30)
   order by ename;
  1. 列出工資高於在部門
create or replace view V24 as
   select ename,sal
   from univ.emp
   where sal>(select max(sal) from univ.emp where deptno=30)
   order by ename;
  1. 列出在每個部門工作的職工數量、平均工資(用round函數取整),並按部門編號排序。
create view v25 as
select deptno,count(*) numbe,round(avg(sal))as a_1 from univ.emp group by deptno order by deptno;
  1. 列出所有職工的姓名、部門名稱和工資,並按姓名排序。
create view V26 as
select ename,dname,sal
from univ.emp natural join univ.dept
order by ename;
  1. 列出所有部門的詳細信息和部門人數,並按部門編號排序。
create view V26 as
select ename,dname,sal
from univ.emp natural join univ.dept
order by ename;
  1. 列出職工中各種工作類型的最低工資,並按工作類型排序。
create or replace view v28 as
select job, min(sal) as min_sal from univ.emp group by job order by job;
  1. 列出各個部門的經理(“manager”)的最低工資。
create view V29 as
select min(sal) as min_sal
from univ.emp natural join univ.dept
where sal in(select sal from univ.emp where job='manager');
  1. 列出平均工資最高的部門的名稱。
create or replace view v30 as 
   select dname
   from univ.dept natural join univ.emp
   group by dname 
   having avg(sal)>=all(select avg(sal)from univ.emp group by deptno);
  1. 列出不在北美工作職工的姓名,並按姓名排序。
create view v31 as 
select e.ename from univ.dept d left outer join univ.countries c on (d.CID=c.CID)left join univ.emp e on(d.deptno=e.deptno) 
where c.REGION !='North America'order by ename;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章