คำถามสัมภาษณ์สำหรับนักพัฒนา SQL: คำถาม & คำตอบเกี่ยวกับการสัมภาษณ์ SQL ทั่วไป- ตอนที่ 3

ใน SQL คุณเคยใช้ประเภทใด joins และอธิบายวิธีการทำงาน

คำตอบ:

  • INNER JOIN: ส่งกลับแถวที่มีข้อมูลที่ตรงกันจากทั้งสองตาราง
  • LEFT JOIN: ส่งกลับแถวทั้งหมดจากตารางด้านซ้ายและแถวที่ตรงกันจากตารางด้านขวา
  • RIGHT JOIN: คืนค่าแถวทั้งหมดจากตารางด้านขวาและแถวที่ตรงกันจากตารางด้านซ้าย
  • FULL JOIN: ส่งกลับแถวทั้งหมดจากทั้งสองตาราง รวมทั้งแถวที่ไม่ตรงกัน

 

อธิบายแนวคิดของกรดใน SQL และบทบาทในการจัดการธุรกรรม

คำตอบ: ACID ย่อมาจาก Atomicity, Consistency, Isolation, Durability. คุณสมบัติเหล่านี้เป็นคุณสมบัติที่จำเป็นในการจัดการธุรกรรมใน SQL:

  • Atomicity ตรวจสอบให้แน่ใจว่าธุรกรรมได้รับการประมวลผลอย่างสมบูรณ์หรือไม่ประมวลผลเลย
  • Consistency ตรวจสอบให้แน่ใจว่าข้อมูลต้องเป็นไปตามกฎ ข้อจำกัด และเงื่อนไขที่กำหนดไว้
  • Isolation ทำให้มั่นใจได้ว่าธุรกรรมที่เกิดขึ้นพร้อมกันจะไม่รบกวนซึ่งกันและกัน
  • Durability ทำให้มั่นใจได้ว่าเมื่อการทำธุรกรรมเสร็จสิ้น การเปลี่ยนแปลงในฐานข้อมูลจะได้รับการบันทึกอย่างปลอดภัยและถาวร

 

ความแตกต่างระหว่าง ROW_NUMBER(), RANK(), DENSE_RANK() ฟังก์ชันใน SQL คืออะไร?

คำตอบ: ROW_NUMBER(), RANK(), DENSE_RANK() ทั้งหมดใช้สำหรับกำหนดหมายเลขแถวในผลลัพธ์ของคิวรี แต่มีความแตกต่างดังต่อไปนี้:

  • ROW_NUMBER(): กำหนดตัวเลขต่อเนื่องให้กับแถวในผลลัพธ์คิวรี โดยไม่พิจารณาถึงรายการที่ซ้ำกัน
  • RANK(): กำหนดตัวเลขให้กับแถวในผลการสืบค้นและข้ามหมายเลขถัดไปในกรณีที่เสมอกัน
  • DENSE_RANK(): กำหนดตัวเลขให้กับแถวในผลการสืบค้นและไม่ข้ามหมายเลขถัดไปในกรณีที่เสมอกัน

 

วิธีการใช้งาน window functions ใน SQL พร้อมยกตัวอย่าง

คำตอบ: Window functions อนุญาตให้ทำการคำนวณในชุดของแถวที่เกี่ยวข้องโดยไม่เปลี่ยนผลลัพธ์ของคิวรีหลัก ตัวอย่างเช่น เราสามารถใช้ฟังก์ชันหน้าต่างเพื่อคำนวณผลรวมที่กำลังทำงานอยู่หรือดึงแถว N แถวบนสุดภายในชุดผลลัพธ์

SELECT ProductID, UnitPrice,   
       SUM(UnitPrice) OVER(ORDER BY ProductID) AS RunningTotal  
FROM Products;  

 

วิธีใช้ Regular Expression ใน SQL สำหรับการจับคู่รูปแบบ

คำตอบ: นิพจน์ทั่วไปใน SQL ใช้สำหรับการค้นหารูปแบบข้อความที่ซับซ้อน มักใช้กับ LIKE ตัวดำเนินการหรือฟังก์ชันเช่น REGEXP_LIKE(ใน Oracle) หรือ REGEXP_MATCHES(ใน PostgreSQL)

SELECT * FROM Employees WHERE LastName LIKE '%son%';

 

วิธีใช้ฟังก์ชัน JSON ใน SQL เพื่อทำงานกับข้อมูล JSON

คำตอบ: ฟังก์ชัน JSON ใน SQL ช่วยให้สามารถสอบถาม แทรก อัปเดต และลบข้อมูลในรูปแบบ JSON ในฐานข้อมูลได้

ตัวอย่างเช่น เราสามารถใช้ฟังก์ชันอย่าง JSON_VALUE, JSON_QUERY, JSON_MODIFY(ใน SQL Server) หรือตัวดำเนินการ เช่น ->, ->>, #>, #>> ฯลฯ(ใน PostgreSQL) เพื่อจัดการคุณสมบัติ JSON

SELECT JSON_VALUE(CustomerInfo, '$.Name') AS CustomerName  
FROM Customers;  

 

เทคนิคขั้นสูงสำหรับการเพิ่มประสิทธิภาพการสืบค้น SQL และการปรับแต่งประสิทธิภาพฐานข้อมูล

คำตอบ: เพื่อเพิ่มประสิทธิภาพการสืบค้น SQL และประสิทธิภาพของฐานข้อมูล เราสามารถใช้เทคนิคต่างๆ เช่น:

  • การใช้ดัชนีสำหรับคอลัมน์ที่สอบถามบ่อย
  • การเพิ่มประสิทธิภาพ JOIN และ WHERE ข้อกำหนดสำหรับการดึงข้อมูลอย่างมีประสิทธิภาพ
  • ใช้ฟังก์ชันหน้าต่างและการแบ่งหน้าเมื่อจำเป็น
  • หลีกเลี่ยง SELECT * เพื่อดึงเฉพาะคอลัมน์ที่จำเป็น
  • การใช้คำใบ้ในบางกรณี
  • สร้างความมั่นใจในการปรับข้อมูลให้เป็นมาตรฐานและการลบรายการที่ซ้ำกัน
  • ใช้เครื่องมือตรวจสอบประสิทธิภาพเพื่อติดตามและปรับแต่งฐานข้อมูล

 

อธิบายวิธีการใช้ SET คำสั่ง (UNION, INTERSECT, EXCEPT) ใน SQL

คำตอบ: SET การดำเนินการ (UNION, INTERSECT, EXCEPT) ใช้เพื่อรวมและจัดการชุดผลลัพธ์ของข้อความค้นหาต่างๆ

  • UNION: รวมผลลัพธ์ของการค้นหาสองรายการขึ้นไปเป็นชุดข้อมูลเดียวและลบรายการที่ซ้ำกัน
  • INTERSECT: ส่งกลับแถวที่ปรากฏในชุดผลลัพธ์การค้นหาทั้งสองชุด
  • EXCEPT: ส่งกลับแถวที่ปรากฏในชุดผลลัพธ์คิวรีชุดแรก แต่ไม่อยู่ในชุดที่สอง

 

วิธีใช้ฟังก์ชันเคียวรีเหมือน LEAD, LAG, FIRST_VALUE, LAST_VALUE ใน SQL

คำตอบ: ฟังก์ชันการสืบค้นข้อมูลเช่น LEAD, LAG, FIRST_VALUE, LAST_VALUE ใช้เพื่อดึงค่าจากแถวที่เกี่ยวข้องกันภายในผลลัพธ์การสืบค้นข้อมูลเดียวกัน

  • LEAD: รับค่าของคอลัมน์จากแถวถัดไปในผลลัพธ์ของคิวรี
  • LAG: รับค่าของคอลัมน์จากแถวก่อนหน้าในผลลัพธ์ของคิวรี
  • FIRST_VALUE: ดึงค่าแรกของคอลัมน์ในผลลัพธ์แบบสอบถาม
  • LAST_VALUE: ดึงค่าสุดท้ายของคอลัมน์ในผลลัพธ์แบบสอบถาม