PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Tên bảng hoặc cột không được bắt đầu bằng số?

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mảng PostgreSQL của các phần tử mà mỗi phần tử là một khóa ngoại

  2. Tạo người dùng với mật khẩu được mã hóa trong PostgreSQL

  3. Kế hoạch truy vấn Postgres tại sao ước tính Hàng quá sai

  4. Hai cột trong truy vấn con trong mệnh đề where

  5. Làm cách nào để đưa kết quả 0/0 vào COUNT tổng hợp?