Kompletní BNF zápis příkazu CREATE TABLE
příkaz_CREATE_TABLE ::= CREATE [ IF NOT EXISTS ] TABLE [schéma.]jméno_tabulky [ příznak_tabulky … ]
(popis_elementu {, popis_elementu}… )
příznak_tabulky ::= REC_PRIVILS
popis_elementu ::= popis_sloupce | popis_omezení
popis_sloupce ::= jméno_sloupce typ [ DEFAULT implic_hodnota ]
[vlastnost_sloupce {, vlastnost_sloupce}… ] [ jazyk_a_třídění ]
implic_hodnota ::= výraz | USER | UNIQUE
vlastnost_sloupce ::= PRIMARY KEY | UNIQUE | INDEX | NOT NULL | REFERENCES jméno_tabulky jméno_sloupce
| CHECK ( podmínka )
jazyk_a_třídění ::= COLLATE [ jméno_jazyka ] [ IGNORE_CASE ]
jméno_jazyka ::= { CSSTRING | CSISTRING | CZ | PL | FR | DE | IT | CZ_ISO | PL_ISO | FR_ISO | DE_ISO | IT_ISO }
popis_omezení ::= [CONSTRAINT jméno_omezení] { popis_indexu | vnitřní_integritní_omezení
| referenční_integritní_omezení }
popis_indexu ::= { UNIQUE | PRIMARY KEY | INDEX } (výraz [směr] {, výraz [směr] }… )
[{ NULL | NOT NULL }]
směr ::= ASC | DESC
vnitřní_integritní_omezení ::= CHECK ( podmínka ) [ vyhodnocení ]
referenční_integritní_omezení ::= FOREIGN KEY (jméno_sloupce {, jméno_sloupce}… )
REFERENCES [schéma.]jméno_tabulky [ jméno_sloupce {, jméno_sloupce}… ]
[ ON UPDATE akce_referenční_integrity ] [ ON DELETE akce_referenční_integrity ]
[ vyhodnocení ]
akce_referenční_integrity ::= SET NULL | SET DEFAULT | CASCADE | NO ACTION
vyhodnoceni ::= INITIALLY { IMMEDIATE | DEFERRED }