emp.deptno(+)=dept.deptno group by dept.deptno,dept.dname,dept.loc
--42.列出各种工作的最低工资
select job, min(sal + nvl(comm, 0)) \最低工资\ --43.列出各个部门的MANAGER(经理)的最低薪金
select min(sal + nvl(comm,0)) from emp where upper(job) = 'MANAGER' group by deptno; --显示部门名称
select dname, min(sal + nvl(comm,0)) from emp, dept where emp.deptno = dept.deptno and upper(job) = 'MANAGER' group by dname;
--44.列出所有员工的年工资,按年薪从低到高排序
select ename, to_char((sal+nvl(comm,0))*12, '9999,9999.00') \年工资\ --45.显示各部门员工薪金最高的前2名
select * from (select ename, deptno, sal, row_number() over(partition by deptno order by sal desc) r from emp ) where r <=2
--46.显示薪金最高的3位员工
select * from (select ename, sal,dense_rank() over(order by sal desc) r from emp) where r <=3; --47.创建表myemp和emp表具有相同的结构和记录。 create table myemp as select * from emp; --48.给myemp的empno列添加主建约束。
alter table myemp add constraint pk primary key(empno); --49.给myemp添加一条记录。
insert into myemp values(1,'a','ab',999999,to_date('2008-9-9','yyyy-mm-dd'),5000,1000,30); --50.给myemp添加一条记录只有empno,ename,mgr,sal,deptno有值,其他列为空。 insert into myemp(empno,ename,mgr,sal,deptno) values(20,'aa',30,999999,20); --51.显示所有薪金高于各自部门平均薪金的人。(关联子查询)
select e.ename, e.deptno, e.sal from emp e where e.sal>(select avg(sal) from emp p where e.deptno=p.deptno);
--52.给所有10部门的经理(MANAGER)和20部门的职员(CLERK),增加薪金10%。
update emp set sal=sal*(1+0.1) where (deptno=10 and upper(job)='MANAGER') or(deptno=20 and upper(job)='CLERK');
--53.删除DEPT中没有员工的部门。
delete from dept where deptno not in(select distinct deptno from emp); --54.删除雇佣年限低于20年的员工。
delete from