20 คำถามและคำตอบในการสัมภาษณ์ SQL Query ที่พบบ่อยที่สุด [สำหรับ Freshers & มีประสบการณ์]
เผยแพร่แล้ว: 2021-07-14เข้าร่วมการ สัมภาษณ์ SQL และสงสัยว่าคำถามและการอภิปรายทั้งหมดคืออะไร? ก่อนเข้าร่วมการสัมภาษณ์ SQL จะดีกว่าที่จะมีความคิดเกี่ยวกับประเภทของ คำถามสัมภาษณ์ SQL ที่จะถูกถามเพื่อให้คุณสามารถเตรียมคำตอบสำหรับพวกเขาทางจิตใจ
เพื่อช่วยคุณ ฉันได้สร้าง คำถามสัมภาษณ์ SQL อันดับต้น ๆ และคำแนะนำคำตอบ เพื่อทำความเข้าใจเชิงลึกและเจตนาที่แท้จริงของคำถามสัมภาษณ์ SQL มาเริ่มกันเลย.
Structured Query Language (SQL) เป็นภาษาการเขียนโปรแกรมที่ได้รับความนิยมและใช้กันอย่างแพร่หลายสำหรับการจัดการ การจัดการ และการสืบค้นข้อมูลในฐานข้อมูลเชิงสัมพันธ์ แม้ว่า SQL จะไม่ใช่ภาษาที่เร็วที่สุดในการสื่อสารกับฐานข้อมูลเชิงสัมพันธ์ แต่ก็เป็นวิธีที่มีประสิทธิภาพมากที่สุดในการจัดการข้อมูลที่มีโครงสร้างอย่างไม่ต้องสงสัย
เมื่อเทียบกับ API การอ่าน-เขียนแบบดั้งเดิม เช่น ISAM หรือ VSAM แล้ว SQL ได้ขยายข้อดีหลักสองประการ:
- ช่วยให้คุณเข้าถึงหลายระเบียนโดยใช้คำสั่งเดียว
- ช่วยลดความจำเป็นในการระบุวิธีเข้าถึงบันทึก (ไม่ว่าจะใช้ดัชนีหรือไม่) จากฐานข้อมูล
แบบสอบถาม SQL เป็นคำถามหรือคำขอสำหรับการเข้าถึงข้อมูลที่จัดเก็บไว้ในฐานข้อมูล ฐานข้อมูลเก็บข้อมูลในรูปแบบตาราง ดังนั้นจึงมีแถวและคอลัมน์ แม้ว่าฟิลด์ฐานข้อมูลจะสร้างคอลัมน์ที่ชี้นำฐานข้อมูลเกี่ยวกับข้อมูลที่สามารถจัดเก็บได้ แต่แถวนั้นก็มีข้อมูลอยู่ นี่คือชุดข้อมูลตัวอย่างที่เรียกว่า “tblAlbum” เพื่อนำสิ่งต่าง ๆ มาสู่มุมมอง:
แหล่งที่มา
มาสร้างแบบสอบถาม SQL โดยใช้ข้อมูลตัวอย่างนี้ เราจะเน้นที่การเลือกเฉพาะอัลบั้มที่มีคะแนน 9 ขึ้นไป ดังนั้นเราจึงขอให้แบบสอบถามสร้างรายชื่ออัลบั้มจากฐานข้อมูลที่มีคะแนนเท่ากับหรือมากกว่า 9 คุณจะใช้คำหลักที่เกี่ยวข้องเพื่อให้ได้คำตอบที่ต้องการ
คำหลักในสถานการณ์นี้คือ – SELECT (กำหนดเพื่อดึงข้อมูลจากฐานข้อมูล), FROM (ตารางเฉพาะที่มีข้อมูลดังกล่าว) และ WHERE (กำหนดเกณฑ์ในการเข้าถึงข้อมูล) เมื่อคุณใช้คำหลักเหล่านี้ แบบสอบถาม SQL ของคุณจะมีลักษณะดังนี้:
เลือกอัลบั้มชื่อจาก tblAlbums
WHERE เรตติ้ง >= 9;
ดังนั้น คุณกำลังเลือก (SELECT) ข้อมูลจาก (FROM) ตาราง “tblAlbums” โดยที่ (WHERE) การจัดอันดับอัลบั้มคือ 9 ขึ้นไป คำสั่ง WHERE อาจเป็นแบบธรรมดาหรือซับซ้อนเกินไปก็ได้หากมีตรรกะที่ซ้อนกันจำนวนมากที่เกี่ยวข้อง เมื่อเรียกใช้แบบสอบถาม คุณจะได้ผลลัพธ์ต่อไปนี้:
อัลบั้มTitle
ซิมโฟนีในดีไมเนอร์
หัวใจของกวี
เมื่อคุณมีความเข้าใจพื้นฐานแล้วว่าการสืบค้นข้อมูล SQL คืออะไรและทำงานอย่างไร มาดูคำถามสัมภาษณ์แบบสอบถาม SQL จำนวน 20 คำถามกัน!
ก่อนที่เราจะเริ่มต้นกับคำถามสัมภาษณ์แบบสอบถาม SQL ให้ตรวจสอบตารางอ้างอิงเหล่านี้ – การสืบค้นของเราจะยึดตามตารางเหล่านี้
ตารางข้อมูลพนักงาน:
EmpID | EmpFname | ชื่อนามสกุล | แผนก | โครงการ | ที่อยู่ | DOB | เพศ |
1 | โรหิต | คุปตะ | แอดมิน | P1 | เดลี | 02/12/1979 | ชาย |
2 | ราหุล | มหาจัน | แอดมิน | P2 | มุมไบ | 10/10/1986 | ชาย |
3 | โซเนีย | บาเนอร์จี | HR | P3 | ปูเน่ | 05/06/1983 | หญิง |
4 | อังคิตา | Kapoor | HR | P4 | เจนไน | 28/11/1983 | หญิง |
5 | สวาติ | Garg | HR | P5 | เดลี | 06/04/1991 | หญิง |
ตารางตำแหน่งพนักงาน:
EmpID | ตำแหน่งว่าง | วันที่เข้าร่วม | เงินเดือน |
1 | ผู้บริหาร | 01/04/2020 | 75000 |
2 | ผู้จัดการ | 03/04/2020 | 500,000 |
3 | ผู้จัดการ | 02/04/2020 | 150000 |
2 | เจ้าหน้าที่ | 02/04/2020 | 90000 |
1 | ผู้จัดการ | 03/04/2020 | 300,000 |
คำถามและคำตอบสัมภาษณ์แบบสอบถาม SQL
- เขียนแบบสอบถามเพื่อรับ EmpFname จากตาราง EmployeeInfo ตัวพิมพ์ใหญ่โดยใช้ชื่อนามแฝงเป็น EmpName
แบบสอบถามสำหรับเงื่อนไขนี้คือ:
SELECT UPPER(EmpFname) เป็น EmpName จาก EmployeeInfo;
- เขียนแบบสอบถามเพื่อรับจำนวนพนักงานที่ทำงานในแผนก 'HR'
นี่คือคำถามสำหรับความต้องการนี้:
เลือก COUNT (*) จาก EmployeeInfo โดยที่ Department = 'HR';
- คุณจะเขียนข้อความค้นหาใดเพื่อดึงวันที่ปัจจุบัน
ในการดึงข้อมูลวันที่ปัจจุบัน คุณสามารถเขียนแบบสอบถามนี้ในเซิร์ฟเวอร์ SQL:
เลือกรับ ();
ในการดึงข้อมูลวันที่ปัจจุบัน คุณสามารถเขียนแบบสอบถามนี้ใน MySQL:
เลือก SYSTDATE();
- เขียนแบบสอบถามเพื่อดึงเฉพาะชื่อสถานที่ (สตริงก่อนวงเล็บเหลี่ยม) จากคอลัมน์ที่อยู่ของตาราง EmployeeInfo
คุณสามารถใช้ฟังก์ชัน MID ใน MySQL เพื่อสร้างแบบสอบถามต่อไปนี้:
เลือก MID(Address, 0, LOCATE('(',Address)) จาก EmployeeInfo;
คุณสามารถใช้ SUBSTRING เพื่อสร้างแบบสอบถามต่อไปนี้:
เลือก SUBSTRING(Address, 1, CHARINDEX('(',Address)) จาก EmployeeInfo;
อ่านเพิ่มเติม: SQL สำหรับวิทยาศาสตร์ข้อมูล: ทำไมต้องเป็น SQL
- เขียนแบบสอบถามเพื่อสร้างตารางใหม่ที่มีการคัดลอกข้อมูลและโครงสร้างจากตารางอื่น
คุณสามารถใช้คำสั่ง SELECT INTO เพื่อสร้างแบบสอบถามต่อไปนี้:
เลือก * เป็น NewTable จาก EmployeeInfo โดยที่ 1 = 0;
คุณสามารถใช้คำสั่ง CREATE ใน MySQL เพื่อสร้างแบบสอบถามต่อไปนี้:
สร้างตาราง NewTable เป็น SELECT * จาก EmployeeInfo;
- เขียนแบบสอบถามเพื่อแสดงชื่อพนักงานที่ขึ้นต้นด้วย 'S'
นี่คือแบบสอบถามที่คุณต้องเขียนเพื่อให้ได้ชื่อของพนักงานที่มีชื่อขึ้นต้นด้วย'S':
เลือก * จาก EmployeeInfo โดยที่ EmpFname LIKE 'S%';
- เขียนแบบสอบถามเพื่อเรียกระเบียน N ด้านบน
คุณสามารถเขียนแบบสอบถามโดยใช้คำสั่ง TOP ใน SQL Server:
เลือก TOP N * จากตำแหน่งพนักงาน เรียงตามเงินเดือน DESC;
คุณยังสามารถสร้างแบบสอบถามโดยใช้คำสั่ง LIMIT ใน MySQL:
เลือก * จาก EmpPosition เรียงลำดับตามเงินเดือน DESC LIMIT N;
- เขียนแบบสอบถามเพื่อรับบันทึกที่เกี่ยวข้องจากตาราง EmployeeInfo ที่แผนกสั่งซื้อจากน้อยไปมาก และ EmpLname ตามลำดับจากมากไปน้อย
คุณต้องใช้คำสั่ง ORDER BY ใน SQL เพื่อจุดประสงค์นี้
SELECT * จากข้อมูลพนักงาน ORDER BY แผนก asc, EmpFname desc;
- เขียนแบบสอบถามเพื่อดูรายละเอียดของพนักงานที่ชื่อ EmpFname ลงท้ายด้วย 'A'
คุณสามารถใช้ตัวดำเนินการ LIKE ใน SQL เพื่อสร้างแบบสอบถามสำหรับปัญหานี้:
เลือก * จาก EmployeeInfo โดยที่ EmpFname LIKE '____a';
10.สร้างแบบสอบถามเพื่อดึงรายละเอียดพนักงานที่มี “DELHI” เป็นที่อยู่
เลือก * จาก EmployeeInfo โดยที่ที่อยู่เช่น 'DELHI%';
อ่าน: เครื่องมือวิทยาศาสตร์ข้อมูล 9 อันดับแรกในปี 2020
- เขียนแบบสอบถามเพื่อเรียกพนักงานทุกคนที่ดำรงตำแหน่งผู้บริหารด้วย
คู่มือคำถามและคำตอบสำหรับการสัมภาษณ์ SQL จะไม่สมบูรณ์หากไม่มีคำถามนี้
นี่คือคำถามเพื่อให้ได้พนักงานที่ดำรงตำแหน่งผู้บริหาร:
เลือก E.EmpFname, E.EmpLname, P.EmpPosition
จากข้อมูลพนักงาน E เข้าร่วมพนักงานตำแหน่ง P ON
E.EmpID = P.EmpID และ P.EmpPosition ใน ('ผู้จัดการ');
- สร้างแบบสอบถามเพื่อสร้างระเบียนแรกและระเบียนสุดท้ายจากตาราง EmployeeInfo
หนึ่งในคำถามสัมภาษณ์ SQL ที่พบบ่อยที่สุด
นี่คือแบบสอบถามเพื่อดึงข้อมูลระเบียนแรกจากตาราง EmployeeInfo:
เลือก * จาก EmployeeInfo โดยที่ EmpID = (เลือก MIN (EmpID) จาก EmployeeInfo);
ต่อไปนี้คือแบบสอบถามเพื่อดึงข้อมูลระเบียนล่าสุดจากตาราง EmployeeInfo:
เลือก * จาก EmployeeInfo โดยที่ EmpID = (เลือก MAX (EmpID) จาก EmployeeInfo);
- สร้างคิวรีเพื่อตรวจสอบว่าค่าที่ส่งผ่านไปยังคิวรีเป็นไปตามรูปแบบวันที่ของตาราง EmployeeInfo และ EmployeePosition
คุณสามารถใช้ฟังก์ชัน IsDate() ใน SQL เพื่อตรวจสอบว่าค่าที่ส่งผ่านเป็นไปตามรูปแบบที่ระบุหรือไม่ มันส่งกลับ 1(จริง) หรือ 0(เท็จ) ตามลำดับ แบบสอบถามจะมีลักษณะดังนี้:
เลือก ISDATE('01/04/2020') เป็น “MM/DD/YY”;
การเรียกใช้แบบสอบถามนี้จะคืนค่า 0 เนื่องจากค่าที่ส่งไม่ตรงกับรูปแบบที่ระบุ
- สร้างแบบสอบถามเพื่อรับพนักงานแสดงที่มีเงินเดือนเท่ากับหรือมากกว่า 150000
คำถามสำหรับคำขอนี้จะเป็น:
เลือก EmpName จากพนักงานที่เงินเดือน>=150000;
- เขียนแบบสอบถามเพื่อดึงปีโดยใช้วันที่
คุณสามารถรับปีจากวันที่ในเซิร์ฟเวอร์ SQL โดยเรียกใช้แบบสอบถามต่อไปนี้:
เลือกปี(GETDATE()) เป็น “ปี”;
- สร้างแบบสอบถาม SQL เพื่อดึงข้อมูล EmpPostion และเงินเดือนทั้งหมดที่จ่ายสำหรับตำแหน่งพนักงานแต่ละตำแหน่ง
คำถามสำหรับคำขอนี้คือ:
เลือก EmpPosition, SUM (เงินเดือน) จาก EmployeePosition GROUP BY EmpPosition;
- เขียนแบบสอบถามเพื่อค้นหาระเบียนที่ซ้ำกันจากตาราง
หนึ่งในคำถามที่พบบ่อยที่สุดในคำถามสัมภาษณ์ SQL และคู่มือคำตอบ
เลือก EmpID, EmpFname, แผนก COUNT(*)
จาก EmployeeInfo GROUP BY EmpID, EmpFname, Department
มี COUNT(*) > 1;
- สร้างแบบสอบถามเพื่อดึงเงินเดือนสูงสุดอันดับสามจากตาราง EmpPosition
เลือก TOP 1 เงินเดือน
จาก(
เลือก TOP 3 เงินเดือน
จาก Employee_table
เรียงตามเงินเดือน DESC) AS emp
เรียงตามเงินเดือน ASC;
- เขียนแบบสอบถาม SQL เพื่อค้นหาระเบียนคู่และคี่ในตาราง EmployeeInfo
คุณต้องใช้ฟังก์ชัน MOD() เพื่อดึงระเบียนคู่และคี่จากตาราง สำหรับระเบียนที่เท่ากัน แบบสอบถามจะเป็น:
เลือก EmpID จาก (เลือก rowno, EmpID จาก EmployeeInfo) โดยที่ MOD (rowno,2) = 0;
สำหรับบันทึกคี่ แบบสอบถามจะเป็น:
เลือก EmpID จาก (เลือก rowno, EmpID จาก EmployeeInfo) โดยที่ MOD (rowno,2) = 1;
- สร้างแบบสอบถามเพื่อดึงรายชื่อพนักงานในแผนกเดียวกัน
นี่คือแบบสอบถามสำหรับคำขอนี้:
เลือก DISTINCT E.EmpID, E.EmpFname, E.DepartmentFROM EmployeeInfo E, พนักงาน E1
โดยที่ E.Department = E1.Department และ E.EmpID != E1.EmpID;
เรียนรู้ หลักสูตรซอฟต์แวร์ออนไลน์ จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว
บทสรุป
ด้วยเหตุนี้ เราจึงมาถึงจุดสิ้นสุดของรายการคำถามสัมภาษณ์แบบสอบถาม SQL ของเรา เราหวังว่าการสืบค้นข้อมูลเหล่านี้จะช่วยให้คุณมีแนวคิดที่ยุติธรรมเกี่ยวกับรูปแบบการสืบค้น SQL มาตรฐานและวิธีสร้างการสืบค้น SQL ยิ่งคุณฝึกฝนมากเท่าไร คุณก็จะยิ่งมีความสามารถในการเขียนแบบสอบถาม SQL เพื่อเข้าถึงและจัดการข้อมูลในตารางข้อมูลได้ดียิ่งขึ้น
หากคุณอยากที่จะพัฒนาความรู้ SQL ของคุณ และเพิ่มเติมเกี่ยวกับการพัฒนา full stack ให้ตรวจสอบ IIIT-B & upGrad's PG Diploma in Full Stack Software Development ซึ่งสร้างขึ้นสำหรับมืออาชีพที่ทำงานและมีกรณีศึกษาและโครงการมากกว่า 10+ ภาคปฏิบัติ การประชุมเชิงปฏิบัติการ การให้คำปรึกษากับผู้เชี่ยวชาญในอุตสาหกรรม ตัวต่อตัวกับที่ปรึกษาในอุตสาหกรรม การเรียนรู้มากกว่า 400 ชั่วโมงและความช่วยเหลือด้านงานกับบริษัทชั้นนำ