MySQL基础题初试

第一题

查找入职员工时间排名倒数第三的员工所有信息

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 WHERE
hire_date = (SELECT DISTINCT hire_date
FROM employees ORDER BY hire_date DESC
LIMIT 2, 1
);

思路解答:

查找倒数第三入职的员工用order by倒序排序,limit m,n表示从第n+1条开始,取n条数据;

第二题

查看各个部门当前(to_data=9999-01-01)领导当前薪水详情以及对应部门的编号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 s.emp_no,s.salary,s.from_date,s.to_date,d.dept_no
FROM
dept_manager AS d
JOIN
salaries AS s
ON
d.emp_no = s.emp_no
WHERE
s.to_date = '9999-01-01' AND d.to_date = '9999-01-01'
ORDER BY
d.emp_no ASC;

思路整理:
由于输出顺序是按照emp_no递增来的,所以最后需要用ASC做升序操作,由于两个表都有重复数据,所以两个表的to_data都要做限制

第三题

查找最晚入职员工的所有信息

// An highlighted block
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`));

解题代码

// An highlighted block
SELECT * FROM employees where hire_data=
(select max(hire_date) from  employees)

代码解答
查找最晚入职的员工可以用max函数来选择最晚入职的员工

  • 能针对具体的情景马上有思路,熟悉常见的排序语法
  • 简单的熟悉查询的语法,对于代码只能做到简单的理解

能力积分

一个简单的表格是这么创建的:

能力Value
单表查询-1
多表查询-1

最后就不删markdown我觉得很有意思的语法吧

设定内容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右

第一列第二列第三列
第一列文本居中第二列文本居右第三列文本居左

从开始写这边文章到写完这篇文章一共花了一小时左右,对于现在自己的写作能力打50分吧,很多东西都掌握的不熟练;但是决定开始就不要轻易的放弃,如果自己都瞧不起自己,那又怎么获得别人的认可;最后,又想起了小丑的主题曲--把孤独当做晚餐我却难以入眠,孤独是我的必修课,不能坚持写下去的话,那就一直单着吧……………………

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值