คำถามและคำตอบสัมภาษณ์ SQL Server 50 อันดับแรก (2025)

ต่อไปนี้เป็นคำถามและคำตอบในการสัมภาษณ์ SQL Server สำหรับผู้สมัครใหม่และมีประสบการณ์เพื่อรับงานในฝัน

คำถามและคำตอบในการสัมภาษณ์ SQL Server สำหรับน้องใหม่


1. โหมดการรับรองความถูกต้องสองโหมดใน SQL Server คืออะไร

มีสองโหมดการรับรองความถูกต้อง -

  • Windows โหมด
  • โหมดผสม

โหมดสามารถเปลี่ยนแปลงได้โดยการเลือกเมนูเครื่องมือของคุณสมบัติการกำหนดค่า SQL Server และเลือกหน้าความปลอดภัย

👉 ดาวน์โหลดไฟล์ PDF ฟรี: คำถามและคำตอบสัมภาษณ์ SQL Server


2. SQL Profiler คืออะไร?

SQL Profiler เป็นเครื่องมือที่ช่วยให้ผู้ดูแลระบบสามารถตรวจสอบเหตุการณ์ในเซิร์ฟเวอร์ SQL ส่วนใหญ่จะใช้ในการจับภาพและบันทึกข้อมูลเกี่ยวกับแต่ละเหตุการณ์ของไฟล์หรือตารางเพื่อการวิเคราะห์


3. ขั้นตอนการจัดเก็บแบบเรียกซ้ำคืออะไร?

SQL Server รองรับขั้นตอนการจัดเก็บแบบเรียกซ้ำซึ่งเรียกด้วยตัวเอง ขั้นตอนการจัดเก็บแบบเรียกซ้ำสามารถกำหนดเป็นวิธีการแก้ปัญหาโดยที่วิธีแก้ปัญหามาถึงซ้ำแล้วซ้ำอีก สามารถซ้อนได้ถึง 32 ระดับ

CREATE PROCEDURE [dbo].[Fact]
(
@Number Integer,
@RetVal Integer OUTPUT
)
AS
DECLARE @In Integer
DECLARE @Out Integer
IF @Number != 1
BEGIN
SELECT @In = @Number – 1
EXEC Fact @In, @Out OUTPUT - Same stored procedure has been called again(Recursively)
SELECT @RetVal = @Number * @Out
END
ELSE
BEGIN
SELECT @RetVal = 1
END
RETURN
GO

4. ตารางชั่วคราวระดับท้องถิ่นและระดับโลกแตกต่างกันอย่างไร

  • ตารางชั่วคราวในเครื่องจะมองเห็นได้เมื่อมีการเชื่อมต่อ และจะถูกลบออกเมื่อปิดการเชื่อมต่อ
CREATE TABLE #<tablename>
  • ผู้ใช้ทุกคนจะมองเห็นตารางชั่วคราวส่วนกลางได้ และจะถูกลบออกเมื่อการเชื่อมต่อที่สร้างตารางนั้นปิดลง
CREATE TABLE ##<tablename>

5. ข้อจำกัดในการตรวจสอบคืออะไร?

ข้อจำกัด CHECK สามารถนำไปใช้กับคอลัมน์ในตารางเพื่อจำกัดค่าที่สามารถวางในคอลัมน์ได้ ตรวจสอบข้อจำกัดคือการบังคับใช้ความสมบูรณ์


6. เซิร์ฟเวอร์ SQL สามารถเชื่อมโยงกับเซิร์ฟเวอร์อื่นได้หรือไม่

เซิร์ฟเวอร์ SQL สามารถเชื่อมต่อกับฐานข้อมูลใด ๆ ที่มีผู้ให้บริการ OLE-DB ให้ลิงก์ ตัวอย่าง: Oracle มีผู้ให้บริการ OLE-DB ซึ่งมีลิงค์เชื่อมต่อกับกลุ่มเซิร์ฟเวอร์ SQL


7. คำถามย่อยคืออะไรและมีคุณสมบัติอย่างไร

แบบสอบถามย่อยคือแบบสอบถามที่สามารถซ้อนอยู่ภายในแบบสอบถามหลัก เช่น คำสั่ง Select, Update, Insert หรือ Delete สามารถใช้เมื่ออนุญาตให้ใช้นิพจน์ได้ คุณสมบัติของแบบสอบถามย่อยสามารถกำหนดเป็น

  • แบบสอบถามย่อยไม่ควรเรียงลำดับตามข้อ
  • ควรวางแบบสอบถามย่อยไว้ที่ด้านขวามือของตัวดำเนินการเปรียบเทียบของแบบสอบถามหลัก
  • แบบสอบถามย่อยควรอยู่ในวงเล็บเนื่องจากจำเป็นต้องดำเนินการก่อนแบบสอบถามหลัก
  • สามารถรวมแบบสอบถามย่อยได้มากกว่าหนึ่งรายการ

8. คำถามย่อยมีกี่ประเภท?

แบบสอบถามย่อยมีสามประเภท –

  • แบบสอบถามย่อยแถวเดียวซึ่งส่งคืนเพียงแถวเดียวเท่านั้น
  • แบบสอบถามย่อยหลายแถวซึ่งส่งคืนหลายแถว
  • แบบสอบถามย่อยหลายคอลัมน์ซึ่งส่งกลับหลายคอลัมน์ไปยังแบบสอบถามหลัก ด้วยผลลัพธ์การสืบค้นย่อยนั้น การสืบค้นหลักจะถูกดำเนินการ

9. เอเจนต์เซิร์ฟเวอร์ SQL คืออะไร

เอเจนต์ SQL Server มีบทบาทสำคัญในงานประจำวันของผู้ดูแลระบบเซิร์ฟเวอร์ SQL (DBA) วัตถุประสงค์ของตัวแทนเซิร์ฟเวอร์คือเพื่อให้งานต่างๆ ใช้งานได้ง่ายด้วยกลไกกำหนดตารางเวลาซึ่งช่วยให้งานของเราทำงานตามวันที่และเวลาที่กำหนดไว้


10. งานที่กำหนดเวลาไว้ใน SQL Server คืออะไร?

งานที่กำหนดเวลาไว้หรืองานถูกใช้เพื่อทำให้กระบวนการอัตโนมัติที่สามารถรันตามเวลาที่กำหนดในช่วงเวลาปกติ การจัดกำหนดการงานนี้จะช่วยลดการแทรกแซงของมนุษย์ในเวลากลางคืนและสามารถให้อาหารได้ในเวลาที่กำหนด ผู้ใช้ยังสามารถสั่งงานที่จะต้องสร้างได้


11. COALESCE ใน SQL Server คืออะไร

COALESCE ใช้เพื่อส่งคืนนิพจน์ที่ไม่ใช่ค่าว่างตัวแรกภายในอาร์กิวเมนต์ ฟังก์ชันนี้ใช้เพื่อส่งคืนค่าที่ไม่ใช่ค่าว่างจากคอลัมน์มากกว่าหนึ่งคอลัมน์ในอาร์กิวเมนต์

ตัวอย่าง -

Select COALESCE(empno, empname, salary) from employee;

12. สามารถจัดการข้อยกเว้นในการเขียนโปรแกรม SQL Server ได้อย่างไร?

ข้อยกเว้นได้รับการจัดการโดยใช้โครงสร้าง TRY—-CATCH และจัดการโดยการเขียนสคริปต์ภายในบล็อก TRY และการจัดการข้อผิดพลาดในบล็อก CATCH


13. ฟังก์ชั่น FLOOR มีจุดประสงค์อะไร?

ฟังก์ชัน FLOOR ใช้เพื่อปัดเศษค่าที่ไม่ใช่จำนวนเต็มให้เป็นจำนวนเต็มที่น้อยที่สุดก่อนหน้า ตัวอย่างที่ได้รับ

FLOOR(6.7)

ส่งกลับ 6


14. เราสามารถตรวจสอบล็อคในฐานข้อมูลได้หรือไม่? ถ้าเป็นเช่นนั้นเราจะตรวจสอบการล็อคนี้ได้อย่างไร?

ใช่ เราสามารถตรวจสอบล็อคในฐานข้อมูลได้ สามารถทำได้โดยใช้ขั้นตอนการจัดเก็บในตัวที่เรียกว่า sp_lock


15. ฟังก์ชั่น SIGN มีประโยชน์อย่างไร?

ฟังก์ชัน SIGN ใช้เพื่อกำหนดว่าตัวเลขที่ระบุเป็นค่าบวก ค่าลบ และศูนย์ สิ่งนี้จะคืนค่า +1,-1 หรือ 0

ตัวอย่าง -

SIGN(-35) returns -1

16. ทริกเกอร์คืออะไร?

ทริกเกอร์ใช้เพื่อดำเนินการชุดโค้ด SQL เมื่อดำเนินการคำสั่งแทรก อัปเดต หรือลบกับตาราง ทริกเกอร์จะถูกทริกเกอร์หรือดำเนินการโดยอัตโนมัติเมื่อมีการแก้ไขข้อมูล สามารถดำเนินการโดยอัตโนมัติในการแทรก ลบ และอัปเดต


17. ทริกเกอร์ประเภทใดบ้าง?

ทริกเกอร์มีสี่ประเภท ได้แก่:

  • สิ่งที่ใส่เข้าไป
  • ลบ
  • บันทึก
  • แทน

18. คอลัมน์ IDENTITY ในคำสั่ง insert คืออะไร?

คอลัมน์ IDENTITY ใช้ในคอลัมน์ตารางเพื่อทำให้คอลัมน์นั้นเป็นตัวเลขที่เพิ่มขึ้นอัตโนมัติหรือคีย์ตัวแทน


19. Bulkcopy ใน SQL คืออะไร

Bulkcopy เป็นเครื่องมือที่ใช้ในการคัดลอกข้อมูลจำนวนมากจากตาราง เครื่องมือนี้ใช้เพื่อโหลดข้อมูลจำนวนมากใน SQL Server


20. แบบสอบถามจะใช้อะไรในการรับรายการทริกเกอร์ในฐานข้อมูล?

แบบสอบถามเพื่อรับรายการทริกเกอร์ในฐานข้อมูล -

Select * from sys.objects where type='tr'

21. UNION และ UNION ALL แตกต่างกันอย่างไร?

  • UNION: ในการเลือกข้อมูลที่เกี่ยวข้องจากสองตารางจะใช้คำสั่ง UNION คล้ายกับคำสั่ง JOIN
  • UNION All: คำสั่ง UNION ALL เท่ากับคำสั่ง UNION ยกเว้นว่า UNION ALL จะเลือกค่าทั้งหมด จะไม่ลบแถวที่ซ้ำกัน แต่จะดึงแถวทั้งหมดจากตารางทั้งหมดแทน

22. ตารางชั่วคราวทั่วโลกถูกนำเสนอและขอบเขตอย่างไร

ตารางชั่วคราวส่วนกลางจะแสดงด้วย ## หน้าชื่อตาราง ขอบเขตจะเป็นนอกเซสชัน ในขณะที่ตารางชั่วคราวในเครื่องอยู่ภายในเซสชัน รหัสเซสชันสามารถพบได้โดยใช้ @@SPID


คำถามและคำตอบสัมภาษณ์ SQL Server สำหรับผู้มีประสบการณ์

23. อะไรคือความแตกต่างระหว่าง Stored Procedure และ Dynamic SQL?

Stored Procedure คือชุดของคำสั่งที่ถูกจัดเก็บในรูปแบบที่คอมไพล์แล้ว Dynamic SQL คือชุดของคำสั่งที่สร้างขึ้นแบบไดนามิก ณ รันไทม์ และจะไม่ถูกจัดเก็บไว้ในฐานข้อมูล และเพียงดำเนินการระหว่างรันไทม์เท่านั้น


24. การเปรียบเทียบคืออะไร?

การจัดเรียงถูกกำหนดเพื่อระบุลำดับการจัดเรียงในตาราง การเรียงลำดับมีสามประเภท -

  1. กรณีที่สำคัญ
  2. ไม่คำนึงถึงขนาดตัวพิมพ์
  3. เลขฐานสอง

25. เราจะนับจำนวนระเบียนในตารางได้อย่างไร?

ต่อไปนี้เป็นแบบสอบถามที่สามารถใช้เพื่อรับจำนวนเรกคอร์ดในตาราง

Select * from <tablename> Select count(*) from <tablename> Select rows from sysindexes where id=OBJECT_ID(tablename) and indid<2

26. คำสั่งที่ใช้ในการรับเวอร์ชันของ SQL Server คืออะไร?

Select SERVERPROPERTY('productversion')

ใช้เพื่อรับเวอร์ชันของ SQL Server


27. คำสั่ง UPDATE_STATISTICS คืออะไร?

คำสั่ง UPDATE_STATISTICS ใช้เพื่ออัปเดตดัชนีบนตารางเมื่อมีการลบหรือแก้ไขจำนวนมากหรือเกิดการคัดลอกจำนวนมากในดัชนี


28. คำสั่ง SET NOCOUNT ON/OFF มีประโยชน์อย่างไร?

ตามค่าเริ่มต้น NOCOUNT จะถูกตั้งค่าเป็น OFF และจะส่งคืนจำนวนเร็กคอร์ดที่ได้รับผลกระทบเมื่อใดก็ตามที่คำสั่งถูกดำเนินการ หากผู้ใช้ไม่ต้องการแสดงจำนวนเรคคอร์ดที่ได้รับผลกระทบ คุณสามารถตั้งค่าเป็น ON- (SET NOCOUNT ON) ได้อย่างชัดเจน


29. ตารางเซิร์ฟเวอร์ SQL ใดที่ใช้เก็บสคริปต์ขั้นตอนการจัดเก็บ?

Sys.SQL_Modules เป็นตาราง SQL Server ที่ใช้ในการจัดเก็บสคริปต์ของกระบวนงานที่เก็บไว้ ชื่อของขั้นตอนการจัดเก็บจะถูกบันทึกไว้ในตารางที่เรียกว่า Sys.Procedures


30. Magic Tables ใน SQL Server คืออะไร

ระหว่างการดำเนินการ DML เช่น การแทรก การลบ และการอัพเดต SQL Server จะสร้างตารางวิเศษเพื่อเก็บค่าระหว่างการดำเนินการ DML ตารางวิเศษเหล่านี้ใช้ภายในทริกเกอร์สำหรับการทำธุรกรรมข้อมูล


31. อะไรคือความแตกต่างระหว่าง SUBSTR และ CHARINDEX ใน SQL Server?

ฟังก์ชัน SUBSTR ใช้เพื่อส่งคืนส่วนเฉพาะของสตริงในสตริงที่กำหนด แต่ฟังก์ชัน CHARINDEX จะให้ตำแหน่งอักขระในสตริงที่ระบุ

SUBSTRING('Smiley',1,3)

ให้ผลเป็นสมิ

CHARINDEX('i', 'Smiley',1)

ให้ 3 ตามผลลัพธ์ที่ฉันปรากฏใน 3rd ตำแหน่งของสตริง


32. คุณจะสร้างข้อมูลเข้าสู่ระบบได้อย่างไร?

คุณสามารถใช้คำสั่งต่อไปนี้เพื่อสร้างการเข้าสู่ระบบ

CREATE LOGIN MyLogin WITH PASSWORD = '123';

33. ตัวดำเนินการ ISNULL() คืออะไร

ฟังก์ชัน ISNULL ใช้เพื่อตรวจสอบว่าค่าที่กำหนดเป็น NULL หรือไม่เป็น NULL ในเซิร์ฟเวอร์ sql ฟังก์ชันนี้ยังจัดให้มีการแทนที่ค่าด้วย NULL


34. FOR Clause มีประโยชน์อย่างไร?

FOR clause ส่วนใหญ่จะใช้สำหรับ XML และตัวเลือกเบราว์เซอร์ ส่วนคำสั่งนี้ส่วนใหญ่จะใช้ในการแสดงผลแบบสอบถามในรูปแบบ XML หรือในเบราว์เซอร์


35. จำนวนดัชนีสูงสุดต่อตารางคือเท่าใด

สำหรับ SQL Server 2008 100 Index สามารถใช้เป็นจำนวนสูงสุดต่อตารางได้ 1 Clusterสามารถใช้ดัชนี ed และดัชนีที่ไม่คลัสเตอร์ 999 รายการต่อตารางใน SQL Server ได้

ดัชนี 1000 สามารถใช้เป็นจำนวนสูงสุดต่อตารางได้ 1 Clusterสามารถใช้ดัชนี ed และดัชนีที่ไม่คลัสเตอร์ 999 รายการต่อตารางใน SQL Server ได้

1 Clusterสามารถใช้ดัชนี ed และดัชนีที่ไม่คลัสเตอร์ 999 รายการต่อตารางใน SQL Server ได้


36. อะไรคือความแตกต่างระหว่าง COMMIT และ ROLLBACK?

ทุกคำสั่งระหว่าง BEGIN และ COMMIT จะคงอยู่ในฐานข้อมูลเมื่อมีการดำเนินการ COMMIT ทุกคำสั่งระหว่าง BEGIN และ ROOLBACK จะถูกแปลงกลับเป็นสถานะเมื่อมีการดำเนินการ ROLLBACK


37. อะไรคือความแตกต่างระหว่างประเภท varchar และ nvarchar?

Varchar และ nvarchar เหมือนกัน แต่ข้อแตกต่างเพียงอย่างเดียวคือ nvarhcar สามารถใช้จัดเก็บอักขระ Unicode สำหรับหลายภาษา และยังใช้พื้นที่มากกว่าเมื่อเทียบกับ varchar


38. @@SPID มีประโยชน์อย่างไร?

@@SPID ส่งคืน ID เซสชันของกระบวนการผู้ใช้ปัจจุบัน


39. คำสั่งที่ใช้ในการคอมไพล์โพรซีเดอร์ที่เก็บไว้ ณ รันไทม์ใหม่คืออะไร?

Stored Procedure สามารถดำเนินการได้ด้วยความช่วยเหลือของคำสำคัญที่เรียกว่า RECOMPILE

ตัวอย่าง

Exe <SPName>  WITH RECOMPILE

หรือเราจะรวม WITHRECOMPILE ไว้ใน Stored Procedure ก็ได้


40. จะลบแถวที่ซ้ำกันใน SQL Server ได้อย่างไร?

แถวที่ซ้ำกันสามารถลบได้โดยใช้คุณสมบัติ CTE และ ROW NUMER ของ SQL Server


41. ชื่อผู้ใช้และรหัสผ่านของ SQL Server อยู่ที่ไหนใน SQL Server?

ชื่อผู้ใช้และรหัสผ่านจะถูกจัดเก็บไว้ใน sys.server_principals และ sys.sql_logins แต่รหัสผ่านจะไม่ถูกจัดเก็บไว้ในข้อความปกติ


42. GETDATE และ SYSDATETIME แตกต่างกันอย่างไร?

ทั้งสองเหมือนกัน แต่ GETDATE สามารถให้เวลาจนถึงมิลลิวินาที และ SYSDATETIME สามารถให้ความแม่นยำจนถึงนาโนวินาที SYSDATE TIME นั้นแม่นยำกว่า GETDATE


43. สามารถคัดลอกข้อมูลจากตารางหนึ่งไปยังอีกตารางหนึ่งได้อย่างไร?

INSERT INTO SELECT

คำสั่งนี้ใช้เพื่อแทรกข้อมูลลงในตารางที่สร้างไว้แล้ว

SELECT INTO

คำสั่งนี้ใช้เพื่อสร้างตารางใหม่ และสามารถคัดลอกโครงสร้างและข้อมูลของตารางจากตารางที่มีอยู่ได้


44. TABLESAMPLE คืออะไร?

TABLESAMPLE ใช้เพื่อแยกตัวอย่างแถวแบบสุ่มที่จำเป็นทั้งหมดสำหรับแอปพลิเคชัน แถวตัวอย่างที่ใช้จะขึ้นอยู่กับเปอร์เซ็นต์ของแถว


45. คำสั่งใดใช้สำหรับข้อความแสดงข้อผิดพลาดที่ผู้ใช้กำหนด?

RAISEERROR คือคำสั่งที่ใช้ในการสร้างและเริ่มการประมวลผลข้อผิดพลาดสำหรับเซสชันที่กำหนด ข้อความที่ผู้ใช้กำหนดเหล่านั้นจะถูกจัดเก็บไว้ในตาราง sys.messages


46. ​​ประเภทข้อมูล XML หมายความว่าอย่างไร

ชนิดข้อมูล XML ใช้ในการจัดเก็บเอกสาร XML ในรูปแบบ ฐานข้อมูล SQL Server- คอลัมน์และตัวแปรจะถูกสร้างขึ้นและจัดเก็บอินสแตนซ์ XML ไว้ในฐานข้อมูล


47. คพรฟ. คืออะไร?

CDC ย่อมาจาก Change Data Capture ซึ่งใช้เพื่อเก็บข้อมูลที่มีการเปลี่ยนแปลงเมื่อเร็วๆ นี้ คุณลักษณะนี้มีอยู่ใน SQL Server 2008


48. การแทรก SQL คืออะไร?

การแทรก SQL คือการโจมตีโดยผู้ใช้ที่เป็นอันตรายซึ่งสามารถแทรกโค้ดที่เป็นอันตรายลงในสตริงที่สามารถส่งผ่านไปยังอินสแตนซ์ของเซิร์ฟเวอร์ SQL เพื่อแยกวิเคราะห์และดำเนินการ คำสั่งทั้งหมดจะต้องตรวจสอบช่องโหว่เนื่องจากดำเนินการค้นหาคำสั่งที่ถูกต้องทางไวยากรณ์ทั้งหมดที่ได้รับ

แม้กระทั่งพารามิเตอร์ก็สามารถจัดการได้โดยผู้โจมตีที่มีทักษะและประสบการณ์


49. มีวิธีใดบ้างที่ใช้ป้องกันการโจมตีแบบ SQL Injection?

ต่อไปนี้เป็นวิธีการที่ใช้ในการป้องกันการโจมตีการแทรก SQL:

  • ใช้พารามิเตอร์สำหรับขั้นตอนการจัดเก็บ
  • การกรองพารามิเตอร์อินพุต
  • ใช้การรวบรวมพารามิเตอร์กับ Dynamic SQL
  • ใน like clause ก็คืออักขระหลีกของผู้ใช้

50. ดัชนีกรองคืออะไร?

ดัชนีที่กรองใช้เพื่อกรองบางส่วนของแถวในตารางเพื่อปรับปรุงประสิทธิภาพการสืบค้น การบำรุงรักษาดัชนี และลดต้นทุนการจัดเก็บดัชนี เมื่อดัชนีถูกสร้างขึ้นด้วยส่วนคำสั่ง WHERE จะเรียกว่าดัชนีที่กรอง

คำถามสัมภาษณ์เหล่านี้จะช่วยในวีว่าของคุณ (วาจา)