Geodatabáze – cvičení 1 Mgr. Josef Chrást (269703@mail.muni.cz) znak_PrF_cerny_RGB.emf Obsah cvičení —Načítání dat – SELECT ◦Klauzule FROM ◦Řazení výsledků – ORDER BY ◦Filtrování řádků – WHERE –Operátory porovnání –Spojovací operátory –Logické operátory –Aritmetické operátory —Praktické cvičení 2 21.10.2013 SELECT —Data Query Language —Výběr sloupců z tabulky (odděleny čárkami) —Výběr všech sloupců (*) —Klauzule FROM Př. : 1) SELECT nazev_filmu, hodnoceni_csfd FROM filmy 2) SELECT nazev_filmu AS nazev, hodnoceni_csfd AS hodnoceni FROM filmy 3 21.10.2013 ORDER BY —Řazení řádků v sadě výsledků —Pomocí 1 nebo více sloupců —Vzestupně (ASC) x sestupně (DESC) — Př. : 1) SELECT hodnoceni_csfd, nazev_filmu FROM filmy ORDER BY hodnoceni_csfd DESC 2) SELECT rok_produkce, hodnoceni_csfd, nazev_filmu FROM filmy ORDER BY rok_produkce ASC, hodnoceni_csfd DESC 4 21.10.2013 WHERE —Výběr řádků omezen podmínkou —I. Operátory porovnání ◦=, <, <=, >, >=, … ◦Porovnání hodnot sloupců, konstant v klauzuli nebo hodnot a konstant Př. : 1) SELECT hodnoceni_csfd, nazev_filmu FROM filmy WHERE reziser_prij = 'Hrebejk' ORDER BY hodnoceni_csfd DESC 2) SELECT hodnoceni_csfd, nazev_filmu, reziser_prij FROM filmy WHERE hodnoceni_csfd >= 90 ORDER BY hodnoceni_csfd DESC 5 21.10.2013 —II. Spojovací operátory ◦Zkombinování více podmínek v klauzuli ◦AND x OR 6 Př. : 1) SELECT rok_produkce, hodnoceni_csfd, nazev_filmu FROM filmy WHERE rok_produkce = '2012' AND hodnoceni_csfd > 90 2) SELECT naklady, reziser_prij, nazev_filmu FROM filmy WHERE (reziser_prij = 'Sverak' OR reziser_prij = 'Menzel') AND naklady < 1 000 000 ORDER BY naklady 21.10.2013 —III. Logické operátory ◦Užití klíčových slov při porovnávání ◦IS NULL (IS NOT NULL) –≠ podmínce „= NULL“ –Pouze dotaz na záznamy s prázdnou (neprázdnou) hodnotou 7 Př. : 1) SELECT nazev_filmu FROM filmy WHERE naklady IS NULL 2) SELECT premiera, nazev_filmu FROM filmy WHERE rok_produkce = '2013' AND premiera IS NOT NULL 21.10.2013 ◦BETWEEN –Hodnoty v určitém rozsahu (včetně min. a max. hodnoty) –Rychlejší než operátory porovnání (>=, <=) ◦ ◦ ◦LIKE –Porovnání pro textové hodnoty –(_) zástupný symbol za jeden znak –(%) zástupný symbol pro libovolný počet znaků – ◦ – 8 Př. : 1) SELECT naklady, nazev_filmu FROM filmy WHERE naklady BETWEEN 10 000 000 AND 20 000 000 ORDER BY nakladyASC 21.10.2013 Př. : 1) SELECT nazev_filmu FROM filmy WHERE nazev_filmu LIKE 'Tři%' ◦IN –Lze nahradit logickým operátorem OR –Jednodušší — — —IV. Aritmetické operátory ◦K matematickým výpočtům ◦+, -, *, / 21.10.2013 9 Př. : 1) SELECT (vynosy – naklady)*0.85 AS zisk FROM filmy WHERE reziser_prij = 'Sverak' AND nazev_filmu = 'Vratne lahve' Př. : 1) SELECT nazev_filmu, reziser_prij FROM filmy WHERE reziser_prij IN ('Sverak', 'Menzel') Praktické cvičení —Vytvořte tabulku Vašich TOP 5 nejoblíbenějších filmů (xUčo_filmy) ◦ČSFD ( http://www.csfd.cz/ ) ◦Atributy –nazev_filmu –reziser_prij –rok_produkce –zeme –hodnoceni_csfd –poradi_csfd (kategorie „Nejlepší filmy“) –delka_filmu —Úkoly ◦I. Vypište z tabulky všechny filmy, které mají podle ČSFD hodnocení vyšší než 80%. Výstupy seřaďte sestupně podle roku, ve kterém byly produkovány. Sada výsledků nechť obsahuje i jméno (příjmení) režiséra. ◦II. Vypište jména všech režisérů, jejichž filmy se nachází v hodnocení žebříčku „Nejlepší filmy“, nebyly natočeny v Česku a netrvají déle než 2 hodiny. V sadě výsledků uveďte i jméno filmu. Názvy sloupců nechť se zobrazí jako „Reziser“ a „Film“. ◦ — – – 21.10.2013 10