【面试必刷】Mysql编程题:第三期

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 【面试必刷】Mysql编程题:第三期

Test 1


有一个员工表,employees 简况如下:

image.png

有一个部门表,dept_emp 简况如下:

image.png

请你查找所有已经分配部门的员工的 last_namefirst_name 以及 dept_no,也包括暂时没有分配具体部门的员工,以上例子如下:

image.png


解题思路


考察知识点

左联结,右联结。

根据题目的要求查询的结果集中要包含所有员工的信息,那么再将表进行连接时就需要注意主从表的选择,应将 employees 作为主表,即保留 employees 表中的全部数据,即便在从表中没有对应的数据。下面是 左联结 的解法。


SELECT e.last_name, e.first_name, d.dept_no
FROM employees AS e LEFT JOIN dept_emp AS d
ON e.emp_no = d.emp_no
复制代码

右联结

SELECT e.last_name, e.first_name, d.dept_no
FROM dept_emp AS d RIGHT JOIN employees AS e
ON e.emp_no = d.emp_no
复制代码


Test 2


有一个薪水表,salaries 简况如下:

image.png

请你查找薪水记录超过 15 次的员工号 emp_no 以及其对应的记录次数 t,以上例子输出如下:

image.png


解题思路


考察知识点

GROUP BYHAVING

根据题目要求,首先明确查询的结果中包含 emp_no,以及变动次数 t 。使用 count 函数和 group by 分组可以统计变动次数。

SELECT emp_no, count(salary) t
FROM salaries
GROUP BY emp_no
HAVING t > 15
复制代码


拓展:上面只统计了薪水记录超过15的员工信息,如果要统计涨薪超过 15 次员工 emp_no 和次数 t,那么就要注意,真正的涨薪都是正数,并且第二次开始才算一次涨幅,所以可以参考下面的写法。

SELECT s1.emp_no, COUNT(s1.salary) AS t
FROM salaries AS s1 INNER JOIN salaries AS s2
ON s1.emp_no = s2.emp_no AND s1.to_date = s2.from_date
WHERE s1.salary < s2.salary
GROUP BY s1.emp_no
HAVING t > 15



相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
2
分享
相关文章
美团面试:MySQL为什么 不用 Docker部署?
45岁老架构师尼恩在读者交流群中分享了关于“MySQL为什么不推荐使用Docker部署”的深入分析。通过系统化的梳理,尼恩帮助读者理解为何大型MySQL数据库通常不使用Docker部署,主要涉及性能、管理复杂度和稳定性等方面的考量。文章详细解释了有状态容器的特点、Docker的资源隔离问题以及磁盘IO性能损耗,并提供了小型MySQL使用Docker的最佳实践。此外,尼恩还介绍了Share Nothing架构的优势及其应用场景,强调了配置管理和数据持久化的挑战。最后,尼恩建议读者参考《尼恩Java面试宝典PDF》以提升技术能力,更好地应对面试中的难题。
Crack Coder:在线面试“AI外挂”!编程问题秒出答案,完全绕过屏幕监控,连录屏都抓不到痕迹!
Crack Coder 是一款开源的隐形 AI 辅助工具,专为技术面试设计,支持多种编程语言,提供实时编程问题解决方案,帮助面试者高效解决问题。
193 14
京东面试:MySQL MVCC是如何实现的?如何通过MVCC实现读已提交、可重复读隔离级别的?
1.请解释什么是MVCC,它在数据库中的作用是什么? 2.在MySQL中,MVCC是如何实现的?请简述其工作原理。 3.MVCC是如何解决读-写和写-写冲突的? 4.在并发环境中,当多个事务同时读取同一行数据时,MVCC是如何保证每个事务看到的数据版本是一致的? 5.MVCC如何帮助提高数据库的并发性能?
京东面试:MySQL MVCC是如何实现的?如何通过MVCC实现读已提交、可重复读隔离级别的?
数据库运维:mysql 数据库迁移方法-mysqldump
本文介绍了MySQL数据库迁移的方法与技巧,重点探讨了数据量大小对迁移方式的影响。对于10GB以下的小型数据库,推荐使用mysqldump进行逻辑导出和source导入;10GB以上可考虑mydumper与myloader工具;100GB以上则建议物理迁移。文中还提供了统计数据库及表空间大小的SQL语句,并讲解了如何使用mysqldump导出存储过程、函数和数据结构。通过结合实际应用场景选择合适的工具与方法,可实现高效的数据迁移。
136 1
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!

热门文章

最新文章

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问