PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Nama tabel atau kolom tidak boleh diawali dengan angka?

Itu berasal dari standar sql asli, yang melalui beberapa lapisan tipuan akhirnya mendapatkan pengidentifikasi mulai blok, yang merupakan salah satu dari beberapa hal, tetapi terutama itu adalah "huruf latin sederhana". Ada juga hal lain yang dapat digunakan, tetapi jika Anda ingin melihat semua detailnya, kunjungi http://en.wikipedia.org/wiki/SQL-92 dan ikuti tautan ke standar sebenarnya ( halaman 85 )

Memiliki pengenal pengenal non numerik membuat penulisan parser untuk memecahkan kode sql untuk eksekusi lebih mudah dan lebih cepat, tetapi formulir yang dikutip juga bagus.

Edit:Mengapa parser lebih mudah?

Masalah untuk parser lebih pada SELECT -list klausa daripada FROM ayat. Select-list adalah daftar ekspresi yang dipilih dari tabel, dan ini sangat fleksibel, memungkinkan nama kolom sederhana dan ekspresi numerik. Pertimbangkan hal berikut:

SELECT 2e2 + 3.4 FROM ...

Jika nama tabel, dan nama kolom bisa dimulai dengan angka, adalah 2e2 nama kolom atau nomor yang valid (e format biasanya diizinkan dalam literal numerik) dan 3.4 tabel "3 " dan kolom "4 " atau apakah itu nilai numerik 3.4 ?

Memiliki aturan bahwa pengidentifikasi mulai dengan huruf latin sederhana (dan beberapa hal spesifik lainnya) berarti parser yang melihat 2e2 dapat dengan cepat membedakan ini akan menjadi ekspresi numerik, kesepakatan yang sama dengan 3.4

Meskipun dimungkinkan untuk merancang skema untuk memungkinkan karakter utama numerik, ini mungkin menyebabkan aturan (pendapat) yang lebih tidak jelas, jadi aturan ini adalah solusi yang bagus. Jika Anda mengizinkan angka terlebih dahulu, maka itu akan selalu membutuhkan kutipan, yang bisa dibilang tidak 'bersih'.

Penafian , Saya telah menyederhanakan sedikit di atas, mengabaikan nama korelasi agar tetap singkat. Saya tidak sepenuhnya akrab dengan postgres, tetapi telah memeriksa ulang jawaban di atas terhadap dokumentasi Oracle RDB dan spesifikasi 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. Bagaimana memaksa evaluasi subquery sebelum bergabung / menekan ke server asing

  2. Cara Menghitung Rata-Rata Pergerakan di PostgreSQL

  3. Pangkas spasi tambahan dengan PostgreSQL

  4. Pernyataan INSERT opsional dalam rantai transaksi menggunakan NodeJS dan Postgres

  5. Berapa banyak catatan yang dapat saya simpan dalam 5 MB PostgreSQL di Heroku?