SQL: AS Alias (นามแฝง )

เวลาเขียน SQL จะเห็น select มันจะเขียน SELECT post_id AS id, GETDATE create_date จะเห็นว่าบางคน บางที่ก็ใส่ AS บางคนก็ไม่ได้ใช้ AS แล้วมีกับไม่มี มันต่างกันยังไง จริง ๆ หลัง function หรือ column ส่วนนี้เรียกว่า Alias มีไว้เพื่อให้แทน column หรือ function ให้จำง่าย ใช้ง่าย สื่อความหมายมากขึ้น โดยจะมี AS หรือ ไม่มีคั่นกลางกลางก็ได้ แต่ AS จะช่วยให้อ่าน code ได้ง่ายกว่าไม่มี


Column Alias

ตามมาตรฐาน ANSI SQL-86 , ISO / IEC 9075 การใช้คีย์เวิร์ด AS เพื่อกำหนด Alias นั้นถูกกำหนดไว้ในข้อกำหนดพื้นฐานเพื่อให้โค้ดอ่านง่ายขึ้น

การใช้กับคอลัมน์

การใช้ AS กับคอลัมน์ถือเป็น Best Practice และเป็นมาตรฐานที่ทุก Database Engine ยอมรับ ถึงแม้ว่าในหลาย ๆ ระบบจะอนุญาตให้ละ AS ไว้ได้ (เช่น SELECT name n FROM users u) แต่การใส่ AS มีข้อดีกว่าดังนี้:

  • อ่านง่ายขึ้น: แยกแยะระหว่างชื่อคอลัมน์จริงกับชื่อ Alias ได้ชัดเจน โดยเฉพาะเมื่อมีการคำนวณซับซ้อน
  • ป้องกันความผิดพลาด: ในกรณีที่คุณลืมใส่เครื่องหมายคอมม่า ระหว่างสองคอลัมน์ หากไม่มี AS ตัว SQL อาจเข้าใจผิดว่าคอลัมน์ที่สองคือ Alias ของคอลัมน์แรก ทำให้หา Bug ได้ยาก

ข้อควรระวัง: หาก Alias ของคุณมี ช่องว่าง หรือเป็น คำสงวน อย่าลืมครอบด้วยเครื่องหมาย Quote เช่น "My Name" หรือ [My Name] หรือ `My Name`


การใช้กับตาราง

ในมาตรฐาน SQL การตั้งชื่อเล่นให้ตารางสามารถทำได้ทั้งแบบใส่ AS และไม่ใส่ แต่มีข้อควรระวังคือ Oracle Database ไม่รองรับการใช้ AS หน้าชื่อตาราง ขณะที่ระบบอื่น ๆ ส่วนใหญ่ยอมรับทั้งสองแบบ

ระบบฐานข้อมูลColumn Alias Table Alias
MySQL / MariaDB✅ รองรับ ✅ รองรับ
PostgreSQL
✅ รองรับ

✅ รองรับ
SQL Server (T-SQL)
✅ รองรับ

✅ รองรับ
Oracle✅ รองรับ ไม่รองรับ
SQLite✅ รองรับ ✅ รองรับ

ถ้าต้องการเขียน SQL ให้ run ได้ใน database หลัก ๆ ควรใช้ AS กับ function หรือ column แต่ถ้าใช้ Oracle ด้วยการไม่ใช้ AS เป็นประจำก็เป็นทางเลือกที่ดีจะได้ Portability


อ่านเพิ่มเติม