ชื่อเรียกแทน (SQL)
ชื่อแทน (Allias)เป็นคุณลักษณะหนึ่งของSQLที่ได้รับการสนับสนุนโดยระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) ส่วนใหญ่ ชื่อแทนช่วยให้ผู้ใช้ลดปริมาณโค้ดที่จำเป็นสำหรับคำสั่งค้นหา และทำให้คำสั่งค้นหาเข้าใจง่ายขึ้น นอกจากนี้ การใช้ชื่อแทนยังจำเป็นเมื่อทำการเชื่อมตารางกับตัวเอง (self joins)
ใน SQL คุณสามารถตั้งชื่อเล่นให้กับตารางและคอลัมน์ได้ ชื่อเล่นของตารางเรียกว่าชื่อความสัมพันธ์ตามมาตรฐาน SQL [ 1 ]โปรแกรมเมอร์สามารถใช้ชื่อเล่นเพื่อกำหนดชื่ออื่นให้กับตารางหรือคอลัมน์ชั่วคราวในช่วงเวลาของการสืบค้น SELECT ปัจจุบัน การกำหนดชื่อเล่นไม่ได้เป็นการเปลี่ยนชื่อคอลัมน์หรือตารางจริง ๆ ซึ่งมักมีประโยชน์เมื่อตารางหรือคอลัมน์มีชื่อที่ยาวหรือซับซ้อนมาก ชื่อเล่นอาจเป็นอะไรก็ได้ แต่โดยปกติแล้วมักจะสั้น ตัวอย่างเช่น อาจเป็นเรื่องปกติที่จะใช้ชื่อเล่นตารางเช่น "pi" สำหรับตารางที่มีชื่อว่า "price_information"
รูปแบบทั่วไปของชื่อแทน (alias) คือ `<alias>` โปรดทราบว่าคำว่า `AS` นั้นเป็นตัวเลือกเสริม และโดยปกติจะใช้เพื่อความอ่านง่ายเท่านั้น ต่อไปนี้คือตัวอย่างข้อมูลที่แบบสอบถามด้านล่างจะอ้างอิงถึง:SELECT*FROMtable_name[AS]alias_name
| รหัสแผนก | ชื่อแผนก |
|---|---|
| 31 | ฝ่ายขาย |
| 33 | วิศวกรรม |
| 34 | งานธุรการ |
| 35 | การตลาด |
การใช้ชื่อแทนตาราง:
SELECT D.DepartmentName FROM Department AS Dเราสามารถเขียนคำสั่งค้นหาเดียวกันได้ดังนี้ (โปรดสังเกตว่าครั้งนี้เราละเว้นส่วน AS):
เลือกD.DepartmentName จากDepartment Dชื่อเรียกแทนคอลัมน์ก็คล้ายกัน:
SELECT d.DepartmentId AS Id , d.DepartmentName AS Name FROM Department dในชุดผลลัพธ์ ที่ส่งคืน ข้อมูลที่แสดงข้างต้นจะถูกส่งคืน โดยมีข้อยกเว้นเพียงอย่างเดียวคือ "DepartmentID" จะแสดงเป็น "Id" และ "DepartmentName" จะแสดงเป็น "Name"
นอกจากนี้ หากเลือกเพียงตารางเดียวและไม่ได้ใช้การเชื่อมตาราง (table join ) ก็สามารถละเว้นชื่อตารางหรือนามแฝงของตารางจากชื่อคอลัมน์ในคำสั่ง SELECT ได้ ตัวอย่างเช่น:
SELECT DepartmentId AS Id , DepartmentName AS Name FROM Department dบางระบบ เช่น Postgres [ 2 ]และ Presto [ 3 ]รองรับการระบุนามแฝงคอลัมน์พร้อมกับนามแฝงตาราง ตัวอย่างเช่น
SELECT D.Id FROM Department AS D ( Id )จะสร้างชุดผลลัพธ์เดียวกันกับก่อนหน้านี้ ในไวยากรณ์นี้ อนุญาตให้ละเว้นนามแฝงสำหรับชื่อคอลัมน์บางชื่อได้ ในตัวอย่าง มีการกำหนดนามแฝงสำหรับ DepartmentId แต่ละเว้นสำหรับ DepartmentName คอลัมน์ที่มีนามแฝงที่ไม่ได้ระบุจะไม่มีนามแฝง ไวยากรณ์นี้มักใช้กับนิพจน์ที่ไม่สร้างชื่อตารางและคอลัมน์ที่มีประโยชน์ เช่น VALUES [ 4 ]และ UNNEST [ 5 ]ตัวอย่างเช่น เราสามารถทดสอบคำสั่ง SQL ข้างต้นได้อย่างสะดวกโดยไม่ต้องสร้างตาราง Departments จริงโดยใช้นิพจน์เช่น
WITH Department ( DepartmentId , DepartmentName ) AS ( VALUES ( 1 , 'HR' ), ( 2 , 'IT' )) SELECT DepartmentId AS Id , DepartmentName AS Name FROM Department d ;