上机题 5:创建如下的视图:创建“research”部门的职工情况,包含如下字段
的视图 view_research:包括 empno、ename、sal、comm。
create view research as select empno,ename,sal,comm from emp;
上机题 6:使用 SELECT 语句创建查询:
1、列出至少有一个员工的全部部门及人数。
select count(empno),deptno from emp group by deptno having
count(ename)>1;
2、列出薪金比“SMITH”多的全部员工。
select ename,sal from emp where sal>(select sal from emp where
ename='SMITH');
3、列出全部员工的姓名及其直接上级的姓名
select table1.ename,table2.ename from emp table1,emp table2 where
table1.mgr=table2.empno;
4、列出受雇日期早于其直接上级的全部员工。
select a.ename from emp a,emp b where a.mgr=b.empno and
a.hiredate<b.hiredate;
5、列出部门名称和这些部分的员工信息,同时列出那些没有员工的部门。
select emp.*,dept.dname from emp right outer join dept on
dept.deptno=emp.deptno;
6、列出全部 “CLERK”(做事员)的姓名及其部分名称。
select ename,dname from emp,dept where emp.deptno=dept.deptno and
emp.job='CLERK';
7、列出最低薪金大于 1500 的种种工作 。
select job from emp group by job having min(sal)>1500;
8、列出在部分门“SALES”(贩卖部)做事的员工的姓名,假定不知道贩卖部的
部门编号。
select ename from (select deptno from dept where dname='SALES')a,emp
where a.deptno=emp.deptno;
9、列出薪金高于公司平均薪金的全部员工。
select emp.* from emp where sal>(select avg(sal)from emp);
10、列出与“SCOTT”从事相同工作的全部员工。
select emp.* from emp where job in(select job from emp where
ename='SCOTT');
11、列出薪金是部门 30 中员工的薪金的全部员工的姓名和薪金。
select ename,sal from emp where sal in (select sal from emp where
deptno=30);
12、列出薪金高于在部门 30 做事的全部员工的薪金的员工姓名和薪金。
select ename,sal from emp where sal >(select max(sal) from emp where
deptno=30);
13、列出在每个部门做事的员工数量 、均匀收入、平均做事限期。
select count(ename),avg(sal),floor(sysdate-hiredate/365) from emp
group by(deptno);
14、列出全部员工的姓名、部门名称和收入。
select ename,dname,sal from emp,dept where emp.deptno=dept.deptno;