oracle sql面试题



雇员表:EMPLOYEE

(EMPNO     CHARACTER(6)   NOT NULL, --雇员编号,定义为主键  

FIRSTNAME  VARCHAR(12)     NOT NULL, --雇员第一个名字  

MIDINIT   CHARACTER(1),            --雇员中间名字的首字母  

LASTNAME  VARCHAR(15)     NOT NULL, --雇员最后一个名字  

WORKDEPT  SMALLINT,                --部门编号,外键,对应部门表DEPTNO  

PHONENO   CHARACTER(4),            --电话号码  

HIREDATE  DATE,                    --雇用日期  

JOB       CHARACTER(8),            --工作岗位

EDLEVEL   SMALLINT       NOT NULL, --学历(1:中学及以下,2:大学,3:硕士及以上)

SEX       CHARACTER(1),            --性别(1:男,2:女)

BIRTHDATEDATE,                    --出生日期(60周岁以上为退休)  

SALARY    DECIMAL(9,2),            --薪水  

BONUS     DECIMAL(9,2)             --奖金

);

部门表:DEPT

 (DEPTNO  SMALLINT      NOT NULL, --部门编号,主键

  DEPTNAME VARCHAR(14),    --部门名称

  MANAGER  SMALLINT   --部门经理编号,每个经理也是雇员表中一个雇员 )

);

1 找出收入(SALARYBONUS之和)最低的10EMPNO,按照收入从低到高排序Oracle:

selectnvl(bonus, 0) + nvl(salary, 0) as income

  from EMPLOYEE t  order by income

2 从雇员表中删除雇用日期在194011日以前的雇员。Oracle

Delete fromEMPLOYEE wherehiredate<to_date('2012-01-01','yyyy-mm-dd');

3、算出所有雇员的平均收入(SALARYBONUS之和)、最低收入、最高收入,取整数位,小数点后面四舍五入。 oracle:

select round(sum(nvl(salary, 0) + nvl(bonus, 0)), 0),

        round(min(nvl(salary, 0) +nvl(bonus, 0)), 0),

        round(max(nvl(salary, 0) +nvl(bonus, 0)), 0)

  from employee 

4.列出所有雇员的全名,全部转换成大写字母,名字每一部分中间用空格隔开。oracle:

selectupper(FIRSTNME||' '||MIDINIT||' '||LASTNAME) fromemployee

5、找出雇员数大于50的部门的编号。oracle:

select deptno, deptname from dept where deptno in (selectworkdept  from employee   group by workdept  having count(*) > 50) 

6、在雇员表JOB字段上新建一个索引,取名idx_emp_job oracle:

Createindex idx_emp_job onemployee(job)   

7、找到FIRSTNME=’John’的员工所在部门的名称和部门经理编号 oracle

select manager, deptname from dept where deptno in(selectworkdept fromemployee t  where t.firstname = 'Jhon')

8、更新雇员表的薪水,如果为空置为0,如果不为空,不变更字段值。oracle:

update  employee set bonus=0 where bonus is null   

9、往部门表新增一个部门,DEPTNO=123DEPTNAME=’Market’MANAGER=20 oracle:

Insertinto dept values(123,'Market',20)

10、列出每个员工的字母缩写,忽略中间的名字,例如,CHRISTINEI HAAS缩写为CHBRUCE ADAMSON缩写为BAoracle:

selectsubstr (upper(firstname),1,1)||substr(upper(lastname),1,1) fromemployee

                                                     第二部分

雇员表:EMPLOYEE

(EMPNO     CHARACTER(6)   NOT NULL, --雇员编号,定义为主键  

FIRSTNAME  VARCHAR(12)     NOT NULL, --雇员第一个名字  

MIDINIT   CHARACTER(1),            --雇员中间名字的首字母  

LASTNAME  VARCHAR(15)     NOT NULL, --雇员最后一个名字  

WORKDEPT  SMALLINT,                --部门编号,外键,对应部门表DEPTNO  

PHONENO   CHARACTER(4),            --电话号码  

HIREDATE  DATE,                    --雇用日期  

JOB       CHARACTER(8),            --工作岗位

EDLEVEL   SMALLINT       NOT NULL, --学历(1:中学及以下,2:大学,3:硕士及以上)

SEX      

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值