数据库SQL实战-查找所有员工的last_name和first_name以及对应的dept_name(mysql)

1. 查找所有员工的last_name和first_name以及对应的dept_name

1.1 题目描述

查找所有员工的last_name和first_name以及对应的dept_name,也包括暂时没有分配部门的员工
CREATE TABLE departments (
dept_no char(4) NOT NULL,
dept_name varchar(40) NOT NULL,
PRIMARY KEY (dept_no));
CREATE TABLE dept_emp (
emp_no int(11) NOT NULL,
dept_no char(4) NOT NULL,
from_date date NOT NULL,
to_date date NOT NULL,
PRIMARY KEY (emp_no,dept_no));
CREATE TABLE employees (
emp_no int(11) NOT NULL,
birth_date date NOT NULL,
first_name varchar(14) NOT NULL,
last_name varchar(16) NOT NULL,
gender char(1) NOT NULL,
hire_date date NOT NULL,
PRIMARY KEY (emp_no));

输入描述:

输出描述:

在这里插入图片描述

1.2 语句实现

select e.last_name, e.first_name, d.dept_name
from employees e 
left join dept_emp de
on e.emp_no = de.emp_no
left join departments d 
on de.dept_no = d.dept_no

2. 查找员工编号emp_no为10001其自入职以来的薪水salary涨幅值growth

2.1 题目描述

查找员工编号emp_no为10001其自入职以来的薪水salary涨幅(总共涨了多少)growth(可能有多次涨薪,没有降薪)
CREATE TABLE salaries (
emp_no int(11) NOT NULL,
salary int(11) NOT NULL,
from_date date NOT NULL,
to_date date NOT NULL,
PRIMARY KEY (emp_no,from_date));

输入描述:

输出描述:

在这里插入图片描述

2.2 语句实现

select max(salary) - min(salary) as growth
from salaries
where emp_no = '10001'

猜你喜欢

转载自blog.csdn.net/weixin_48440312/article/details/112647249