602SQL-Úplná dokumentace Index  

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 }