雇员表: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、 找出收入(SALARY和BONUS之和)最低的10个EMPNO,按照收入从低到高排序Oracle:
selectnvl(bonus, 0) + nvl(salary, 0) as income
from EMPLOYEE t order by income
2、 从雇员表中删除雇用日期在1940年1月1日以前的雇员。Oracle:
Delete fromEMPLOYEE wherehiredate<to_date('2012-01-01','yyyy-mm-dd');
3、算出所有雇员的平均收入(SALARY和BONUS之和)、最低收入、最高收入,取整数位,小数点后面四舍五入。 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=123,DEPTNAME=’Market’,MANAGER=20。 oracle:
Insertinto dept values(123,'Market',20)
10、列出每个员工的字母缩写,忽略中间的名字,例如,CHRISTINEI HAAS缩写为CH,BRUCE ADAMSON缩写为BA。oracle:
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