Trong những ngày đầu của SQL, nó được chọn là giải pháp cho vấn đề làm thế nào để xử lý các tên cột trùng lặp (xem ghi chú bên dưới).
Để mượn một truy vấn từ một câu trả lời khác:
SELECT P.ProductName,
P.ProductRetailPrice,
O.Quantity
FROM Products AS P
INNER JOIN Orders AS O ON O.ProductID = P.ProductID
WHERE O.OrderID = 123456
Cột ProductID
(và có thể cả các khác) là chung cho cả hai bảng và do cú pháp điều kiện nối yêu cầu tham chiếu đến cả hai, 'tiêu chuẩn chấm' cung cấp sự phân định.
Tất nhiên, giải pháp tốt hơn là không bao giờ cho phép các tên cột trùng lặp ở vị trí đầu tiên! Hạnh phúc, nếu bạn sử dụng phiên bản mới hơn NATURAL JOIN
cú pháp, sự cần thiết của các biến phạm vi P
và O
biến mất:
SELECT ProductName, ProductRetailPrice, Quantity
FROM Products NATURAL JOIN Orders
WHERE OrderID = 123456
Nhưng tại sao AS
từ khóa là tùy chọn? Hồi ức của tôi từ một cuộc thảo luận cá nhân với một thành viên của ủy ban tiêu chuẩn SQL (Joe Celko hoặc Hugh Darwen) là hồi ức của họ là tại thời điểm xác định tiêu chuẩn, một sản phẩm của nhà cung cấp (của Microsoft?) Yêu cầu đưa vào và một nhà cung cấp khác sản phẩm (của Oracle?) yêu cầu thiếu sót của nó, vì vậy sự thỏa hiệp được chọn là làm cho nó trở thành tùy chọn. Tôi không có trích dẫn cho điều này, bạn có tin tôi hay không!
Trong những ngày đầu của mô hình quan hệ, sản phẩm chéo (hoặc tham gia hoặc tham gia đẳng thức) của các mối quan hệ có tiêu đề không tách rời nhau xuất hiện để tạo ra mối quan hệ với hai thuộc tính cùng tên; Giải pháp của Codd cho vấn đề này trong phép tính quan hệ của anh ta là sử dụng tiêu chuẩn chấm, sau này được mô phỏng trong SQL (sau đó người ta nhận ra rằng cái gọi là tham gia tự nhiên là nguyên thủy mà không mất; thậm chí sản phẩm chéo.)
Nguồn: Hệ thống kinh doanh 12, Ghi chú được trình bày trong các bài thuyết trình được đưa ra tại Hội thảo của người triển khai TTM, Đại học Northumbria, ngày 2-3 tháng 6 năm 2011 bởi Hugh Darwen