1.实训题
根据人力资源管理系统数据库中数据信息,完成下列操作。 (1)查询100号部门的所有员工信息。
Selsect * from employees where department_id = 100 (2) 查询所有职位编号为“SA_MAN”的员工的员工号、员
工名和部门号。
Select employee_id,first_name,last_name,department_id from employees where job_id= ‘SA_MAN’
(3) 查询每个员工的员工号、工资、奖金以及工资与奖金的
和。
Select employee_id,salary,commission_pct, salary*(1+nvl(commission_pct,0) from employees
(4) 查询40号部门中职位编号为“AD_ASST”和20号部门中职位编号为“SA_REP”的员工的信息。
Select * from employees where department_id=40 and job_id=’
AD_ASST’ OR department_id=20 and job_id=’ SA_REP’;
(5) 查询所有职位名称不是“Stock Manager”和“Purchasing Manager”,且工资大于或等于2000的员工的详细信息。 Select * from employees where job_id not in(’ Stock Manager’,’ Purchasing Manager’) and salary>=2000
(6) 查询有奖金的员工的不同职位编号和名称。
Select distinct job_id, job_title from jobs where job_id in (select
job_id from employees where job_id is not null)
(7) 查询没有奖金或奖金低于100元的员工信息。 Select * from employees where salary*commission_pct<100 or commission is NULL
(8) 查询员工名(first_name)中不包含字母“S”的员工。 Select first_name from employees where first_name not like ‘%S%’ (9) 查询员工的姓名和入职日期,并按入职日期从先到后进行排序。
Select first_name,last_name,hire_date from employees order by hire_date;
(10) 显示所有员工的姓名、职位、工资和奖金,按职位降序排序,若职位相同则按工资升序排序。
Select first_name,last_name,job_id,salary ,salary*commission_pet from employees order by job_id desc ,salary asc;
(11) 查询所有员工的姓名及其直接上级的姓名。
Select a.first_name,b.first_name from employees a join employees b on b.employee_id = a.manage_id
(12) 查询入职日期早于其直接上级领导的所有员工信息。 select * from employees a where hire_date<(select hire_date from employees b b.employee_id=a.manage_id)
(13) 查询各个部门号、部门名称、部门所在地以及部门领导
的姓名。
Select d.department_id,d.department_name,d.location,e.first_name from departments d join employees e on d.manager_id=e.employee_id
(14) 查询所有部门及其员工信息,包括那些没有员工的部门。
Select department_name,first_name from departments d left join employees e on d.deparment_id=e.department_id
(15) 查询所有员工及其部门信息,包括那些还不属于任何部门的员工。
Select e.first_name,d.department_name From employees left join departments on e.department_id=d.department_id;
(16) 查询所有员工的员工号、员工名、部门名称、职位名称、工资和奖金。
Select
e.employee_id,e.first_name,d.department_name,j.job_title,e.salary,e.salary*e.commission_pct 奖金
From
departments
d
join
employees
e
on
d.department_id=e.department_id
Join jobs j on j.job_id=e.job_id;