Oracle数据库学习第一天对应练习题

Oracle数据库学习第一天对应练习题

1、查询工资大于12000的员工姓名和工资

SELECT ENAME ,SAL FROM EMP WHERE SAL>12000;

2、查询员工号为176的员工的姓名和部门号

SELECT LAST_NAME,DEPARTNUMBER FROM EMP WHERE EMNUMBER=176;

3、选择工资不在5000到12000的员工的姓名和工资

SELECT ENAME,SALARY FROM EMP WHERE SALARY<5000 OR SALARY>12000;

4、选择雇用时间在1998-02-01到1998-05-01之间的员工姓名,job_id和雇用时间

SELECT ENAME,IOB_ID,HIREDATE  FROM EMP WHERE HIREDATE BETWEEN ‘1-2月 -1998’ AND ‘1-5月 -1998’;

5、选择在20或50号部门工作的员工姓名和部门号

SELECT ENAME,DEPAR_ID FROM EMP WHERE DEPAR_ID in(20,50);

6、选择在1994年雇用的员工的姓名和雇用时间

SELECT ENAME ,HIRE_DATE FROM EMP WHERE HIRE_DATA LIKE ‘%-1994’;

%代表任意个字符,_代表一个字符。字符和日期应在单引号中。

7、选择公司中没有管理者的员工姓名及job_id

SELECT ENAME,JOB_ID FROM EMP WHERE MANAGER IS NULL;

8、选择公司中有奖金的员工姓名,工资和奖金级别

SELECT ENAME,SALARY,COMM_EVEL FROM EMP WHERE COMM_LEVEL IS NOT NULL;

9、选择员工姓名的第三个字母是a的员工姓名

SELECT ENAME FROM EMP WHERE ENAME LIKE ‘__a%’;

10、选择姓名中有字母a和e的员工姓名

SELECT ENAME FROM EMP WHERE ENAME LIKE ‘%a%’ AND ’%e%’;

11、显示系统时间

SELECT TO_CHAR(SYSDATE,’YYYY-MM-DD  HH24:MI:SS’) FROM DUAL;

12、查询员工号,姓名,工资,以及工资提高百分之20%后的结果(new salary)

SELECT ENUMBER,ENAME,SALARY,SALARY*1.2 “new salary” FROM EMP ;

13、将员工的姓名按首字母排序,并写出姓名的长度(length)

SELECT ENAME,LENGTH(ENAME) FROM EMP ORDER BY ENAME;

14、查询各员工的姓名,并显示出各员工在公司工作的月份数(worked_month)。

SELECT ENAME,MONTHS_BETWEEN(SYSDATE,HIRE_DATE) worker_month FROM EMP;

15、查询员工的姓名,以及在公司工作的月份数(worked_month),并按月份数降序排列

SELECT ENAME,MONTHS_BETWEEN(SYSDATE,HIRE_DATE)  worked_month FROM EMP ORDER BY worked_month desc;

16、做一个查询,产生下面的结果

<last_name> earns <salary> monthly but wants <salary*3>

 Dream Salary

King earns $24000 monthly but wants $72000

SELECT ENAME || ’earns’ || SALARY ||’monthly but wants’ || SALARY*3 FROM EMP;

‘||’是连接符

17、使用decode函数,按照下面的条件:

job                  grade

AD_PRES            A

ST_MAN             B

IT_PROG             C

SA_REP              D

ST_CLERK           E

Others                     F

产生下面的结果

Last_name      Job_id      Grade

      king           AD_PRES     A

SELECT LAST_NAME, JOB_ID,DECODE(JOB_ID, ’AD_PRES’ , ’A’ , ’ST_MAN’, ‘B’ ,’IT_PROG’ , ‘C’ , ‘SA_REP’ , ‘D’ , ‘ST_CLERK’  ,  ‘E’, ‘F’) GRADE FROM EMP ;

18、将第17题的查询用case函数再写一遍。

SELECT LAST_NAME , JOB_ID , CASR  JOB_ID  WHEN ‘AD_PRES’ THEN ‘A’

                                    WHEN ‘ST_MAN’ THEN ‘B’

                                    WHEN ‘IT_PROG’ THEN ‘C’

                                    WHEN ‘SA_REP ’ THEN ‘D’

                                    WHEN ‘ST_CLERK’ THEN ‘E’

                                    ELSE ‘F’

                                    END

FROM EMP;

19、查询公司员工工资的最大值,最小值,平均值,总和

SELECT MAX(SALARY),MIN(SALARY),AVE(SALARY),SUM(SALARY) FROM EMP;

20、查询各job_id的员工工资的最大值,最小值,平均值,总和

SELECT JOB_ID , MAX(SALARY) , MIN(SALARY) , AVE(SALARY) , SUM(SALARY) FROM EMP GROUP BY JOB_ID;

21、选择具有各个job_id的员工人数

SELECT JOB_ID,COUNT(ENAME) FROM EMP GROUP BY JOB_ID;

22、查询员工最高工资和最低工资的差距(DIFFERENCE)

SELECT MAX(SALARY)-MIN(SALARY) DIFFERENCE FROM EMP;

猜你喜欢

转载自blog.csdn.net/weixin_42617472/article/details/85018462