Difference between revisions of "Tvorba dotazů"

From Wikivyuka
Jump to: navigation, search
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 jméno_tabulky_nebo_dotazu
+
'''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.
  
WHERE podmínka_výběru
+
'''Vyzkoušejte sami vytvořit následující dotazy:'''
  
GROUP BY určuje seskupení údajů z databáze podle určitých pravidel
+
''Dotazy nad jednou tabulkou''
  
HAVING podmínka_seskupení
+
#Vypište všechny údaje z tabulky Ctenar.
 
+
#Vypište jmenný seznam z tabulky Ctenar.
ORDER BY seznam_položek [ASC] [DESC]
+
#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 Čtenar
+
#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ě řína?
+
#Které knihy se rezervovaly v první polovině října?
#Kolik knih se rezervovalo v říjnu (v první polovině řína)?
+
#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

  1. Vypište všechny údaje z tabulky Ctenar.
  2. Vypište jmenný seznam z tabulky Ctenar.
  3. Vypište jmenný abecedně setříděný seznam z tabulky Ctenar.
  4. Vytvořte adresní seznam z tabulky Ctenar.
  5. Vypište seznam knih – ceny a názvy.
  6. 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).
  7. Jak se jmenuje čtenář s číselným označením 3? (bez výpisu čísla čtenáře)
  8. Vypište všechny opavské a ostravské čtenáře. (nejprve opavské, pak ostravské)
  9. Které knihy se rezervovaly v první polovině října?
  10. Kolik knih se rezervovalo v říjnu (v první polovině října)?
  11. Jaká je cena všech pořízených knih?
  12. Kolik je čtenářů z různých měst?
  13. Vypište seznam čtenářů z různých měst.
  14. Jaká je průměrná cena pořízených knih?
  15. Jaké jsou názvy knih, které jsou dražší než je průměrná cena?
  16. Kolik exemplářů je v knihovně pro titul, který si chce někdo rezervovat?
  17. Jaké je datum vrácení prvního exempláře zarezervovaného titulu? (Kdy má být teoreticky vrácen.)
  18. 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.

Zpět na stránku Úlohy k procvičení

Zpět na stránku DBS - cvičení