KIV/ZIS - SQL dotazy stáhnout soubor ZIS- 04_TestovaciDatabaze250312.accdb SQL dotazy textové příkazy pro získání nebo manipulaci s daty SELECT - výběr/výpis INSERT - vložení UPDATE - úprava DELETE - smazání budeme probírat pouze SELECT 1/24
KIV/ZIS - SELECT SELECT dotaz je podobný přirozenému jazyku SELECT... FROM... WHERE... ORDER BY... základní součásti dotazu jaké sloupce se mají získat z jakých tabulek podle jakého pravidla řazení agregace (souhrn) dotaz musí obsahovat odkud data brát, ostatní je volitelné
KIV/ZIS - SELECT vytvoření SQL dotazu záložka Vytvořit, tlačítko Návrh dotazu NEpřidávat tabulky jako u návrhového zobrazení přepnout do Zobrazení SQL napište a spusťte: SELECT * FROM Zarizeni;
KIV/ZIS - SELECT klíčová slova dotazu (SELECT, FROM, ORDER BY,...) se pro přehlednost zapisují velkými písmeny SELECT sloupce FROM tabulky; SELECT * FROM Zarizeni; * = všechny sloupce na konci středník SELECT Jmeno, Prijmeni FROM Zamestnanci;
KIV/ZIS - mikroúkoly Vypište názvy oddělení. Vypište inventární čísla a pořizovací ceny zařízení.
KIV/ZIS - filtr SELECT sloupce FROM tabulky WHERE filtr ; SELECT Jmeno, Prijmeni FROM Zamestnanci WHERE Plat >= 20000; SELECT InvCislo FROM Zarizeni WHERE (DatupNakupu < #10/5/2009#) AND (PorizovaciCena >= 2000); pozor na anglický zápis datumu mm/dd/rrrr
KIV/ZIS - filtr, texty lze použít klasické operátory srovnání >, >=, =, <=, < texty do dvojitých uvozovek když je potřeba filtrovat jen podle částečného textu, použít operátor LIKE SELECT * FROM Zarizeni WHERE Nazev LIKE "Tisk*"; vybere zařízení, jejichž název začíná na Tisk hvězdička znamená libovolné množství libovolných znaků, může se v textu opakovat víckrát na více místech
KIV/ZIS - mikroúkoly Vypište telefonní seznam pracovníků 5. oddělení. Kteří zaměstnanci nastoupili do firmy v období 1. čtvrtiny roku 2009? Kdo ze zaměstnanců nemá přidělenou telefonní linku? Zjistěte inventární čísla tiskáren a konvic. Vypište všechna zařízení dražší než 3 500,-Kč. Vypište seznam pracovníků oddělení příjmu a výdeje, kteří nemají přiřazen telefon (pozn.: oddělení zapište číslem, tedy 1 a 2).
KIV/ZIS - řazení SELECT... ORDER BY sloupce; implicitně řazení vzestupně chci-li sestupně, přidám za sloupec klíčové slovo DESC SELECT * FROM Zamestnanci ORDER BY Plat DESC, Prijmeni; SELECT Nazev, InvCislo FROM Zarizeni WHERE PorizovaciCena > 2000 ORDER BY Nazev;
KIV/ZIS - mikroúkoly Kdo ze zaměstnanců nemá přidělenou telefonní linku? Seřaďte dle oddělení. Vypište dle příjmení abecedně sestupně řazený telefonní seznam pracovníků 5. oddělení.
KIV/ZIS - agregace (souhrny) SELECT... GROUP BY sloupce; seskupení řádků podle zadaných sloupců agregační funkce COUNT, SUM, AVG, MIN, MAX SELECT Oddeleni, COUNT(*), MIN(Plat) FROM Zamestnanci WHERE Plat >= 20000 GROUP BY Oddeleni;
KIV/ZIS - agregace bez GROUP nad celou tabulkou SELECT COUNT(*) FROM Zamestnanci; počet zaměstnanců v celé firmě/tabulce SELECT AVG(Plat) FROM Zamestnanci; průměrný plat v celé firmě/tabulce SELECT SUM(PorizovaciCena) FROM Zarizeni;
KIV/ZIS - mikroúkoly Zjistěte nejnižší a nejvyšší plat v jednotlivých odděleních. Kolik zařízení mají ve správě jednotliví zaměstnanci? Vypište telefonní linky, včetně počtu lidí, kteří je sdílí v rámci celé firmy v rámci oddělení 2
KIV/ZIS - agregace, filtrování agregační funkci nelze vložit do filtru WHERE SELECT... GROUP BY sloupce HAVING agregačnípodmínka; SELECT Oddeleni FROM Zamestnanci GROUP BY Oddeleni HAVING COUNT(*) > 2;
KIV/ZIS - mikroúkoly Vypište čísla oddělení, jejichž zaměstnanci nemají nižší plat než 20000. Která čísla oddělení mají více jak 5 zaměstnanců bez telefonu?
KIV/ZIS - dotaz s parametrem stejně jako v návrhovém zobrazení vložit do dotazu místo pevné hodnoty proměnnou SELECT * FROM Zamestnanci WHERE Plat > [JakyPlat:];
KIV/ZIS - mikroúkoly Vypište zaměstnance z oddělení zadané parametrem.
KIV/ZIS - dotaz nad více tabulkami v zásadě stejné jako dosud s rozdíly: za klíčové slovo FROM se přidá více tabulek musí se přidat podmínka rovnosti primárního a cizího klíče, jinak vznikne kartézský součin (každý s každým) pokud mají vybrané sloupečky z tabulek shodné názvy, přidá se k nim, z jaké jsou tabulky SELECT * FROM Zamestnanci, OddeleniFirmy WHERE Zamestnanci.Oddeleni=OddeleniFirmy.CisloOddeleni;...vazba cizí-primární
KIV/ZIS - dotaz nad více tabulkami SELECT * FROM Zamestnanci, OddeleniFirmy WHERE (Zamestnanci.Oddeleni=OddeleniFirmy.CisloOddeleni) AND (OddeleniFirmy.NazevOddeleni LIKE "Mont*"); názvy sloupců se neshodují, stačí zapsat SELECT * FROM Zamestnanci, OddeleniFirmy WHERE (Oddeleni=CisloOddeleni) AND (NazevOddeleni LIKE "Mont*");
KIV/ZIS - mikroúkoly Uveďte jmenovitě správce tiskáren. Jaká je pořizovací cena jednotlivých zařízení, která spravuje Magdaléna Hrušková? Vypište názvy oddělení, na kterých mají konvici nebo stůl.
KIV/ZIS - DISTINCT klíčové slovo DISTINCT zajistí, že ve výpisu nebudou duplicitní řádky např. chceme názvy zařízení SELECT nazev FROM Zarizeni; některé názvy se budou opakovat SELECT DISTINCT nazev FROM Zarizeni; unikátní názvy
KIV/ZIS - výpočty v dotazu SELECT Plat/1000 FROM Zamestnanci; SELECT * FROM Zamestnanci WHERE Plat/1000 >= 20;
KIV/ZIS - prezentace semestrálních prací max. 5 minut 4-6 slajdů párkrát si to doma vyzkoušejte s hodinkami zaměřte se opravdu jen na nejdůležitější informace obsah viz. info na Courseware jasně, stručně, hlasitě krom nativní prezentace i v PDF přinést na flešce
KIV/ZIS Děkuji za pozornost.