Nó xuất phát từ các tiêu chuẩn sql ban đầu, thông qua một số lớp chuyển hướng cuối cùng đi đến đầu số nhận dạng khối, là một trong nhiều thứ, nhưng chủ yếu nó là "một chữ cái latin đơn giản". Có những thứ khác cũng có thể được sử dụng, nhưng nếu bạn muốn xem tất cả chi tiết, hãy truy cập http://en.wikipedia.org/wiki/SQL-92 và theo các liên kết đến tiêu chuẩn thực tế (trang 85)
Việc có các trình giới thiệu mã định danh không phải là số làm cho việc viết một trình phân tích cú pháp để giải mã sql để thực thi dễ dàng và nhanh chóng hơn, nhưng một biểu mẫu được trích dẫn cũng tốt.
Chỉnh sửa:Tại sao trình phân tích cú pháp lại dễ dàng hơn?
Vấn đề đối với trình phân tích cú pháp nằm ở SELECT
mệnh đề -list hơn FROM
mệnh đề. Danh sách chọn là danh sách các biểu thức được chọn từ các bảng và điều này rất linh hoạt, cho phép đặt tên cột và biểu thức số đơn giản. Hãy xem xét những điều sau:
SELECT 2e2 + 3.4 FROM ...
Nếu tên bảng và tên cột có thể bắt đầu bằng số, thì 2e2
tên cột hoặc số hợp lệ (e
định dạng thường được cho phép bằng các ký tự số) và là 3.4
bảng "3
"và cột" 4
"hay là giá trị số 3.4
?
Có quy tắc rằng số nhận dạng bắt đầu bằng các chữ cái latin đơn giản (và một số thứ cụ thể khác) có nghĩa là trình phân tích cú pháp nhìn thấy 2e2
có thể nhanh chóng phân biệt đây sẽ là một biểu thức số, tương tự với 3.4
Mặc dù có thể tạo ra một lược đồ để cho phép các ký tự số đứng đầu, nhưng điều này có thể dẫn đến các quy tắc (ý kiến) thậm chí còn khó hiểu hơn, vì vậy quy tắc này là một giải pháp tốt. Nếu bạn cho phép các chữ số đầu tiên, thì nó sẽ luôn cần trích dẫn, điều này được cho là không 'sạch'.
Tuyên bố từ chối trách nhiệm , Tôi đã đơn giản hóa những điều ở trên một chút, bỏ qua các tên lõi để giữ cho nó ngắn gọn. Tôi không hoàn toàn quen thuộc với postgres, nhưng đã kiểm tra kỹ câu trả lời ở trên dựa trên tài liệu Oracle RDB và thông số sql