美文网首页互联网招聘软件测试技能栈软件测试
招聘面试—关于Mysql的一点儿总结

招聘面试—关于Mysql的一点儿总结

作者: 软件测试技能栈 | 来源:发表于2018-03-10 21:25 被阅读119次

最近半年,作为部门的面试官之一,参加了许多次招聘面试。数据库知识,尤其是对数据的增删改查等操作是软件测试人员的基本功,是面试过程中的必考项。在这其中,有一道题,是我每次面试的必考题。

题目

以Mysql为例,假设有一张数据库表user_info,第一列是id,用作唯一标识;第二列是user_name,即用户姓名;第三列是some_data,这是一列存储某某数值的列,比如用户的年收入、用户的年龄、用户完成的订单数等等。需求是,找出这张表中,按第三列的数值降序排列,排在前5的所有用户记录

题解

显然,这道题中除了有基本的select语句、还有降序排序的基本用法,以及limit用法,因此,稍微有些基础的人便可以给出答案:

select * from user_info order by some_data desc limit 0,5;

即使这道题没有涉及什么难点,但精准回答率也并不高(就我面试的情况,约为60%)。然而,写出如上答案还不算完,我会再次向候选人描述问题并确认是否回答完毕。

如果候选人表示回答完毕不需要修正,我会给出提示和引导——答案是否完整?是否遗漏了某些用户记录?这时,极个别的候选人会意识到数值有重复的情况。这已经不单单是Mysql的面试题了,还涉及到需求理解能力、逻辑思维能力等。

无论是否意识得到,我都会再进一步明确地提问,在考虑重复数据的情况下,按第三列的数值降序排列,找出排在前5的所有用户的记录

必然地,能够写出来的就更少了,这里给出一个答案——先找出排在第5的第三列的值,再把大于等于该值的记录降序输出即可。

select * from user_info where some_data >= 
(select distinct some_data from user_info order by some_data desc limit 4,1)   
order by some_data desc;  
  • 括号中的子句的作用是找出按第三列倒序排序并去重后的第5个值。
  • 括号外的order by some_data desc是为了让最终输出的结果再次按第3列降序排序。

可见,除了上面涉及到的知识点,此时的答案还涉及了子查询,distinct关键字。

总结

这种穿插在面试过程中,问题难度有递进的笔试题,不仅仅是一道非黑即白式的知识问答,它更是一个情景对话。在这个过程中,可以考察到候选人对基本知识的掌握程度,还可以考察到他们对需求的理解能力、问题的分析能力等。因此,这样的题目比单一去考数据库各个知识点的题目要有效地多。

相关知识点

  • mysql
    • select基本语法
    • order by
    • limit用法
    • 子句语法
    • distinct

相关文章

  • 招聘面试—关于Mysql的一点儿总结

    最近半年,作为部门的面试官之一,参加了许多次招聘面试。数据库知识,尤其是对数据的增删改查等操作是软件测试人员的基本...

  • MySQL DBA面试题总结

    总结了招聘MySQL DBA的第一轮基础面试题目,欢迎大家补充: 1, mysql的复制原理以及流程。 (1)...

  • 面试题|JAVA|数据库

    title: Mysql复习总结categories: 秋招面试tags: 面试 mysql

  • 2020-07-03

    MySQL索引原理 在互联网行业,常用的关系型数据库是MySQL,所以在招聘过程中,面试官一般都会问些关于MySQ...

  • MySQL人人都会用索引,原理你知道吗?

    在互联网行业,常用的关系型数据库是MySQL,所以在招聘过程中,面试官一般都会问些关于MySQL的问题,比如MyS...

  • MySQL索引原理

    在互联网行业,常用的关系型数据库是MySQL,所以在招聘过程中,面试官一般都会问些关于MySQL的问题,比如MyS...

  • 一开工,就遇到上亿(MySQL)大表的优化,我的天..

    推荐阅读:面试被问MySQL总回答不好:总结100道MySQL面试题和21题MySQL性能优化 背景 XX实例(一...

  • Mysql相关

    MySQL 万字精华总结 + 面试100 问,吊打面试官绰绰有余

  • 面试邀约的正确打开方式

    今天,招聘小白决定写一下关于面试邀约的一些小心得,权当是对工作的一个总结吧。 1.面试邀约的方式 (1)电话邀约。...

  • 高效招聘与面试

    本文是对AMA高效招聘与面试培训的总结。面试是招聘的一部分,要做好一场面试,需要了解面试的流程和每个环节要注意的问...

网友评论

  • 7b0bc4355ae6:我就不回答结果了,我对你的题目比较感兴趣。第三列可以存储这么多不同信息,那么问题来了,这种表实际上有什么用呢?是不是加一个字段区分一下第三列是存的时候什么呢?
    软件测试技能栈:@我_b8f2 只是举个例子,没有实际用处。不必在意它存的是什么,只需要知道是数值,可重复即可。

本文标题:招聘面试—关于Mysql的一点儿总结

本文链接:https://www.haomeiwen.com/subject/vowbfftx.html