คำหลัก“ ALIAS” ใช้จริงหรือไม่


9

ตาม PostgreSQL 7.1 ถึง 9.1 (ไม่สนับสนุนในขณะนี้) ALIASจะแสดงรายการเป็นคำสงวนอย่างน้อยสำหรับ SQL-99 รุ่นที่ใหม่กว่าจะไม่แสดง - แนะนำว่ามันถูกทิ้งเป็นคำสงวน เอกสาร PostgreSQL เก่ากล่าวว่า"การปรากฏตัวของคำสำคัญไม่ได้บ่งบอกถึงการมีอยู่ของคุณสมบัติ" เมื่อ aliasing ตารางหรือคอลัมน์ที่ผมเคยเห็นแต่ไม่เคยASALIAS

คีย์เวิร์ด SQL ALIASใช้อยู่ที่ไหน (หรือเคย) มันเคยใช้งานหรือสงวนไว้สำหรับใช้ในอนาคตเท่านั้นหรือไม่

คำตอบ:


16

PostgreSQL เก็บรายการสงวนและคำที่ไม่สงวนไว้ในภาคผนวก ALIASขาดจากรายการนั้น คุณสามารถตรวจสอบ PostgreSQL ไม่ได้ใช้ALIASโดยการตรวจสอบไวยากรณ์ YACC แม้เท่าหลังPostgres95 ALIASไม่ใช่คำที่สงวนไว้ (เวอร์ชันแรกในการย้ายข้อมูลจาก QUEL ไปยัง SQL)

มาตรฐาน SQL

  • ใน SQL-92 ALIASถูกทำเครื่องหมายเป็น a <reserved word>; แต่ไม่มีการกำหนดให้ใช้สำหรับสิ่ง<reserved word>นั้น

  • ใน SQL-99 ALIASถูกทำเครื่องหมายเป็น "คำสงวนเพิ่มเติม" และเพิ่มลงในรายการของ<reserved word>; แต่ไม่มีการกำหนดให้ใช้สำหรับสิ่ง<reserved word>นั้น บางทีพวกเขาสงวนคำด้วยความตั้งใจที่จะกำหนดความหมายในภายหลังแล้วถอนออกในจุดที่แตกต่าง หรือบางทีพวกเขาอาจสงวนคำสำหรับการใช้งานที่กำหนดโดยผู้ขาย PostgreSQL สะท้อนถึงการสำรองข้อมูลจำเพาะในเอกสารแล้วลบการจองนั้นด้วยข้อมูลจำเพาะ

  • ใน SQL-2011 ALIASจะไม่พบที่ใดและคำว่า "นามแฝง" ปรากฏเฉพาะในการอ้างอิงถึง'Feature T053,“ นามแฝงที่ชัดเจนสำหรับการอ้างอิงทุกฟิลด์”'

ℹไม่มีสำเนาดิจิทัลของSQL-86หรือSQL-89


8

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

create table SOMEOTHERSCHEMA.FOOBAR (...);
set schema MYSCHEMA;
create alias FOOBAR for SOMEOTHERSCHEMA.FOOBAR;
select * from FOOBAR;

ALIASเป็นนามแฝงสำหรับSYNONYM; แนวคิดหลังยังมีอยู่ใน Oracle และ SQL Server


4
ALIASเป็นนามแฝงสำหรับSYNONYM - อืมฉันคิดว่าคุณสามารถพูดได้ว่าALIASเป็นคำพ้องความหมายของSYNONYM...
Andriy M

2
@AndriyM มันเป็นวิธีอื่น ๆ : SYNONYMเป็นไวพจน์ALIAS , เสมอแม้ว่าจะไม่ใช่
mustaccio

3

จริงๆแล้วมีสถานที่ที่ใช้คำหลักALIASใน PostgreSQL ทุกรุ่น

ไม่ได้อยู่ใน SQL แม้ว่าเช่นEvan บันทึกไว้อย่างชัดเจน แต่ในภาษาขั้นตอน PL / pgSQLเพื่อสร้างนามแฝงสำหรับพารามิเตอร์หรือตัวแปร

มันถูกใช้บ่อยกว่าก่อน Postgres 8.0 ในขณะที่พารามิเตอร์ที่มีชื่อไม่ได้รับการสนับสนุนสำหรับฟังก์ชั่น PL / pgSQL ตั้งแต่นั้นเป็นต้นมามีเพียงกรณีใช้งานเพียงเล็กน้อยเท่านั้นที่เหลืออยู่ คู่มือสรุป:

เป็นการดีที่สุดที่จะใช้เพื่อจุดประสงค์ในการเอาชนะชื่อที่กำหนดไว้ล่วงหน้าเท่านั้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.