您的位置:首页 > 数据库

SQL基本语句练习(二)

2006-11-12 09:54 1081 查看
 
1.         查询所有雇员姓名以及其全年收入(工资+奖金),并指定列别名为“年收入”。
       select ename,12*(sal+nvl(comm,0)) as年收入 from emp;
 
2.         查询有雇员的所有部门的部门号和部门名称。
       select empno,ename,dept.dname,dept.deptno from emp,dept where emp.deptno=dept.deptno;
 
3.         查询工资超过2850的雇员姓名和工资。
       select ename, sal from emp where sal>2850;
 
4.         查询工资不在1500到2850之间的所有雇员姓名和工资。
       select ename, sal from emp where sal not between 1500 and 2850;
 
5.         查询10号部门和30号部门工资超过1500的雇员姓名和工资。
       select ename, sal from emp where sal < 1500 and deptno in (10,30);
 
6.         查询没有上司的员工姓名及其职位。
       select ename, job from emp where mgr is null;
 
7.         查询在1981年2月1日~1981年5月1日之间入职的雇员姓名、职位及入职时间,并以入职时间的先后进行排序。
       select ename,job,hiredate from emp where hiredate between '01-1月-81' and '01-5月-81' order by hiredate;
 
8.         查询有奖金的员工的姓名、工资和奖金,并按工资和奖金降序排序。
       select ename,sal,comm from emp where comm is not null order by sal desc,comm desc;
 
9.         查询每种职位的雇员总数和平均工资。
       select  job,count(*),avg(sal) from emp group by job;
 
10.     查询所有雇员总数和获得奖金的员工数。
       select count(empno),count(comm) from emp ;

11.     查询经理的总人数。
       select count(*) from emp  where job='MANAGER';

12.     查询20号部门的部门名称,以及该部门所有雇员姓名、工资和职位。
       select dname,ename,sal,job from emp,dept where dept.deptno=emp.deptno and emp.deptno=20;

13.     查询有奖金的所有员工的姓名、奖金以及所在部门名称。
       select ename,comm,dname from emp,dept where dept.deptno=emp.deptno and comm is not null;

14.     查询在“New York”工作的所有员工的姓名、工资及其所在部门名称。
       select ename,sal,dname from emp,dept where dept.deptno=emp.deptno and loc= 'NEW YORK';

15.     查询雇员SCOTT的上级。
       select empno,ename from emp where empno=(select mgr from emp where ename='SCOTT');

16.     查询20号部门的员工姓名、工资及其级别。
       select ename,sal,grade from emp,salgrade where deptno=20 and sal between losal and hisal;

17.     查询与BLAKE同一部门的其他员工。
       select empno,ename from emp where deptno=(select deptno from emp where ename='BLAKE') and 
            ename!= 'BLAKE';

18.     查询工资超过平均工资的所有员工的姓名、工资和职位。
       select ename,sal,job from emp where sal> (select avg(sal) from emp);

19.     查询工资、奖金与SCOTT完全相同的所有员工的姓名、工资和奖金。
       select ename,sal, comm from emp where (sal,nvl(comm,-1)) in (select sal,nvl(comm,-1) from emp where
            ename='SCOTT') ;

20.     查询81年入职的员工
       select * from emp where to_char(hiredate, 'yy')= '81';
 
21.     按年月日查询员工信息
       select to_char(hiredate, 'yyyy-mm-dd' )from emp;

22.     向DEPT表中插入一条数据,要求:部门号为50,部门名称为ADMINISTRATOR,部门位置为BOSTON。
       Insert into dept values(50, 'ADMINISTRATOR','BOSTON');

23.     向EMP表中插入一条数据,要求:员工号为2000,姓名为JOHN,工资为1000,入职时间为2003年4月7日,部门号为30号。
       Insert into emp (empno,ename,sal,hiredate,deptno) values(2000, 'JOHN',1000, '07-4月-03',30);

24.     给10号部门的每个雇员增加10%的工资。然后提交事务。
        Update emp set sal=sal*1.1 where deptno=10;
          commit

25.     删除50号部门。然后回滚事务。
       Delete from dept where deptno=50;
         Rollback;
 
 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息