招聘面試 關於Mysql的一點兒總結

2021-08-16 17:09:03 字數 1258 閱讀 3975

最近半年,作為部門的面試官之一,參加了許多次招聘面試。資料庫知識,尤其是對資料的增刪改查等操作是軟體測試人員的基本功,是面試過程中的必考項。在這其中,有一道題,是我每次面試的必考題。

以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;

可見,除了上面涉及到的知識點,此時的答案還涉及了子查詢,distinct關鍵字。

這種穿插在面試過程中,問題難度有遞進的筆試題,不僅僅是一道非黑即白式的知識問答,它更是乙個情景對話。在這個過程中,可以考察到候選人對基本知識的掌握程度,還可以考察到他們對需求的理解能力、問題的分析能力等。因此,這樣的題目比單一去考資料庫各個知識點的題目要有效地多。

一點兒小結

學習 c primer 看到的,做點兒筆記吧 1 通常,函式不應該有vector或其他標準庫容器型別的形參。呼叫含有普通的非引用vector形參的函式會複製vector的每乙個元素,所以,從避免複製vector的角度出發,應考慮將形參宣告為引用。而實際上,c 程式設計師傾向於通過傳遞指向容器中需要處...

最近面試人的一點兒感受

最近面試人的一點兒感受 3月份來現在的公司,轉眼間已經8個多月了,來這邊以後逐漸接觸到面試別人的機會,一路下來也應該面試了20,30個人了吧,今天就寫點兒這段時間面試人的感受。我是做ios開發中,所以面試的候選人基本上都是和ios相關的,當然也涉及到非技術的部分。我在面試候選人時基本上可以會分為以下...

C char 的一點兒理解

理解是就是char 相當於字串陣列,我以往糾結於該用 arr還是 arr還是 arr 還是 arr 對於 arr而言 arr代表陣列的最開頭,也就是第乙個字串的內容。arr代表什麼,不知道,這麼用會報錯。簡單的來說arr 0 代表第乙個字串的值,實際指向的整個 arr的首位址,如果用printf之類...