Jazyk SQL: Rozdiel medzi revíziami
Riadok 3: | Riadok 3: | ||
Jazyk SQL (Structured Query Language) je štandardizovaný jazyk pre prístup k dátam databázy. | Jazyk SQL (Structured Query Language) je štandardizovaný jazyk pre prístup k dátam databázy. | ||
==Čo sa dá robiť pomocou SQL== | ==Čo sa dá robiť pomocou SQL== | ||
− | * SQL dokáže vykonávať dotazy nad databázou | + | * SQL dokáže vykonávať dotazy nad databázou. |
− | * SQL môže načítať dáta z databázy | + | * SQL môže načítať dáta z databázy. |
− | * SQL môže vkladať záznamy do databázy | + | * SQL môže vkladať záznamy do databázy. |
− | * SQL môže aktualizovať záznamy v databáze | + | * SQL môže aktualizovať záznamy v databáze. |
− | * SQL môže odstraňovať záznamy z databázy | + | * SQL môže odstraňovať záznamy z databázy. |
− | * pomocou SQL je možné vytvárať nové databázy | + | * pomocou SQL je možné vytvárať nové databázy. |
− | * pomocou SQL je možné vytvárať nové tabuľky v databáze | + | * pomocou SQL je možné vytvárať nové tabuľky v databáze. |
− | * pomocou SQL je možné vytvárať uložené procedúry v databáze | + | * pomocou SQL je možné vytvárať uložené procedúry v databáze. |
− | * pomocou SQL je možné vytvoriť pohľady v databáze | + | * pomocou SQL je možné vytvoriť pohľady v databáze. |
− | * SQL dokáže nastaviť používateľské oprávnenie pre tabuľky, procedúry a pohľady | + | * SQL dokáže nastaviť používateľské oprávnenie pre tabuľky, procedúry a pohľady. |
− | Jazyk SQL je case-sensitive, to znamená je neberie ohľad na veľkosť písmen. V praxi to znamená, že výraz ''select'' má rovnaký význam ako ''SELECT''. | + | Jazyk SQL nie je case-sensitive, to znamená je neberie ohľad na veľkosť písmen. V praxi to znamená, že výraz ''select'' má rovnaký význam ako ''SELECT''. |
==Rozdelenie jazyka SQL== | ==Rozdelenie jazyka SQL== | ||
Jazyk SQL môžeme deliť na podskupiny: | Jazyk SQL môžeme deliť na podskupiny: | ||
− | ;DML - Data Manipulation Language:DML je rodina programovacích jazykov, ktoré umožňujú používateľom vkladať, mazať a aktualizovať údaje v databáze. V SQL sa | + | ;DML - Data Manipulation Language.:DML je rodina programovacích jazykov, ktoré umožňujú používateľom vkladať, mazať a aktualizovať údaje v databáze. V SQL sa používa na načítanie a manipuláciu s dátami v relačnej databáze. Patria sem príkazy: SELECT, INSERT, UPDATE, DELETE. |
− | ;DDL - Data Definition Language: Jazyk DDL je časť jazyka SQL pre definíciu dát. Patria sem príkazy, pomocou ktorých môžeme vytvárať a mazať databázy a tabuľky. Jedná sa o príkazy: CREATE, DROP, ALTER | + | ;DDL - Data Definition Language.: Jazyk DDL je časť jazyka SQL pre definíciu dát. Patria sem príkazy, pomocou ktorých môžeme vytvárať a mazať databázy a tabuľky. Jedná sa o príkazy: CREATE, DROP, ALTER. |
− | ;DCL - Data Control Language: DCL je podmnožina jazyka SQL pre riadenie prístupu k databáze, tabuľkám databázy a ostatným objektom databázy. Patria sem príkazy GRANT, REVOKE | + | ;DCL - Data Control Language.: DCL je podmnožina jazyka SQL pre riadenie prístupu k databáze, tabuľkám databázy a ostatným objektom databázy. Patria sem príkazy GRANT, REVOKE. |
− | ==Vzorový príklad - databáza WORLD== | + | ==Vzorový príklad 1 - databáza WORLD== |
[[Súbor:Databáza world.jpg|thumb|right]] | [[Súbor:Databáza world.jpg|thumb|right]] | ||
Pre vysvetlenie SQL príkazov budeme pracovať s databázou "world"<ref>Databáza WORLD - http://dev.mysql.com/doc/world-setup/en/world-setup.html</ref>, ktorá je distribuovaná ako vzorová databáza pre databázový server MySQL <ref>MySQL server - http://www.mysql.com/downloads/mysql/</ref> | Pre vysvetlenie SQL príkazov budeme pracovať s databázou "world"<ref>Databáza WORLD - http://dev.mysql.com/doc/world-setup/en/world-setup.html</ref>, ktorá je distribuovaná ako vzorová databáza pre databázový server MySQL <ref>MySQL server - http://www.mysql.com/downloads/mysql/</ref> | ||
===Databáza world=== | ===Databáza world=== | ||
− | Databáza world obsahuje informácie o krajinách, mestách a jazykoch používaných v jednotlivých krajinách sveta. Databáza obsahuje 3 tabuľky: | + | Databáza ''world'' obsahuje informácie o krajinách, mestách a jazykoch používaných v jednotlivých krajinách sveta. Databáza obsahuje 3 tabuľky: |
− | * city | + | * ''city'', |
− | * country | + | * ''country'', |
− | * countrylanguage | + | * ''countrylanguage''. |
− | Na nasledujúcom obrázku je ER diagram datazázy world | + | |
+ | Na nasledujúcom obrázku je ER diagram datazázy ''world''. | ||
[[Súbor:Er diagram world.png|center|frame|ER diagram datazázy world]] | [[Súbor:Er diagram world.png|center|frame|ER diagram datazázy world]] | ||
Riadok 34: | Riadok 35: | ||
====Zoznam miest sveta==== | ====Zoznam miest sveta==== | ||
− | V tabuľke ''city'' | + | V tabuľke ''city'' je zoznam niektorých, vybraných miest sveta. Spolu je v tabuľke 4079 záznamov. Mesto je opísané nasledujúcimi atribútmi: |
{|class="wikitable" | {|class="wikitable" | ||
− | |+ Tabuľka city (databáza world) | + | |+ Tabuľka ''city'' (databáza ''world'') |
|- | |- | ||
!ID | !ID | ||
Riadok 56: | Riadok 57: | ||
====Zoznam krajín sveta==== | ====Zoznam krajín sveta==== | ||
− | V tabuľke ''country'' | + | V tabuľke ''country'' je zoznam krajín sveta. Spolu je v tabuľke 239 záznamov. Krajina je opísaná nasledujúcimi atribútmi: |
{|class="wikitable" | {|class="wikitable" | ||
− | |+ Tabuľka country (databáza world) | + | |+ Tabuľka ''country'' (databáza ''world'') |
|- | |- | ||
!Code | !Code | ||
Riadok 67: | Riadok 68: | ||
|- | |- | ||
!Continent | !Continent | ||
− | |Kontinent, na ktorom sa krajina nachádza. Sú povolené len nasledujúce hodnoty: 'Asia','Europe','North America','Africa','Oceania','Antarctica','South America' | + | |Kontinent, na ktorom sa krajina nachádza. Sú povolené len nasledujúce hodnoty: 'Asia', 'Europe', 'North America', 'Africa', 'Oceania', 'Antarctica', 'South America'. |
|- | |- | ||
!Region | !Region | ||
Riadok 82: | Riadok 83: | ||
|- | |- | ||
!LifeExpectancy | !LifeExpectancy | ||
− | |Priemerná dĺžka života | + | |Priemerná dĺžka života. |
|- | |- | ||
!GNP | !GNP | ||
− | |Hrubý domáci produkt | + | |Hrubý domáci produkt. |
|- | |- | ||
!GNPOld | !GNPOld | ||
Riadok 109: | Riadok 110: | ||
====Zoznam jazykov používaných v krajine==== | ====Zoznam jazykov používaných v krajine==== | ||
− | + | V tabuľke ''countrylanguage'' sa nachádza zoznam niektorých, vybraných jazykov. Spolu je v tabuľke 984 záznamov. Jazyk je opísaný nasledujúcimi atribútmi: | |
− | V tabuľke countrylanguage sa nachádza zoznam niektorých, vybraných jazykov. Spolu je v tabuľke 984 záznamov. | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ Tabuľka countrylanguage (databáza world) | |+ Tabuľka countrylanguage (databáza world) | ||
Riadok 127: | Riadok 127: | ||
|} | |} | ||
− | Primárny kľúč: | + | Primárny kľúč je kompozitný, teda zložený z dvoch atribútov: ''CountryCode'' a ''Language''. |
+ | |||
+ | ==Vzorový príklad 2 - databáza Prekladový slovník== | ||
+ | V nasledujúcom texte bude navrhnutý ER diagram prekladového slovníka. V prvej verzii pôjde o jednosmerný prekladový slovník, v druhej verzii už bude obojsmerný prekladový slovník. | ||
+ | |||
===Slovník ver.1 - Anglicko-Slovenský slovník=== | ===Slovník ver.1 - Anglicko-Slovenský slovník=== | ||
+ | |||
'''Úloha:''' | '''Úloha:''' | ||
Vytvorte funkčný databázový model jednosmerného prekladového slovníka z angličtiny do slovenčiny. Anglické slová budú mať pridelené kategórie. | Vytvorte funkčný databázový model jednosmerného prekladového slovníka z angličtiny do slovenčiny. Anglické slová budú mať pridelené kategórie. | ||
+ | |||
'''Analýza úlohy:''' | '''Analýza úlohy:''' | ||
Úlohou je vytvoriť model slovníka, v ktorom bude možné jednému anglickému slovu priradiť viacero slovenských prekladov. V danej úlohe identifikujeme nasledovné entity: | Úlohou je vytvoriť model slovníka, v ktorom bude možné jednému anglickému slovu priradiť viacero slovenských prekladov. V danej úlohe identifikujeme nasledovné entity: | ||
− | *anglické slová (slova_en) | + | *anglické slová (''slova_en'') |
− | *slovenské slová (slova_sk) | + | *slovenské slová (''slova_sk'') |
− | *kategórie anglických slov (kategorie) | + | *kategórie anglických slov (''kategorie'') |
Pre dané entity identifikujeme nasledujúce atribúty: | Pre dané entity identifikujeme nasledujúce atribúty: | ||
Riadok 153: | Riadok 159: | ||
Medzi danými entitami identifikujeme nasledujúcu mohutnosť: | Medzi danými entitami identifikujeme nasledujúcu mohutnosť: | ||
− | * slova_en - slova_sk | + | * ''slova_en'' - ''slova_sk'' |
** mohutnosť 1:N | ** mohutnosť 1:N | ||
** modalita: povinná účasť | ** modalita: povinná účasť | ||
− | * kategorie - slova_en | + | * ''kategorie'' - ''slova_en'' |
**mohutnosť 1:N | **mohutnosť 1:N | ||
** modalita: povinná účasť | ** modalita: povinná účasť | ||
Riadok 164: | Riadok 170: | ||
[[Súbor:Prekladový slovník jednosmerný ERD.png|center|frame|ERD - Jednosmerný prekladový slovník]] | [[Súbor:Prekladový slovník jednosmerný ERD.png|center|frame|ERD - Jednosmerný prekladový slovník]] | ||
− | Navrhnuté dátové typu pre atribúty entít sú vidieť na | + | Navrhnuté dátové typu pre atribúty entít sú vidieť na predchádzajúcom obrázku. |
===Slovník ver.2 - obojsmerný slovník=== | ===Slovník ver.2 - obojsmerný slovník=== | ||
Riadok 173: | Riadok 179: | ||
'''Analýza úlohy:''' | '''Analýza úlohy:''' | ||
− | Podľa | + | |
+ | Podľa zadania je potrebné navrhnúť obojstranný prekladový slovník. V praxi to znamená, že jedno anglické slovo môže mať viac slovenských prekladov a jedno slovenské slovo môže mať taktiež viac slovenských prekladov. Medzi týmito entitami je teda vzťah M:N. | ||
Vieme, že vzťah M:N sa nedá priamo namodelovať. Rozdelíme ho teda na dva vzťahy: | Vieme, že vzťah M:N sa nedá priamo namodelovať. Rozdelíme ho teda na dva vzťahy: | ||
− | * slova_en - preklad (1:N) | + | * ''slova_en'' - ''preklad'' (1:N) |
− | * preklad - slova_sk (N:1) | + | * ''preklad'' - ''slova_sk'' (N:1) |
Pre entitu preklad definujeme nasledujúce atribúty: | Pre entitu preklad definujeme nasledujúce atribúty: | ||
− | *en_id - odkaz na anglické slovo (cudzí kľúč) | + | *''en_id'' - odkaz na anglické slovo (cudzí kľúč) |
− | *sk_id - odkaz na slovenské slovo (cudzí kľúč) | + | *''sk_id'' - odkaz na slovenské slovo (cudzí kľúč) |
− | *kategorie_id - odkaz na kategóriu (cudzí kľúč) | + | *''kategorie_id'' - odkaz na kategóriu (cudzí kľúč) |
− | Pre túto entitu určíme kompozintý primárny kľúč. Bude pozostávať z dvoch atribútov: (en_id, sk_id). Na nasledujúcom obrázku je obsah tabuľky preklad. V ľavej časti vidieť len hodnoty cudzích kľúčov tak, ako sú uložené v tabuľke. V pravej časti je namiesto týchto číselných hodnôt zobrazené samotné slovenské, resp anglické slovo a aj názov kategórie. | + | Pre túto entitu určíme kompozintý primárny kľúč. Bude pozostávať z dvoch atribútov: (''en_id'', ''sk_id''). Na nasledujúcom obrázku je obsah tabuľky preklad. V ľavej časti vidieť len hodnoty cudzích kľúčov tak, ako sú uložené v tabuľke. V pravej časti je namiesto týchto číselných hodnôt zobrazené samotné slovenské, resp anglické slovo a aj názov kategórie. |
Riadok 192: | Riadok 199: | ||
[[Súbor:Prekladový slovník obojsmerný ERD.png|center|frame|ERD obojsmerného prekladového slovníka]] | [[Súbor:Prekladový slovník obojsmerný ERD.png|center|frame|ERD obojsmerného prekladového slovníka]] | ||
− | Navrhnuté dátové | + | Navrhnuté dátové typy pre atribúty entít sú vidieť na predchádzajúco obrázku. |
==Spôsob zápisu syntaxe SQL== | ==Spôsob zápisu syntaxe SQL== | ||
Riadok 200: | Riadok 207: | ||
V pravidlách BNF sa vyskytujú metasymboly (symboly, které nie sú súčasťou syntaxe, ale umožňujú zápis syntaxe): | V pravidlách BNF sa vyskytujú metasymboly (symboly, které nie sú súčasťou syntaxe, ale umožňujú zápis syntaxe): | ||
− | *<nowiki>::=</nowiki> oddeľuje | + | *<nowiki>::=</nowiki> oddeľuje ľavú a pravú stranu výrazu. Ľavá strana - syntaktický zápis, ktorý ideme definovať. Pravá strana - definícia syntaxe. |
− | *<nowiki>|</nowiki> | + | *<nowiki>|</nowiki> oddelovač variánt |
*<nowiki>[ ]</nowiki> zátvorky vymezujúce nepovinnú časť | *<nowiki>[ ]</nowiki> zátvorky vymezujúce nepovinnú časť | ||
*<nowiki>{ }</nowiki> metazátvorky (ohraničujú určitú časť pravidla) | *<nowiki>{ }</nowiki> metazátvorky (ohraničujú určitú časť pravidla) | ||
− | *<nowiki>...</nowiki> symbol označujúcí nula nebo viac opakovaní bezprostredne predchásdzajúceho symbolu (nebo více symbolů v metazávorkách) | + | *<nowiki>'...'</nowiki> symbol označujúcí nula nebo viac opakovaní bezprostredne predchásdzajúceho symbolu (nebo více symbolů v metazávorkách) |
Verzia zo dňa a času 19:23, 10. január 2011
Jazyk SQL (Structured Query Language) je štandardizovaný jazyk pre prístup k dátam databázy.
Obsah
Čo sa dá robiť pomocou SQL
- SQL dokáže vykonávať dotazy nad databázou.
- SQL môže načítať dáta z databázy.
- SQL môže vkladať záznamy do databázy.
- SQL môže aktualizovať záznamy v databáze.
- SQL môže odstraňovať záznamy z databázy.
- pomocou SQL je možné vytvárať nové databázy.
- pomocou SQL je možné vytvárať nové tabuľky v databáze.
- pomocou SQL je možné vytvárať uložené procedúry v databáze.
- pomocou SQL je možné vytvoriť pohľady v databáze.
- SQL dokáže nastaviť používateľské oprávnenie pre tabuľky, procedúry a pohľady.
Jazyk SQL nie je case-sensitive, to znamená je neberie ohľad na veľkosť písmen. V praxi to znamená, že výraz select má rovnaký význam ako SELECT.
Rozdelenie jazyka SQL
Jazyk SQL môžeme deliť na podskupiny:
- DML - Data Manipulation Language.
- DML je rodina programovacích jazykov, ktoré umožňujú používateľom vkladať, mazať a aktualizovať údaje v databáze. V SQL sa používa na načítanie a manipuláciu s dátami v relačnej databáze. Patria sem príkazy: SELECT, INSERT, UPDATE, DELETE.
- DDL - Data Definition Language.
- Jazyk DDL je časť jazyka SQL pre definíciu dát. Patria sem príkazy, pomocou ktorých môžeme vytvárať a mazať databázy a tabuľky. Jedná sa o príkazy: CREATE, DROP, ALTER.
- DCL - Data Control Language.
- DCL je podmnožina jazyka SQL pre riadenie prístupu k databáze, tabuľkám databázy a ostatným objektom databázy. Patria sem príkazy GRANT, REVOKE.
Vzorový príklad 1 - databáza WORLD
Pre vysvetlenie SQL príkazov budeme pracovať s databázou "world"[1], ktorá je distribuovaná ako vzorová databáza pre databázový server MySQL [2]
Databáza world
Databáza world obsahuje informácie o krajinách, mestách a jazykoch používaných v jednotlivých krajinách sveta. Databáza obsahuje 3 tabuľky:
- city,
- country,
- countrylanguage.
Na nasledujúcom obrázku je ER diagram datazázy world.
Vzorová databáza sa dá stiahnuť zo stránok MySQL: http://dev.mysql.com/doc/index-other.html
Zoznam miest sveta
V tabuľke city je zoznam niektorých, vybraných miest sveta. Spolu je v tabuľke 4079 záznamov. Mesto je opísané nasledujúcimi atribútmi:
ID | indentifikátor záznamu (primárny kľúč tabuľku). Slúži na jednoznačnú identifikáciu mesta. |
---|---|
Name | Názov mesta. |
CountryCode | 3-miestny kód krajiny, v ktorom sa nachádza dané mesto. |
District | Definuje okres, v ktorom sa nachádza dané mesto |
Population | Populácia v danom meste. |
Primárny kľúč: ID
Zoznam krajín sveta
V tabuľke country je zoznam krajín sveta. Spolu je v tabuľke 239 záznamov. Krajina je opísaná nasledujúcimi atribútmi:
Code | Trojznakový kód krajiny. |
---|---|
Name | Názov krajiny v anglickom jazyku. |
Continent | Kontinent, na ktorom sa krajina nachádza. Sú povolené len nasledujúce hodnoty: 'Asia', 'Europe', 'North America', 'Africa', 'Oceania', 'Antarctica', 'South America'. |
Region | Oblasť v rámci kontinentu. |
SurfaceArea | Rozloha krajiny. |
IndepYear | Rok založenia krajiny. |
Population | Počet obyvateľov krajiny. |
LifeExpectancy | Priemerná dĺžka života. |
GNP | Hrubý domáci produkt. |
GNPOld | Hrubý domáci produkt za predchádzajúce sledované obdobie. |
LocalName | Názov krajiny v lokálnom jazyku. |
GovernmentForm | Forma vlády. |
HeadOfState | Hlava štátu. |
Capital | Odkaz na hlavné mesto. Toto číslo odkazuje na ID mesta v tabuľke city. |
Code2 | Dvojznakový kód krajiny. |
Primárny kľúč: code
Zoznam jazykov používaných v krajine
V tabuľke countrylanguage sa nachádza zoznam niektorých, vybraných jazykov. Spolu je v tabuľke 984 záznamov. Jazyk je opísaný nasledujúcimi atribútmi:
CountryCode | 3-miestny kód krajiny. |
---|---|
Language | Názov jazyka |
IsOfficial | Informácia o tom, či je jazyk v krajine oficiálny. Atribút môže obsahovať iba hodnoty 'F' (false) alebo 'T' (true). |
Percentage | Percento populácie, ktoré v danej krajine hovorí daným jazykom. |
Primárny kľúč je kompozitný, teda zložený z dvoch atribútov: CountryCode a Language.
Vzorový príklad 2 - databáza Prekladový slovník
V nasledujúcom texte bude navrhnutý ER diagram prekladového slovníka. V prvej verzii pôjde o jednosmerný prekladový slovník, v druhej verzii už bude obojsmerný prekladový slovník.
Slovník ver.1 - Anglicko-Slovenský slovník
Úloha:
Vytvorte funkčný databázový model jednosmerného prekladového slovníka z angličtiny do slovenčiny. Anglické slová budú mať pridelené kategórie.
Analýza úlohy:
Úlohou je vytvoriť model slovníka, v ktorom bude možné jednému anglickému slovu priradiť viacero slovenských prekladov. V danej úlohe identifikujeme nasledovné entity:
- anglické slová (slova_en)
- slovenské slová (slova_sk)
- kategórie anglických slov (kategorie)
Pre dané entity identifikujeme nasledujúce atribúty:
- slova_en
- identifikačné číslo slova (primárny kľúč)
- anglické slovo
- kategória, do ktorej slovo patrí. Kategória bude reprezentovaná odkazom na názov kategórie v entite kategorie.
- slova_sk
- identifikačné číslo slova (primárny kľúč)
- slovenské slovo
- kategorie
- identifikačné číslo kategórie (primárny kľúč)
- názov kategórie
Medzi danými entitami identifikujeme nasledujúcu mohutnosť:
- slova_en - slova_sk
- mohutnosť 1:N
- modalita: povinná účasť
- kategorie - slova_en
- mohutnosť 1:N
- modalita: povinná účasť
Pre navrhnuté entity a identifikované vzťahy medzi nimi navrhujeme nasledujúci entitno-relačný diagram.
Navrhnuté dátové typu pre atribúty entít sú vidieť na predchádzajúcom obrázku.
Slovník ver.2 - obojsmerný slovník
Úloha:
Vytvorte funkčný databázový model obojstranného prekladového slovníka. Daný preklad slova (anglického/slovenského) bude zaradený do kategórie.
Analýza úlohy:
Podľa zadania je potrebné navrhnúť obojstranný prekladový slovník. V praxi to znamená, že jedno anglické slovo môže mať viac slovenských prekladov a jedno slovenské slovo môže mať taktiež viac slovenských prekladov. Medzi týmito entitami je teda vzťah M:N. Vieme, že vzťah M:N sa nedá priamo namodelovať. Rozdelíme ho teda na dva vzťahy:
- slova_en - preklad (1:N)
- preklad - slova_sk (N:1)
Pre entitu preklad definujeme nasledujúce atribúty:
- en_id - odkaz na anglické slovo (cudzí kľúč)
- sk_id - odkaz na slovenské slovo (cudzí kľúč)
- kategorie_id - odkaz na kategóriu (cudzí kľúč)
Pre túto entitu určíme kompozintý primárny kľúč. Bude pozostávať z dvoch atribútov: (en_id, sk_id). Na nasledujúcom obrázku je obsah tabuľky preklad. V ľavej časti vidieť len hodnoty cudzích kľúčov tak, ako sú uložené v tabuľke. V pravej časti je namiesto týchto číselných hodnôt zobrazené samotné slovenské, resp anglické slovo a aj názov kategórie.
Na nasledujúcom obrázku je entitno relačný diagram pre obojsmerný prekladový slovník.
Navrhnuté dátové typy pre atribúty entít sú vidieť na predchádzajúco obrázku.
Spôsob zápisu syntaxe SQL
V nasledujúcich častiach budú vysvetľované príkazy jazyka SQL. Pri definovaní syntaxe v programovacích jazykoch je zaužívaný spôsob pomocou Backus-Naurovej formy[3] - BNF. Je to uviverzálny spôsob akým je možno vysvetliť syntax programovacieho jazyka.
V krátkosti vysvetlíme tento zápis:
V pravidlách BNF sa vyskytujú metasymboly (symboly, které nie sú súčasťou syntaxe, ale umožňujú zápis syntaxe):
- ::= oddeľuje ľavú a pravú stranu výrazu. Ľavá strana - syntaktický zápis, ktorý ideme definovať. Pravá strana - definícia syntaxe.
- | oddelovač variánt
- [ ] zátvorky vymezujúce nepovinnú časť
- { } metazátvorky (ohraničujú určitú časť pravidla)
- '...' symbol označujúcí nula nebo viac opakovaní bezprostredne predchásdzajúceho symbolu (nebo více symbolů v metazávorkách)
Príklad:
INSERT::= INSERT INTO tabulka [(stlpec1 {,stlpec2}… )] obsah
obsah ::= VALUES ( hodnota {, hodnota }… ) | DEFAULT VALUES | dotazový_výraz
Vysvetlenie:
- Definujeme syntaktické pravidlá pre príkaz INSERT.
- V príkaze INSERT sú povinné tieto časti: INSERT INTO tabulka a obsah
- to, čo je v hranatých zátvorkách, je nepovinné.
- ak budeme uvádzať názvy stĺpcov, musíme uviesť názov minimálne jedného stlpec1, ale možeme uviesť aj iné názvy stĺpcov. Pri názvoch hranaté zátvorky nepíšeme.
Zdroje a odkazy
- ↑ Databáza WORLD - http://dev.mysql.com/doc/world-setup/en/world-setup.html
- ↑ MySQL server - http://www.mysql.com/downloads/mysql/
- ↑ Backusova-Naurova forma http://en.wikipedia.org/wiki/Backus_Naur_Form