Het komt van de originele sql-standaarden, die via verschillende lagen van indirectheid uiteindelijk tot een identifier-start komen blok, wat een van de vele dingen is, maar in de eerste plaats is het "een eenvoudige Latijnse letter". Er zijn ook andere dingen die kunnen worden gebruikt, maar als je alle details wilt zien, ga dan naar http://en.wikipedia.org/wiki/SQL-92 en volg de links naar de eigenlijke standaard (pagina 85)
Het hebben van niet-numerieke identificatie-introducers maakt het schrijven van een parser om sql te decoderen voor uitvoering gemakkelijker en sneller, maar een geciteerde vorm is ook prima.
Bewerken:waarom is het makkelijker voor de parser?
Het probleem voor een parser zit meer in de SELECT
-list clausule dan de FROM
clausule. De selectielijst is de lijst met uitdrukkingen die uit de tabellen worden geselecteerd, en deze is zeer flexibel, waardoor eenvoudige kolomnamen en numerieke uitdrukkingen mogelijk zijn. Overweeg het volgende:
SELECT 2e2 + 3.4 FROM ...
Als tabelnamen en kolomnamen met cijfers zouden kunnen beginnen, is 2e2
een kolomnaam of een geldig nummer (e
formaat is meestal toegestaan in numerieke letterlijke waarden) en is 3.4
de tabel "3
" en kolom "4
" of is het de numerieke waarde 3.4
?
Met de regel dat identifiers beginnen met eenvoudige Latijnse letters (en enkele andere specifieke dingen) betekent dat een parser die 2e2
ziet kan snel onderscheiden dat dit een numerieke uitdrukking is, hetzelfde probleem met 3.4
Hoewel het mogelijk zou zijn om een schema te bedenken om numerieke hoofdtekens toe te staan, zou dit kunnen leiden tot nog meer obscure regels (mening), dus deze regel is een mooie oplossing. Als je eerst cijfers toestaat, moet het altijd worden geciteerd, wat aantoonbaar niet zo 'schoon' is.
Disclaimer , Ik heb het bovenstaande enigszins vereenvoudigd, waarbij ik de namen van de correlaties negeer om het kort te houden. Ik ben niet helemaal bekend met postgres, maar heb het bovenstaande antwoord dubbel gecontroleerd aan de hand van Oracle RDB-documentatie en sql-specificaties