Pochází z původních standardů SQL, které se přes několik vrstev nepřímosti nakonec dostanou k začátku identifikátoru blok, což je jedna z několika věcí, ale především je to "jednoduché latinské písmeno". Existují i další věci, které lze použít, ale pokud chcete vidět všechny podrobnosti, přejděte na http://en.wikipedia.org/wiki/SQL-92 a postupujte podle odkazů na aktuální standard ( strana 85 )
Díky zavaděčům nečíselných identifikátorů je psaní analyzátoru pro dekódování sql pro provádění snazší a rychlejší, ale forma v uvozovkách je také v pořádku.
Upravit:Proč je to pro analyzátor jednodušší?
Problém pro parser je spíše v SELECT
-list klauzule než FROM
doložka. Select-list je seznam výrazů, které jsou vybrány z tabulek, a je velmi flexibilní a umožňuje jednoduché názvy sloupců a číselné výrazy. Zvažte následující:
SELECT 2e2 + 3.4 FROM ...
Pokud mohou názvy tabulek a sloupců začínat číslicemi, je 2e2
název sloupce nebo platné číslo (e
formát je obvykle povolen v numerických literálech) a je 3.4
tabulka "3
“ a sloupec „4
" nebo je to číselná hodnota 3.4
?
Platí pravidlo, že identifikátory začít jednoduchými latinskými písmeny (a některými dalšími konkrétními věcmi) znamená, že analyzátor, který vidí 2e2
můžete rychle rozpoznat, že to bude číselný výraz, stejně jako 3.4
I když by bylo možné vymyslet schéma umožňující numerické úvodní znaky, mohlo by to vést k ještě obskurnějším pravidlům (názorům), takže toto pravidlo je pěkné řešení. Pokud byste nejprve povolili číslice, pak by to vždy vyžadovalo uvozovky, což pravděpodobně není tak „čisté“.
Odmítnutí odpovědnosti , Mírně jsem výše uvedené zjednodušil, ignorujic názvy korelací, aby to bylo krátké. Nejsem úplně obeznámen s postgres, ale dvakrát jsem zkontroloval výše uvedenou odpověď podle dokumentace Oracle RDB a specifikace SQL