根据人力资源管理系统数据库中数据信息,完成下列操作。
(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) 查询入职日期早于其直接上级领导的所有员工信息。
(13) select * from employees a where hire_date<(select hire_date from employees b b.employee_id=a.manage_id)
(14) 查询各个部门号、部门名称、部门所在地以及部门领导的姓名。
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
(15) 查询所有部门及其员工信息,包括那些没有员工的部门。
Select department_name,first_name from departments d left join employees e on d.deparment_id=e.department_id
(16) 查询所有员工及其部门信息,包括那些还不属于任何部门的员工。
Select e.first_name,d.department_name
From employees left join departments on e.department_id=d.department_id;
(17) 查询所有员工的员工号、员工名、部门名称、职位名称、工资和奖金。
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;
(18) 查询至少有一个员工的部门信息。
Select distinct departments.* from departments d join employees e
on e.employee_id is not null;
select * from employees where department_id in(select distinct department_id from employees)
select * from departments d where exists(select 1 from employees
where department_id=d.department_id)
(19) 查询工资比100号员工工资高的所有员工信息。
Select * from employees where salary>(select salary from employees where employee_id = 100);
(20) 查询工资高于公司平均工资的所有员工信息。
Select * from employees where salary>(select avg(salary) from employees)
(21) 查询各个部门中不同职位的最高工资。
Select job_id,max(salary) from employees group by job_id
(22) 查询各个部门的人数及平均工资
Select department_id,count(*),avg(salary ) from employees
group by department_id;
(23) 统计各个职位的员工人数与平均工资。
Select job_id ,count(employee_id),avg(salary)
from employees
group by job_id;
(24) 统计每个部门中各职位的人数与平均工资。
Select department_id,job_id,count(*),avg(salary) from employees group by department_id,job_id;
(25) 查询最低工资大于5000元的各种工作。
Select job_id,job_title from jobs where job_id in(
Select job_id from employees group by job_id having min(salary)>5000);
(26) 查询平均工资低于6000元的部门及其员工信息。
Select e.*,d.* from employees e join departments d on e.department_id=d.department_id and
department_id in(select department_Id from employees group by employee_id having avg(salary)<6000);
(27) 查询在“Sales”部门工作的员工的姓名信息。
Select e.first_name||e.last_name from employees e join departments d on e.department_id=d.department_id where d.department_name = ‘Sales’;
Select * from employee where department_id in(select department_d from departments where department_name=’Sales’)
(28) 查询与140号员工从事相同工作的所有员工信息。
Select * from employees where job_id in (select job_id from employees where employee_id = 140);
(29) 查询工资高于30号部门中所有员工的工资的员工姓名和工资。
Select first_name,last_name,salary from employees where salary>(select max(salary) from employees deparment_id=30);
(30) 查询每个部门中的员工数量、平均工资和平均工作年限。
Select count(*),avg(salary),avg(round((sysdate-hire_date)/365)) from employees group by department_id
(31) 查询工资为某个部门平均工资的员工的信息。
Select * from employees where salsry in(select avg(Salary) from employees group by department_id)
(32) 查询工资高于本部门平均工资的员工的信息。
Select * from employees e1 where salary>(select avg(salary) from employees
e2 where e2.department_id=e1.department_id )
(33) 查询工资高于本部门平均工资的员工的信息及其部门的平均工资。
Select e.*,avgsal
From employees e join (select department_id,avg(salary) avgsal from employees group by department_id) d
On e.department_id=d.department_id
And e.salary>d.avgsal
(34) 查询工资高于50号部门某个员工工资的员工的信息。
Select *from employees where salary>any(select salary from employees where department_id=50):
(35) 查询工资、奖金与10号部门某员工工资、奖金都相同的员工的信息。
Select * from employees where (salary,nvl(commission_pct) ) in(
Select salary,nvl(commission_pct) from employees where department_id=10
)
(36) 查询部门人数大于10的部门的员工信息。
Select * from employees where department_id in(select department_id from employees group by department_id having count(*)>10);
查询所有员工工资都大于10000元的部门的信息
Select * from department where department_id in (select department_id from employees group by department_id having min(salary)>10000)
(37) 查询所有员工工资都大于5000元的部门的信息及其员工信息。
(38) 查询所有员工工资都在4000元~8000元之间的部门的信息。
Select * from departments where department_id in(
Select department_id from employees group by department_id having min(salary)>=4000 and max(salary)<=8000)
(39) 查询人数最多的部门信息。
Select * from department_id where department_id in(
Select department_id from employees group by department_id having
Count(*)>=all(
select count(*) from employees group by department_id )
)
(40) 查询30号部门中工资排序前3名的员工信息。
Select * from employee where department_id=30 and salary is not null and rownum<=3 order by salary desc
(41) 查询所有员工中工资排序在5~10名之间的员工信息。
Select * from
(
Select rownum rn,employee_id,salary from (
Select employee_id,salary from employees where salary is not null order by salary desc) e1
)e2
Where rn between 5 and 10
(42) 向employees表中插入一条记录,员工号为1000元,入职日期为2002年5月10日,email为example@neusoft.edu.cn,其他信息与员工号为150的员工相同。
(43) 将各部门员工的工资修改为该员工所在部门平均工资加1000。
(44) 查询各月倒数第2天入职的员工信息。
(45) 查询工龄大于或等于10年的员工信息。
(46) 查询员工信息,要求以首字母大写的方式显示所有员工姓(last_name)和员工名(first_name)。
(47) 查询员工名(first_name)正好为6个字符的员工的信息。
(48) 查询员工名(first_name)的第2个字母为“M”的员工信息。
(49) 查询所有员工名(first_name),如果包含字母“s”,则用“S”替换。
(50) 查询在2月份入职的所有员工信息。
因篇幅问题不能全部显示,请点此查看更多更全内容