วิธีการค้นหาตารางที่มีคอลัมน์เฉพาะใน SQL Server
ในโลกของฐานข้อมูล บางครั้งคุณอาจจำเป็นต้องค้นหาข้อมูลเฉพาะในหลาย ๆ ตาราง หนึ่งในสถานการณ์ทั่วไปที่นักพัฒนาและนักวิเคราะห์พบคือความจำเป็นในการระบุว่าตารางใดบ้างที่มีฟิลด์หรือชื่อคอลัมน์ที่กำหนด นี่อาจเป็นความท้าทายอย่างยิ่งในฐานข้อมูลขนาดใหญ่ซึ่งการค้นหาแบบแมนนวลนั้นไม่มีประสิทธิภาพและใช้เวลานาน
ในโพสต์นี้เราจะพูดถึงวิธีการสร้างคำสั่ง SQL ใน SQL Server ที่ดึงข้อมูลตารางทั้งหมดที่มีชื่อคอลัมน์เฉพาะ
ความท้าทาย
สมมติว่าคุณกำลังทำงานกับฐานข้อมูล SQL Server ขนาดใหญ่และคุณจำเป็นต้องค้นหา ทุกตาราง ที่มีฟิลด์ชื่อ Desired_Column_Name
แทนที่จะสำรวจแต่ละตารางทีละตาราง คำสั่ง SQL สามารถช่วยดำเนินการนี้โดยอัตโนมัติ ช่วยประหยัดเวลาและความพยายามของคุณ
วิธีการ: คำสั่ง SQL
เพื่อให้ได้รายชื่อที่ครอบคลุมของตารางที่มีชื่อคอลัมน์ที่กำหนด คุณจะใช้วิว INFORMATION_SCHEMA.COLUMNS
วิวระบบนี้มีข้อมูลมากมายเกี่ยวกับแต่ละคอลัมน์ในฐานข้อมูล
การอธิบายทีละขั้นตอน
นี่คือคำสั่ง SQL ที่จะช่วยให้คุณบรรลุสิ่งนี้:
SELECT Table_Name
FROM INFORMATION_SCHEMA.COLUMNS
WHERE Column_Name = 'Desired_Column_Name'
GROUP BY Table_Name
อธิบายส่วนประกอบของคำสั่ง
-
SELECT Table_Name:
- ส่วนนี้ของคำสั่งระบุว่าเราต้องการดึงชื่อของตาราง
-
FROM INFORMATION_SCHEMA.COLUMNS:
INFORMATION_SCHEMA.COLUMNS
เป็นวิวระบบที่มีแถวสำหรับแต่ละคอลัมน์ในฐานข้อมูล โดยการเรียกดูวิวนี้ เราสามารถเข้าถึงข้อมูลเชิงลึกเกี่ยวกับคอลัมน์แต่ละคอลัมน์ รวมถึงชื่อและตารางที่มันอยู่
-
WHERE Column_Name = ‘Desired_Column_Name’:
- ที่นี่เรากำหนดเงื่อนไขเพื่อกรองคอลัมน์ที่ตรงกับชื่อที่คุณระบุ แทนที่
'Desired_Column_Name'
ด้วยชื่อจริงของคอลัมน์ที่คุณสนใจ
- ที่นี่เรากำหนดเงื่อนไขเพื่อกรองคอลัมน์ที่ตรงกับชื่อที่คุณระบุ แทนที่
-
GROUP BY Table_Name:
- เนื่องจากตารางเดียวอาจมีหลายคอลัมน์ที่มีชื่อเดียวกัน (เนื่องจากสคีมาที่แตกต่างกัน) เราจึงต้องจัดกลุ่มผลลัพธ์ตาม
Table_Name
เพื่อให้แน่ใจว่าตารางแต่ละตารางมีการแสดงชื่อเพียงครั้งเดียว
- เนื่องจากตารางเดียวอาจมีหลายคอลัมน์ที่มีชื่อเดียวกัน (เนื่องจากสคีมาที่แตกต่างกัน) เราจึงต้องจัดกลุ่มผลลัพธ์ตาม
ตัวอย่างในทางปฏิบัติ
สมมติว่าคุณต้องการค้นหาทุกตารางที่มีคอลัมน์ชื่อ EmployeeID
คุณจะต้องเรียกใช้คำสั่งต่อไปนี้:
SELECT Table_Name
FROM INFORMATION_SCHEMA.COLUMNS
WHERE Column_Name = 'EmployeeID'
GROUP BY Table_Name
ผลลัพธ์
การเรียกใช้คำสั่งนี้จะให้รายชื่อชื่อของตารางที่มีคอลัมน์ EmployeeID
อย่างไม่ซ้ำกัน ซึ่งช่วยให้คุณระบุว่าเก็บข้อมูลนี้อยู่ที่ใดในฐานข้อมูลของคุณได้ง่ายขึ้น
บทสรุป
การค้นหาตารางโดยชื่อคอลัมน์ใน SQL Server ไม่จำเป็นต้องเป็นงานที่น่ากลัว โดยการใช้วิว INFORMATION_SCHEMA.COLUMNS
พร้อมกับคำสั่ง SQL ที่ง่าย คุณสามารถได้รับข้อมูลที่คุณต้องการอย่างรวดเร็ว
ด้วยความรู้เกี่ยวกับเทคนิคการค้นหาที่มีประสิทธิภาพนี้ คุณสามารถยกระดับทักษะการจัดการฐานข้อมูลของคุณและทำให้กระบวนการสำรวจข้อมูลของคุณลื่นไหลมากขึ้น ขอให้สนุกกับการค้นหาข้อมูล!