第一题
题目描述
查找最晚入职员工的所有信息,为了减轻入门难度,目前所有的数据里员工入职的日期都不是同一天(sqlite里面的注释为–,mysql为comment)
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));

select * from employees order by hire_date desc limit 1;

第二题
查找入职员工时间排名倒数第三的员工所有信息,为了减轻入门难度,目前所有的数据里员工入职的日期都不是同一天
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
select * from employees order by hire_date desc limit 2,1;
--解法2 用开窗函数
SELECT a.* FROM employees a
inner JOIN
(
SELECT a.*, ROW_NUMBER() over(ORDER BY a.hire_date desc) AS num FROM employees a
)b ON a.emp_no =b.emp_no AND b.num=3;

第三题
题目描述
查找各个部门当前(dept_manager.to_date=‘9999-01-01’)领导当前(salaries.to_date=‘9999-01-01’)薪水详情以及其对应部门编号dept_no
(注:输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列)
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));
CREATE TABLE dept_manager (
dept_no char(4) NOT NULL, – ‘部门编号’
emp_no int(11) NOT NULL, – ‘员工编号’
to_date date NOT NULL,
PRIMARY KEY (emp_no,dept_no));

select salaries.emp_no,salaries.salary,salaries.from_date,salaries.to_date,dept_manager.dept_no
from salaries inner join dept_manager
on dept_manager.emp_no = salaries.emp_no
and salaries.to_date = '9999-01-01'
and dept_manager.to_date = '9999-01-01'
order by salaries.emp_no;

第四题
题目描述
查找所有已经分配部门的员工的last_name和first_name以及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));

select b.last_name,
b.first_name,
a.dept_no
from dept_emp a
join employees b
on a.emp_no = b.emp_no;

第五题
题目描述
查找所有员工的last_name和first_name以及对应部门编号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));

select a.last_name,
a.first_name,
b.dept_no
from employees a
left join dept_emp b
on a.emp_no = b.emp_no;

第六题
题目描述
查找所有员工入职时候的薪水情况,给出emp_no以及salary, 并按照emp_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));
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));

select
a.emp_no,
b.salary
from employees a
join salaries b
on a.emp_no = b.emp_no
and a.hire_date = b.from_date
order by emp_no desc;

第七题
题目描述
查找薪水变动超过15次的员工号emp_no以及其对应的变动次数t
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));

select
emp_no,
count(salary) as t
from salaries
group by emp_no
having t > 15;

第八题
题目描述
找出所有员工当前(to_date=‘9999-01-01’)具体的薪水salary情况,对于相同的薪水只显示一次,并按照逆序显示
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));

select distinct
salary
from salaries
where to_date = '9999-01-01'
order by salary desc;

第九题
题目描述
获取所有部门当前(dept_manager.to_date=‘9999-01-01’)manager的当前(salaries.to_date=‘9999-01-01’)薪水情况,给出dept_no, emp_no以及salary,输出结果按照dept_no升序排列(请注意,同一个人可能有多条薪水情况记录)
CREATE TABLE dept_manager (
dept_no char(4) NOT NULL,
emp_no int(11) NOT NULL,
from_date date NOT NULL,
to_date date NOT NULL,
PRIMARY KEY (emp_no,dept_no));
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));

SELECT
d.dept_no,
d.emp_no,
s.salary
FROM dept_manager AS d
INNER JOIN salaries AS s
ON d.emp_no=s.emp_no
WHERE d.to_date='9999-01-01'
and s.to_date='9999-01-01'
order by d.dept_no asc;

第十题
题目描述
获取所有非manager的员工emp_no
CREATE TABLE dept_manager (
dept_no char(4) NOT NULL,
emp_no int(11) 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));

如插入为:
INSERT INTO dept_manager VALUES(‘d001’,10002,‘1996-08-03’,‘9999-01-01’);
INSERT INTO dept_manager VALUES(‘d002’,10006,‘1990-08-05’,‘9999-01-01’);
INSERT INTO dept_manager VALUES(‘d003’,10005,‘1989-09-12’,‘9999-01-01’);
INSERT INTO dept_manager VALUES(‘d004’,10004,‘1986-12-01’,‘9999-01-01’);
INSERT INTO dept_manager VALUES(‘d005’,10010,‘1996-11-24’,‘2000-06-26’);
INSERT INTO dept_manager VALUES(‘d006’,10010,‘2000-06-26’,‘9999-01-01’);

INSERT INTO employees VALUES(10001,‘1953-09-02’,‘Georgi’,‘Facello’,‘M’,‘1986-06-26’);
INSERT INTO employees VALUES(10002,‘1964-06-02’,‘Bezalel’,‘Simmel’,‘F’,‘1985-11-21’);
INSERT INTO employees VALUES(10003,‘1959-12-03’,‘Parto’,‘Bamford’,‘M’,‘1986-08-28’);
INSERT INTO employees VALUES(10004,‘1954-05-01’,‘Chirstian’,‘Koblick’,‘M’,‘1986-12-01’);
INSERT INTO employees VALUES(10005,‘1955-01-21’,‘Kyoichi’,‘Maliniak’,‘M’,‘1989-09-12’);
INSERT INTO employees VALUES(10006,‘1953-04-20’,‘Anneke’,‘Preusig’,‘F’,‘1989-06-02’);
INSERT INTO employees VALUES(10007,‘1957-05-23’,‘Tzvetan’,‘Zielinski’,‘F’,‘1989-02-10’);
INSERT INTO employees VALUES(10008,‘1958-02-19’,‘Saniya’,‘Kalloufi’,‘M’,‘1994-09-15’);
INSERT INTO employees VALUES(10009,‘1952-04-19’,‘Sumant’,‘Peac’,‘F’,‘1985-02-18’);
INSERT INTO employees VALUES(10010,‘1963-06-01’,‘Duangkaew’,‘Piveteau’,‘F’,‘1989-08-24’);
INSERT INTO employees VALUES(10011,‘1953-11-07’,‘Mary’,‘Sluis’,‘F’,‘1990-01-22’);

select
e.emp_no as emp_no
from  employees e
left join dept_manager d
on e.emp_no = d.emp_no
where d.dept_no is null;
-- 解法 2
select emp_no
from employees
where emp_no not in (select emp_no from dept_manager);

更多相关链接
MySQL笔试题练习及答案(一)
MySQL笔试题练习及答案(二)
MySQL笔试题练习及答案(三)

MySQL笔试题练习及答案(一)相关推荐

  1. MySQL笔试题(附答案)

    一.简答题 1.简述你们公司使用的MySQL版本,并说明具体小版本及GA时间? 5.6.38 5.7.20 2017-9-13 2.请介绍你熟悉的数据库的种类和代表产品名称? NoSQL:Redis ...

  2. mysql笔试题15道

    (93条消息) mysql笔试题18道_bubbleJessica的博客-CSDN博客 19.列出最低薪资大于1500的各种工作及从事此工作的全部雇员人数 SELECT JOB,COUNT(*) FR ...

  3. php如何对 mysql 中text类型拆分存入一个数组_PHP、Mysql笔试题

    PHP&MySQL 笔试题 一.选择题 1. php代表什么意思?() A.Hypertext Preprocessor(超文本预处理器) B.Hyperlink Preprocessor(超 ...

  4. 常见的php笔试题(附答案)搜集整理

    转载链接:http://www.yaojinbu.com/p/139.html 常见的php笔试题(附答案)搜集整理 1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在哪个预定义变量中?而 ...

  5. 东软 c语言笔试题,C语言笔试题及参考答案-东软集团(最新整理)

    <C语言笔试题及参考答案-东软集团(最新整理)>由会员分享,可在线阅读,更多相关<C语言笔试题及参考答案-东软集团(最新整理)(7页珍藏版)>请在人人文库网上搜索. 1.C 语 ...

  6. 邮储社招Java笔试题_2019年及历年中国邮政储蓄银行社招笔试题和参考答案6套

    2019年及历年中国邮政储蓄银行社招笔试题和参考答案6套 目录: 1.2016年中国邮政储蓄银行社会招聘笔试题和参考答案 2.2019年5月中国邮政储蓄银行社会招聘笔试题和参考答案 3.2019年中国 ...

  7. oracle面试题答案,Oracle面试题笔试题及参考答案

    一套Oracle面试题笔试题及参考答案 Oracle, 笔试, 面试 完成下列操作,写出相应的SQL语句 1.创建表空间neuspace,数据文件命名为neudata.dbf,存放在d:\data 目 ...

  8. 运营商计算机笔试题库及答案,计算机笔试题库及答案

    计算机的出现和逐步的普及,信息对整个社会的影响逐步提高到一种绝对重要的地位.以下是计算机笔试题库及答案,欢迎阅读. 一.选择题 1.世界上公认的第一台电子计算机诞生的年代是(  ). A)1943 B ...

  9. 计算机笔试知识题库及答案解析,计算机笔试题库及答案.docx

    计算机笔试题库及答案 计算机的出现和逐步的普及,信息对整个社会的影响 逐步提高到一种绝对重要的地位.以下是计算机笔试题库 及答案,欢迎阅读. 世界上公认的第一台电子计算机诞生的年代是. TOC \o ...

最新文章

  1. crontab 备份mysql数据库_crontab定时备份mySQL数据库
  2. lvs+keepalived 集群
  3. 一个完整的canvas画图
  4. zabbix—自动发现端口并监控
  5. XML反序列化出错,XML 文档(2, 2)中有错误
  6. mysql 性能问题_mysql性能问题
  7. 作者:司恩哲(1985-),男,现就职于中国人民银行征信中心数据部,主要研究方向为数据挖掘。...
  8. 20. Cookie 和 Session
  9. 使用jsp循环查询mysql_[JSP] 创建mysql数据库利用JSP进行数据库查询(1)
  10. java spring 区别_关于java:Spring和Spring MVC框架有什么区别
  11. 结构方程模型-中介效应检验(Amos)
  12. 【日用】获取pfx证书序列号
  13. 中国数码纺织印花染料行业运行态势与投资前景预测报告2022-2027
  14. 共享店铺系统如何设计?具体如何做?
  15. 2021年「博客之星」参赛博主:南浔Pyer
  16. 如何选择垃圾收集器?
  17. 俄罗斯方块游戏开发教程7:消除判断和处理
  18. 三星D828刷机教程,完全经典版(附图)
  19. 区块链塔防游戏NFT游戏开发
  20. lightroom初学

热门文章

  1. leetcode-SQL-1693. 每天的领导和合伙人
  2. 页面加载的几种方式和区别
  3. 2019中国计算机高引学者榜单出炉,164人入选,周志华位列第二
  4. 我与GPT关于音乐的对话1
  5. Python操作Excel新版本xlsx文件
  6. 智能 pos 机 密钥逻辑
  7. 中国温度控制单元(TCU)市场趋势报告、技术动态创新及市场预测
  8. 史上最全的NB-IoT知识
  9. 华为云低代码技术:让矿区管理“智变”,一览无遗
  10. 电脑系统安装视频教程