602SQL-Úplná dokumentace Index  

Popis syntaxe jazyka SQL ve 602SQL

Pro zápis syntaxe SQL se používá upravená BNF (Backus Naur Form). Syntaxe je popsána soustavou pravidel ve tvaru:

neterminál ::= popis_syntaxe_neterminálu

Pravá strana pravidla říká, jakou syntaxi může mít neterminál uvedený na jeho levé straně. Obsahuje symboly, které budou zapsány přímo v SQL (terminální symboly) a neterminály, které jsou definovány jinými pravidly. Na pravé straně se také mohou vyskytovat tyto metasymboly, tedy symboly, které nejsou součástí syntaxe, ale umožňují zápis syntaxe. Metasymboly jsou:

| oddělovač variant - lze použít jednu nebo druhou variantu
[ ] závorky vymezující nepovinnou část
{ } metazávorky (ohraničují určitou část pravidla)
symbol označující nula nebo více opakování bezprostředně předcházejícího symbolu (nebo více symbolů v metazávorkách)

Příklad použití zápisu:

příkaz_INSERT ::= INSERT INTO jméno_tabulky [ ( jméno_sloupce {,jméno_sloupce}… ) ] obsah
obsah ::= VALUES ( hodnota {, hodnota }… ) | DEFAULT VALUES | dotazový_výraz

Jak číst takovýto zápis:

Příkaz INSERT je definován takto: začíná povinnými vyhrazenými slovy INSERT INTO následovanými neterminálem jméno_tabulky. Obsah neterminálu jméno_tabulky je v tomto případě zřejmý.

Dále následují metasymboly - hranaté závorky - vymezující nepovinnou část. V ní jsou kulaté závorky - ty nepatří mezi metasymboly, jsou tedy součástí příkazu. Obsahují jeden nebo více neterminálů jméno_sloupce. Složené závorky zde vymezují část, ke které se vztahuje symbol pro opakování.

Následuje neterminál obsah, jehož syntaxe je definovaná v následujícím pravidle. Pomocí oddělovačů variant jsou naznačeny tři různé, navzájem se vylučující možnosti syntaxe. První varianta začíná vyhrazeným slovem VALUES a pokračuje výčtem jedné nebo více hodnot v kulatých závorkách. Druhá varianta se skládá pouze ze slov DEFAULT VALUES. Třetí varianta odkazuje na neterminál dotazový výraz. Dotazový výraz je pojmem, na který je odkazováno z mnoha míst, proto je definován na zvláštní stránce.

Příkladem příkazu INSERT vyhovujícímu těmto pravidlům, je:
INSERT INTO Inventory(name, id, price) VALUES ('Empo', 546000, 489.20)

Typografické poznámky

V příkladech dodržujeme tuto konvenci: zapisujeme jména tabulek s prvním písmenem velkým, jména sloupců malými písmeny, vyhrazená slova SQL velkými písmeny.