1. 查找最晚入职员工的所有信息
1.1 题目描述
查找最晚入职员工的所有信息,为了减轻入门难度,目前所有的数据里员工入职的日期都不是同一天(sqlite里面的注释为–,mysql为comment)
CREATE TABLEemployees
(
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 语句实现
-- 方法一:通过排序order by 子句 + limit
/* select *
from employees
order by hire_date
desc limit 1
*/
-- 方法二:通过聚合函数max
select *
from employees
where hire_date =
(select max(hire_date) from employees)
2. 查找入职员工时间排名倒数第三的员工所有信息
2.1 题目描述
查找入职员工时间排名倒数第三的员工所有信息,为了减轻入门难度,目前所有的数据里员工入职的日期都不是同一天
CREATE TABLEemployees
(
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
));
输入描述:
无
输出描述:
2.2 语句实现
-- limit 2,1是指跳过两条数据取出一条数据,即读取第三条数据
select *
from employees
order by hire_date
desc limit 2,1
3. 查找各个部门当前领导当前薪水详情以及其对应部门编号dept_no
3.1 题目描述
查找各个部门当前(dept_manager.to_date=‘9999-01-01’)领导当前(salaries.to_date=‘9999-01-01’)薪水详情以及其对应部门编号dept_no
(注:输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列)
CREATE TABLEsalaries
(
emp_no
int(11) NOT NULL, – ‘员工编号’,
sal