Difference between revisions of "Tvorba dotazů"
From Wikivyuka
m |
m |
||
(10 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] | ||
Line 6: | Line 6: | ||
GROUP BY určuje seskupení údajů z databáze podle určitých pravidel | GROUP BY určuje seskupení údajů z databáze podle určitých pravidel | ||
HAVING podmínka_seskupení | HAVING podmínka_seskupení | ||
− | ORDER BY seznam_položek [ASC] [DESC] | + | 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:''' | '''Vyzkoušejte sami vytvořit následující dotazy:''' | ||
+ | |||
+ | ''Dotazy nad jednou tabulkou'' | ||
#Vypište všechny údaje z tabulky Ctenar. | #Vypište všechny údaje z tabulky Ctenar. | ||
Line 16: | Line 32: | ||
#Vypište seznam knih – ceny a názvy. | #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). | #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? | + | #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é) | #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 25: | 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.