#数据库SQL实战#【Day1】

--------------------------------------------------
学习用,欢迎讨论。
--------------------------------------------------
查看详细题目的方法:
复制以下题目内容;
Ctrl+F查找刚刚复制的题目即可。
--------------------------------------------------
题目1:查找最晚入职员工的所有信息
select * from employees order by hire_date desc limit 0,1
字面意思按照hire_date进行降序排列,用limit选择第一个员工。
但是表中的入职时间精确到日期,可能存在很多同一天入职的员工,那么“最晚入职”就没有一个准确的定义,所以有如下语句:
select * from employees where hire_date = (select max(hire_date) from employees)
我认为第一个语句符合题意,第二个语句符合表中字段的特点。两个都能通过测试
--------------------------------------------------
题目2:查找入职员工时间排名倒数第三的员工所有信息
select * from employees order by hire_date desc limit 2,1
同题目1,这是符合字面意思的写法
看到很多人提到如下语句
select * from employees where hire_date = (select hire_date from employees order by hire_date desc limit 2,1)
选出了和按照hire_date降序排列排在第三的员工同一天入职的所有员工。
--------------------------------------------------
题目3:查找各个部门当前领导当前薪水详情以及其对应部门编号dept_no
select s.emp_no, s.salary, s.from_date, s.to_date, dm.dept_no
from salaries as s inner join dept_manager as dm
on s.emp_no = dm.emp_no
where s.to_date='9999-01-01'
and dm.to_date='9999-01-01'
本题按照题意选择的主表是salaries,如果按照如下语句,主表选择dept_manager将会提示不通过【为什么呢?】
select dm.emp_no, s.salary, s.from_date, dm.to_date, dm.dept_no
from dept_manager as dm inner join salaries as s
on dm.emp_no = s.emp_no
where dm.to_date='9999-01-01'
and s.to_date='9999-01-01' 
【!】主意:salaries的from_date是当前薪水的开始时间,而dept_manager的from_date是当上部门经理的开始时间,所以两个表的from_date是不一样的。当上部门经理之后,可能还会有很多次的加薪机会。
--------------------------------------------------
题目4:查找所有已经分配部门的员工的last_name和first_name
select e.last_name, e.first_name, de.dept_no
from employees as e inner join dept_emp as de
on e.emp_no = de.emp_no
两个表选择任何一个做主表都能通过测试。
--------------------------------------------------
全部评论
手动赞
点赞 回复 分享
发布于 2018-09-20 15:18

相关推荐

1. 多做一劳永逸的事情。很多事情一次学会基本可以大学四年都不再为这类事情发愁。小的比如学会markdown,记笔记就变得方便快捷;大的比如自己经常要发布上线服务,就花几天搭建一个集群。2. 时刻具备3-7天掌握一项技能的心理准备。无论是学科竞赛、期末考试,还是准备实习、秋招,很多时候当你需要快速运用某项技能做事的时候,不会有那么多时间给你准备,这时候就需要速成。3. 加入/组建一个技术团体,社团/面试群/社群/技术博主的圈子,并且养成水群习惯。只有你参与并融入你正在追求的事业的氛围里,你才能保持动力去做一件事。推荐一个博主【程序员牛肉】的圈子:https://pd.qq.com/s/daelsgft54. 尽早明确自己距离目标还差什么。很多人学习的非常努力,但是方向不明确。最简单的例子,很多我帮忙找实习秋招的朋友,简历都过不了,却花大把时间在背八股上。面试的过程是阶段性的,要考虑的先是有面试机会、再是怎么面试。5. 思维不要被约束。后端语言java、c++可以,golang也可以;项目苍穹外卖、黑马点评可以,github上的高star项目也可以;数据库用mysql、redis可以,用postgresql也可以;项目里的ai模块用rag、mcp可以,最简单的function call也可以。帮很多人看简历问题的时候,很多东西都是硬写上去的,项目是自己的,不是非要和网上大流一致才是好项目。
想进开水团喝开水:杭电也是双非是吧
点赞 评论 收藏
分享
评论
2
18
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务