Difference between revisions of "Tvorba dotazů"
From Wikivyuka
m |
m |
||
(12 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | SELECT – základní tvar | + | '''SELECT – základní tvar''' |
− | SELECT [*] [seznam atributů pro výstup] | + | SELECT [*] [seznam atributů pro výstup] |
+ | FROM jméno_tabulky_nebo_dotazu | ||
+ | WHERE podmínka_výběru | ||
+ | GROUP BY určuje seskupení údajů z databáze podle určitých pravidel | ||
+ | HAVING podmínka_seskupení | ||
+ | ORDER BY seznam_položek [ASC] [DESC]; | ||
− | FROM | + | '''Jak se dotaz vyhodnocuje?''' |
+ | 1. SŘBD nejprve zjistí seznam tabulek za klíčovým slovem FROM. | ||
+ | Je-li jich více, vytvoří kartézský součin. | ||
+ | 2. Je-li tabulek více, a použijeme-li za FROM některý typ spojení (INNER, OuTER ap.), | ||
+ | vyhodnotí se dle podmínky a dále se pracuje s podmnožinou záznamů z kartézského součinu. | ||
+ | 3. Je-li podmínka za WHERE, omezí se další zpracování na záznamy vyhovující podmínce. | ||
+ | 4. Je-li užito klíčové spojení GROUP BY, | ||
+ | vytvoří se podskupiny dle hodnot uvedeného atributu. | ||
+ | 5. Je-li podmínka HAVING, pak se dále zpracovávají jen ty podskupiny, | ||
+ | které vyhovují podmínce. | ||
+ | 6. Do výsledku se zahrne pouze jeden reprezentant z předchozího kroku. | ||
+ | 7. Je-li užito ORDER BY, setřídí se výsledek před zobrazením. | ||
+ | 8. Ve výsledku se zobrazí hodnoty atributů uvedených za slovem SELECT. | ||
− | + | '''Vyzkoušejte sami vytvořit následující dotazy:''' | |
− | + | ''Dotazy nad jednou tabulkou'' | |
− | + | #Vypište všechny údaje z tabulky Ctenar. | |
− | + | #Vypište jmenný seznam z tabulky Ctenar. | |
− | + | #Vypište jmenný abecedně setříděný seznam z tabulky Ctenar. | |
− | + | #Vytvořte adresní seznam z tabulky Ctenar. | |
− | #Vypište všechny údaje z tabulky Ctenar | + | #Vypište seznam knih – ceny a názvy. |
− | #Vypište jmenný seznam z tabulky | + | #Vypočtěte ceny zakoupených knih s přidáním 19% DPH (vypočtená hodnota je novým sloupcem s pojmenováním). |
− | #Vypište jmenný abecedně setříděný seznam z tabulky Ctenar | + | #Jak se jmenuje čtenář s číselným označením 3? (bez výpisu čísla čtenáře) |
− | #Vypište seznam knih – ceny a názvy | ||
− | #Vypočtěte ceny zakoupených knih s přidáním 19% DPH (vypočtená hodnota je novým sloupcem s pojmenováním) | ||
− | #Jak se jmenuje čtenář s číselným označením 3? | ||
#Vypište všechny opavské a ostravské čtenáře. (nejprve opavské, pak ostravské) | #Vypište všechny opavské a ostravské čtenáře. (nejprve opavské, pak ostravské) | ||
− | #Které knihy se rezervovaly v první polovině | + | #Které knihy se rezervovaly v první polovině října? |
− | #Kolik knih se rezervovalo v říjnu (v první polovině | + | #Kolik knih se rezervovalo v říjnu (v první polovině října)? |
#Jaká je cena všech pořízených knih? | #Jaká je cena všech pořízených knih? | ||
#Kolik je čtenářů z různých měst? | #Kolik je čtenářů z různých měst? | ||
Line 27: | Line 41: | ||
#Jaká je průměrná cena pořízených knih? | #Jaká je průměrná cena pořízených knih? | ||
#Jaké jsou názvy knih, které jsou dražší než je průměrná cena? | #Jaké jsou názvy knih, které jsou dražší než je průměrná cena? | ||
+ | # Kolik exemplářů je v knihovně pro titul, který si chce někdo rezervovat? | ||
+ | # Jaké je datum vrácení prvního exempláře zarezervovaného titulu? (Kdy má být teoreticky vrácen.) | ||
+ | #Jak se jmenuje čtenář, který má nejvíc výpůjček? [[nejvicVypujcek]] | ||
Latest revision as of 06:51, 22 November 2011
SELECT – základní tvar
SELECT [*] [seznam atributů pro výstup] FROM jméno_tabulky_nebo_dotazu WHERE podmínka_výběru GROUP BY určuje seskupení údajů z databáze podle určitých pravidel HAVING podmínka_seskupení ORDER BY seznam_položek [ASC] [DESC];
Jak se dotaz vyhodnocuje?
1. SŘBD nejprve zjistí seznam tabulek za klíčovým slovem FROM. Je-li jich více, vytvoří kartézský součin. 2. Je-li tabulek více, a použijeme-li za FROM některý typ spojení (INNER, OuTER ap.), vyhodnotí se dle podmínky a dále se pracuje s podmnožinou záznamů z kartézského součinu. 3. Je-li podmínka za WHERE, omezí se další zpracování na záznamy vyhovující podmínce. 4. Je-li užito klíčové spojení GROUP BY, vytvoří se podskupiny dle hodnot uvedeného atributu. 5. Je-li podmínka HAVING, pak se dále zpracovávají jen ty podskupiny, které vyhovují podmínce. 6. Do výsledku se zahrne pouze jeden reprezentant z předchozího kroku. 7. Je-li užito ORDER BY, setřídí se výsledek před zobrazením. 8. Ve výsledku se zobrazí hodnoty atributů uvedených za slovem SELECT.
Vyzkoušejte sami vytvořit následující dotazy:
Dotazy nad jednou tabulkou
- Vypište všechny údaje z tabulky Ctenar.
- Vypište jmenný seznam z tabulky Ctenar.
- Vypište jmenný abecedně setříděný seznam z tabulky Ctenar.
- Vytvořte adresní seznam z tabulky Ctenar.
- Vypište seznam knih – ceny a názvy.
- Vypočtěte ceny zakoupených knih s přidáním 19% DPH (vypočtená hodnota je novým sloupcem s pojmenováním).
- Jak se jmenuje čtenář s číselným označením 3? (bez výpisu čísla čtenáře)
- Vypište všechny opavské a ostravské čtenáře. (nejprve opavské, pak ostravské)
- Které knihy se rezervovaly v první polovině října?
- Kolik knih se rezervovalo v říjnu (v první polovině října)?
- Jaká je cena všech pořízených knih?
- Kolik je čtenářů z různých měst?
- Vypište seznam čtenářů z různých měst.
- Jaká je průměrná cena pořízených knih?
- Jaké jsou názvy knih, které jsou dražší než je průměrná cena?
- Kolik exemplářů je v knihovně pro titul, který si chce někdo rezervovat?
- Jaké je datum vrácení prvního exempláře zarezervovaného titulu? (Kdy má být teoreticky vrácen.)
- Jak se jmenuje čtenář, který má nejvíc výpůjček? nejvicVypujcek
Nápověda na stránkách Microsoft - jak přesně napsat podmínku kriteria vyhledávání v různém kódování najdete zde.