Oracle表的常用查询实验(一)
练习 1 、请查询表 DEPT 中所有部门的情况。
select * from dept;
练习 2 、查询表 DEPT 中的部门号、部门名称两个字段的所有信息。
select deptno,dname from dept;
练习 3 、请从表 EMP 中查询 10 号部门工作的雇员姓名和工资。
select ename,sal from emp where deptno=10;
练习 4 、请从表 EMP 中查找工种是职员 CLERK 或经理 MANAGER 的雇员姓名、工资。
select ename,sal from emp where job='CLERK' or job='MANAGER';
练习 5 、请在 EMP 表中查找部门号在 10 - 30 之间的雇员的姓名、部门号、工资、工作。
select ename,deptno,sal,job from emp where deptno between 10 and 30;
练习 6 、请从表 EMP 中查找姓名以 J 开头所有雇员的姓名、工资、职位。
select ename,sal,job from emp where ename like 'J%';
练习 7 、请从表 EMP 中查找工资低于 2000 的雇员的姓名、工作、工资,并按工资降序排列。
select ename,job,sal from emp where sal<=2000 order by sal desc;
练习 8 、请从表中查询工作是 CLERK 的所有人的姓名、工资、部门号、部门名称以及部门地址的信息。
select ename,sal,emp.deptno,dname,loc from emp,dept where emp.deptno=dept.deptno and job=’CLERK’;
练习 9 、查询表 EMP 中所有的工资大于等于 2000 的雇员姓名和他的经理的名字。
select a.ename,b.ename from emp a,emp b where a.mgr=b.empno(+) and a.sal>=2000;
练习 10 、在表 EMP 中查询所有工资高于 JONES 的所有雇员姓名、工作和工资。
select ename,job,sal from emp where sal>(select sal from emp where ename=’JONES’);
练习 11 、列出没有对应部门表信息的所有雇员的姓名、工作以及部门号。
select ename,job,deptno from emp where deptno not in (select deptno from dept);
练习 12 、查找工资在 1000 ~ 3000 之间的雇员所在部门的所有人员信息
select * from emp where deptno in (select distinct deptno from emp where sal between 1000 and 3000);
练习 13 、雇员中谁的工资最高。
select ename from emp where sal=(select max(sal) from emp);
select ename from (select * from emp order by sal desc) where rownum<=1;
练习 14 、雇员中谁的工资第二高(考虑并列第一的情况,如何处理)。
select ename from (select ename ,sal from (select * from emp order by sal desc) where rownum<=2 order by sal) where rownum<=1;