1.列出emp中部门的平均工资大于2000的部门编号和平均工资。
select deptno,round(avg(sal),2) 平均工资 from emp group by deptno having avg(sal)>2000;
2.在emp表中,查询出既不是最高工资,也不是最低工资的员工详细信息。
select * from emp where sal<(select max(sal) from emp) and sal>(select min(sal) from emp);
3.列出所有“CLERK”(办事员)的姓名及其部门名称。
select ename,dname from emp e join dept d on e.deptno=d.deptno and job='CLERK';
4.列出员工表中恰巧是各月最后一天受雇的所有员工的详细信息。
–修改BLAKE为5月最后一天受雇的员工
update emp set hiredate=to_date('1981/5/31','YYYY-MM-DD') where ename='BLAKE';
–查询最后一天受雇的所有员工
select * from emp where hiredate=last_day(hiredate);update emp set
5.在dept表中增加一个telephone(电话)的新字段,类型是可变长字符串,最大长度12位。
alter table dept add telephone varchar2(12); select * from dept;
6. 列出10号部门中所有经理(MANAGER)和20号部门中所有办事员(CLERK)的详细信息。
select * from emp where (deptno=10 and job='MANAGER') or (deptno=20 and job='CLERK');
7.把emp表中职务是销售员(SALESMAN)的记录的工资上调30%。
销售员修改前的工资:
select job,sal from emp where job='SALESMAN';
上调30%后:
update emp set sal=sal*1.3 where job='SALESMAN';
8.列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。
select ename from emp where deptno=(select deptno from dept where dname='SALES');
9.查询工资排序前五名的员工号及其工资。
用rownum就会对这个新表进行排序.排序的rownum按照查询的顺序来展示.
select rownum,empno,sal from (select empno,sal from emp order by sal desc) where rownum<6 ;
10.列出部门名称和这些部门的员工姓名、员工工资,同时列出没有员工的部门。
select d.dname,ename,sal from emp e right join dept d on e.deptno=d.deptno;
ORACLE数据库测试题(一)
猜你喜欢
转载自blog.csdn.net/weixin_40408952/article/details/108813458
今日推荐
周排行