招聘面試—關(guān)于Mysql的一點(diǎn)兒總結(jié)

最近半年,作為部門(mén)的面試官之一,參加了許多次招聘面試。數(shù)據(jù)庫(kù)知識(shí),尤其是對(duì)數(shù)據(jù)的增刪改查等操作是軟件測(cè)試人員的基本功,是面試過(guò)程中的必考項(xiàng)。在這其中,有一道題,是我每次面試的必考題。

題目

以Mysql為例,假設(shè)有一張數(shù)據(jù)庫(kù)表user_info,第一列是id,用作唯一標(biāo)識(shí);第二列是user_name,即用戶(hù)姓名;第三列是some_data,這是一列存儲(chǔ)某某數(shù)值的列,比如用戶(hù)的年收入、用戶(hù)的年齡、用戶(hù)完成的訂單數(shù)等等。需求是,找出這張表中,按第三列的數(shù)值降序排列,排在前5的所有用戶(hù)記錄。

題解

顯然,這道題中除了有基本的select語(yǔ)句、還有降序排序的基本用法,以及l(fā)imit用法,因此,稍微有些基礎(chǔ)的人便可以給出答案:

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

即使這道題沒(méi)有涉及什么難點(diǎn),但精準(zhǔn)回答率也并不高(就我面試的情況,約為60%)。然而,寫(xiě)出如上答案還不算完,我會(huì)再次向候選人描述問(wèn)題并確認(rèn)是否回答完畢。

如果候選人表示回答完畢不需要修正,我會(huì)給出提示和引導(dǎo)——答案是否完整?是否遺漏了某些用戶(hù)記錄?這時(shí),極個(gè)別的候選人會(huì)意識(shí)到數(shù)值有重復(fù)的情況。這已經(jīng)不單單是Mysql的面試題了,還涉及到需求理解能力、邏輯思維能力等。

無(wú)論是否意識(shí)得到,我都會(huì)再進(jìn)一步明確地提問(wèn),在考慮重復(fù)數(shù)據(jù)的情況下,按第三列的數(shù)值降序排列,找出排在前5的所有用戶(hù)的記錄。

必然地,能夠?qū)懗鰜?lái)的就更少了,這里給出一個(gè)答案——先找出排在第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;  
  • 括號(hào)中的子句的作用是找出按第三列倒序排序并去重后的第5個(gè)值。
  • 括號(hào)外的order by some_data desc是為了讓最終輸出的結(jié)果再次按第3列降序排序。

可見(jiàn),除了上面涉及到的知識(shí)點(diǎn),此時(shí)的答案還涉及了子查詢(xún),distinct關(guān)鍵字。

總結(jié)

這種穿插在面試過(guò)程中,問(wèn)題難度有遞進(jìn)的筆試題,不僅僅是一道非黑即白式的知識(shí)問(wèn)答,它更是一個(gè)情景對(duì)話。在這個(gè)過(guò)程中,可以考察到候選人對(duì)基本知識(shí)的掌握程度,還可以考察到他們對(duì)需求的理解能力、問(wèn)題的分析能力等。因此,這樣的題目比單一去考數(shù)據(jù)庫(kù)各個(gè)知識(shí)點(diǎn)的題目要有效地多。

相關(guān)知識(shí)點(diǎn)

  • mysql
    • select基本語(yǔ)法
    • order by
    • limit用法
    • 子句語(yǔ)法
    • distinct
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,139評(píng)論 25 708
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類(lèi)相關(guān)的語(yǔ)法,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 34,734評(píng)論 18 399
  • 淡淡的藍(lán)天 不知名的冬鳥(niǎo) 飛翔在天地間 融化中的皚皚白雪 訴說(shuō)著冬去春來(lái) 遠(yuǎn)望曠野 樹(shù)是土黃色 地是土黃色 安插在...
    希波克林閱讀 206評(píng)論 0 0
  • ——然而我還是覺(jué)得讀書(shū)多是有意義的。 昨天下午在廁所跟同事談起讀書(shū)的話題,后來(lái)她說(shuō)到其實(shí)讀大學(xué)還不如初中畢業(yè)就出來(lái)...
    全茵為你閱讀 920評(píng)論 0 0

友情鏈接更多精彩內(nèi)容