码迷,mamicode.com
首页 > 数据库 > 详细

Oracle sql语句练习

时间:2016-08-05 17:25:20      阅读:523      评论:0      收藏:0      [点我收藏+]

标签:

技术分享
--1、选择在部门 30 中员工的所有信息
select * from emp where EMPNO=30;
--2、列出职位为(MANAGER)的员工的编号,姓名
select EMPNO, ENAME from emp where job=MANAGER;
--3、找出奖金高于工资的员工
select * from emp where COMM>SAL;
--4、找出每个员工奖金和工资的总和
select  EMPNO,ENAME,COMM+SAL from emp;
--5、找出部门 10 中的经理(MANAGER)和部门 20 中的普通员工(CLERK)  
select * from emp where (DEPTNO=10 and job=MANAGER) or (DEPTNO=20 and job=CLERK); 
--6、找出部门 10 中既不是经理也不是普通员工,而且工资大于等于 2000 的员工 
select * from emp where job not in (MANAGER,CLERK) and SAL>=2000;
--7、找出有奖金的员工的不同工作 
select distinct job from emp; 
--8、找出没有奖金或者奖金低于 500 的员工 
select * from emp where COMM is null or COMM >500;
--9、显示雇员姓名,根据其服务年限,将最老的雇员排在最前面 
select ename,HIREDATE from emp order by HIREDATE desc;
--10、找出每个月倒数第三天受雇的员工(如:2009-5-29)  
select *  from emp 
where EXTRACT(day FROM to_date(sysdate,yyyy-mm-dd)) - EXTRACT(day FROM to_date(HIREDATE,yyyy-mm-dd)) =3; 
--11、找出 25 年前雇的员工 
select *  from emp 
where EXTRACT(year FROM to_date(sysdate,yyyy-mm-dd)) - EXTRACT(year FROM to_date(HIREDATE,yyyy-mm-dd)) >25;  
--12、所有员工名字前加上 Dear ,并且名字首字母大写   
select Dear||initcap(ename) from emp;
--13、找出姓名为 5 个字母的员工  
select * from emp where  ENAME like _____;
--14、找出姓名中不带 R 这个字母的员工 
select * from emp where  ENAME not like %R%;
--15、显示所有员工的姓名的第一个字 
select substr(ename,0,1) as name from emp;
--16、分组统计各部门下工资>500 的员工的平均工资、  
select avg(SAL) from emp where SAL>500 ;
--17、统计各部门下平均工资大于 500 的部门  
select DEPTNO ,avg(SAL) from emp group by  DEPTNO having avg(SAL)>500;  
--18、算出部门 30 中得到最多奖金的员工奖金 
select max(COMM) from EMP where DEPTNO=30;
--19、算出部门 30 中得到最多奖金的员工姓名  
select ENAME from EMP where comm in (select max(COMM) from EMP where DEPTNO=30);
--20、算出每个职位的员工数和最低工资 
select job,count(*) as num,min(SAL) from emp group by job;
View Code

雇员表:记录了一个雇员的基本信息
EMP(雇员表)
NO                字段             类型                            描述
1              EMPNO            NUMBER(4)              雇员编号
2              ENAME           VARCHAR2(10)     表示雇员姓名
3             JOB                VARCHAR2(9)        表示工作职位
4             MGR                NUMBER(4)            表示一个雇员的领导编号
5              HIREDATE       DATE                      表示雇佣日期
6              SAL                 NUMBER(7,2)         表示月薪,工资
7             COMM             NUMBER(7,2)         表示奖金或佣金
8              DEPTNO          NUMBER(2)           表示部门编号

 

 

部门表:表示一个部门的具体信息
DEPT(部门表)
NO                    字段             类型                                描述
1                    DEPTNO         NUMBER(2)                部门编号
2                     DNAME           VARCHAR2(14)          部门名称
3                     LOC                 VARCHAR2(13)           部门位置

 

奖金表:表示一个雇员的工资及奖金。

BONUS(奖金表)
NO                  字段                  类型                                 描述
1                  ENAME            VARCHAR2(10)                雇员姓名
2                 JOB                  VARCHAR2(9)                   雇员工作
3                 SAL                   NUMBER                          雇员工资
4                 COMM               NUMBER                            雇员奖金

 

一个公司是有等级制度,用此表表示一个工资的等级
SALGRADE(工资等级表)
NO           字段                        类型                                   描述
1            GRADE                   NUMBER                           等级名称
2             LOSAL                     NUMBER                     此等级的最低工资
3           HISAL                       NUMBER                     此等级的最高工资

题目:

1、 选择在部门 30 中员工的所有信息 


2
、列出职位为(MANAGER)的员工的编号,姓名 

3、找出奖金高于工资的员工  

4、找出每个员工奖金和工资的总和 

5、找出部门 10 中的经理(MANAGER)和部门 20 中的普通员工(CLERK) 

6、找出部门 10 中既不是经理也不是普通员工,而且工资大于等于 2000 的员工 

7、找出有奖金的员工的不同工作 

8、找出没有奖金或者奖金低于 500 的员工 
 
9、显示雇员姓名,根据其服务年限,将最老的雇员排在最前面 

10、找出每个月倒数第三天受雇的员工(如:2009-5-29)  

11、找出 25 年前雇的员工 
  
12、所有员工名字前加上 Dear ,并且名字首字母大写   

13、找出姓名为 5 个字母的员工  
  
14、找出姓名中不带 R 这个字母的员工 

 

15、显示所有员工的姓名的第一个字 

16、分组统计各部门下工资>500 的员工的平均工资、  
  
17、统计各部门下平均工资大于 500 的部门  
  
18、算出部门 30 中得到最多奖金的员工奖金 
  
19、算出部门 30 中得到最多奖金的员工姓名  

 
20
、算出每个职位的员工数和最低工资 

Oracle sql语句练习

标签:

原文地址:http://www.cnblogs.com/LYL-1314/p/5741862.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!