Oracle系统自带表employees_departments_jobs_locations,sql语句

1,emp表

在这里插入图片描述

2,dept表

在这里插入图片描述

3,job表

在这里插入图片描述

4,loc表

在这里插入图片描述

创建表 复制oracle自带表


create table emp as select * from hr.employees;
create table dept as select * from hr.departments;
create table job as select * from hr.jobs;
create table loc as select * from hr.locations;

工资 = 薪金 + 佣金

1.列出至少有一个员工的所有部门。
  • 这里用的是多行子查询 in
select * from dept
where department_id IN 
(SELECT department_id FROM EMP group by department_id);

在这里插入图片描述

2,列出薪金比“Alexander”多的所有员工。
select  first_name,salary from emp where salary >
(select max(salary) from emp where first_name = 'Alexander')

在这里插入图片描述

3.列出所有员工的姓名及其直接上级的姓名。

select a.first_name,
(select first_name from emp b where b.employee_id=a.manager_id)
 as boss_name from emp a;

在这里插入图片描述

4,请在EMP表中查找部门号在10-30之间的雇员的姓名、部门号、部门名称、工资。

select first_name,department_id,salary,job_id from emp where department_id>=10 and department_id<=30;

在这里插入图片描述

5,列出部门名称和这些部门的员工信息,同时并列出那些没有员工的部门。

SELECT DEPT.*,EMP.* FROM DEPT LEFT JOIN EMP ON DEPT.DEPARTMENT_ID =EMP.Department_Id;

在这里插入图片描述

6.列出所有在“Seattle”(city等于这个值)工作的员工的姓名及其部门名称。

  • 这里用的是相关子查询
select department_name ,
(select city from loc where loc.location_id = dept.location_id )
from dept

在这里插入图片描述

7.列出最低薪金大于15000的各种工作。

select min(salary) ,job_id from emp group by job_id having min(salary)>15000

在这里插入图片描述

9.列出薪金高于公司平均薪金的所有员工。

select first_name from emp where salary>
(select avg(salary) from emp  )

在这里插入图片描述

12.列出薪金高于在Shipping部门工作的所有员工的薪金的员工姓名和薪金。

select first_name,salary from emp where salary > all
(select salary from emp where emp.department_id  = (
select department_id from dept  where department_name = 'Shipping'))

在这里插入图片描述

13.列出在每个部门工作的员工数量、平均工资。

select count(first_name),avg(salary)
from  emp,dept
 where  emp.department_id = dept.department_id

在这里插入图片描述

14.列出所有员工的姓名、部门名称、工作地址、岗位名称和工资。

select first_name 姓名,
(select department_name from dept where dept.department_id  = emp.department_id )部门名称,
(select street_address from loc where dept.location_id = loc.location_id )工作地址,
(select job_title from job where job.job_id = emp.job_id)岗位名称,
salary 工资
from emp,dept

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/fhkkkbfgggjk/article/details/86214988