第11章 SQL练习答案 下载本文

内容发布更新时间 : 2024/11/2 20:18:05星期一 下面是文章的全部内容请认真阅读。

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;