Informační systémy ve zdravotnictví. 8. cvičení

Podobné dokumenty
Úvod do databázových systémů

Úvod do databázových systémů

Informační systémy ve zdravotnictví. 10. cvičení

Úvod do databázových systémů

Úvod do databázových systémů

Informační systémy ve zdravotnictví. 6. cvičení

Úvod do databázových systémů 3. cvičení

Databázové systémy I

Úvod do databázových systémů 1. cvičení

Databázové systémy Cvičení 5

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

Jazyk SQL 2. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c M.Valenta, 2011 BI-DBS, ZS 2011/12

6. blok část C Množinové operátory

Databáze I. Přednáška 6

XMW4 / IW4 Pokročilé SELECT dotazy. Štefan Pataky

KIV/ZIS cvičení 5. Tomáš Potužák

Úvod do databázových systémů 6. cvičení

Úvod do databázových systémů

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Úvod do databázových systémů

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

6. blok část B Vnořené dotazy

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev

Databázové systémy Cvičení 5.3

KIV/ZIS cvičení 6. Tomáš Potužák

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

Vzorové příklady SQL. Tabulka: Kniha CREATE TABLE kniha (id INTEGER, název VARCHAR(50), PRIMARY KEY (id))

Co bude výsledkem mého SELECTu? RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT

Databázové systémy. Dotazovací jazyk SQL - II

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux

Kapitola 4: SQL. Základní struktura

Databázové systémy. Cvičení 6: SQL

Základní přehled SQL příkazů

Databázové systémy. Datová integrita + základy relační algebry. 4.přednáška

PG 9.5 novinky ve vývoji aplikací

4. blok část A Logické operátory

Úvod do databázových systémů

Jazyk SQL slajdy k přednášce NDBI001

Úvod do databázových systémů

5. blok Souhrnné a skupinové dotazy

MS Access Dotazy SQL

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Jazyk SQL 1. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2011/12

Úvod do databázových systémů 10. cvičení

Databáze 2011/2012 SQL SELECT II. RNDr.David Hoksza, Ph.D.

Databáze SQL SELECT. David Hoksza

KIV/ZIS - SQL dotazy. stáhnout soubor ZIS- 04_TestovaciDatabaze accdb. SQL dotazy. budeme probírat pouze SELECT

Osnova je orientační pro FIT, u FEKTu se dá předpokládat, že budou zohledněny předchozí znalosti studentů, kde většina s databází nikdy přímo

Operátory ROLLUP a CUBE

Marian Kamenický. Syntea software group a.s. marian.kamenicky. MFFUK Praha 2012/13

OQL. (Object Query Language) Michal Bartoš Filip Bureš

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.

SQL - SELECT. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 7

MS Access Dotazy SQL

12. blok Pokročilé konstrukce SQL dotazů - část II

Dotazování v relačním modelu a SQL

5. POČÍTAČOVÉ CVIČENÍ

Sada 1 - PHP. 15. Výběr dat z databáze. Příkaz SELECT

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

- sloupcové integritní omezení

Dotazy v SQL. Výraz relační algebry R1( )[A1,A2,...,Aj] lze zapsat takto: SELECT A1,A2,...,Aj FROM R1 WHERE. Výraz (R1, R2... Rk)( )[A1,A2,...

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

SQL injection jak ji možná neznáte Roman Kümmel

DJ2 rekurze v SQL. slajdy k přednášce NDBI001. Jaroslav Pokorný

Jazyk S Q L základy, příkazy pro práci s daty

Instalace. Produkt je odzkoušen pro MS SQL server 2008 a Windows XP a Windows 7. Pro jiné verze SQL server a Windows nebyl testován.

Databázové systémy a SQL

8.2 Používání a tvorba databází

Multi-dimensional expressions

Popis ovládání. Po přihlášení do aplikace se objeví navigátor. Navigátor je stromově seřazen a slouží pro přístup ke všem oknům celé aplikace.

Databázové systémy Tomáš Skopal

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

PROCESOR RELAČNÍ ALGEBRY

Databázové systémy Cvičení 5.2

KIV/ZIS - SELECT, opakování

Maturitní témata z předmětu PROGRAMOVÉ VYBAVENÍ pro šk. rok 2012/2013

Architektury databázových

Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června krovacek@students.zcu.cz

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR):

Internetová filmová databáze IFDB

Úvod do SQL v systému SAS Martin Branda

Databázové systémy a SQL

SQL v14. 4D Developer konference. 4D Developer conference 2015 Prague, CZ Celebrating 30 years

Dotazovací jazyky I. Datová krychle. Soběslav Benda

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

SQL. strukturovaný dotazovací jazyk. Structured Query Language (SQL)

Vkládání poddotazů do dotazů

Analýza a modelování dat 3. přednáška. Helena Palovská

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

Zpracování informací

Object Query Language. Daniel Fromek Miroslav Novotný

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Microsoft Access. Typy objektů databáze: Vytvoření a návrh nové tabulky. Vytvoření tabulky v návrhovém zobrazení

Základy relačních databází, jejich využití v programování webu

SII - Informatika. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá:

1 Webový server, instalace PHP a MySQL 13

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph)

Materializované pohledy

Transkript:

Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Informační systémy ve zdravotnictví 8. cvičení Ing. Petr Lukáš petr.lukas@nativa.cz Ostrava, 2014

Opakování Klauzule příkazu SELECT a jejich význam SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY Množinové operátory v SQL UNION sjednocení, INTERSECT průnik, EXCEPT množinový rozdíl Význam operátoru LIKE Slouží pro porovnávání textových řetězců, přičemž můžeme používat znak % jako zástupný symbol pro libovolný počet libovolných znaků

Opakování Klauzule příkazu SELECT a jejich význam SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY Množinové operátory v SQL UNION sjednocení, INTERSECT průnik, EXCEPT množinový rozdíl Význam operátoru LIKE Slouží pro porovnávání textových řetězců, přičemž můžeme používat znak % jako zástupný symbol pro libovolný počet libovolných znaků

Klauzule příkazu SELECT SELECT FROM WHERE GROUP BY HAVING ORDER BY seznam sloupců na výstupu vstupní tabulky podmínka seskupení podmínka skupiny seřazení výsledku Ne všechny klauzule jsou povinné, ale jejich pořadí je striktně dané!

Klauzule příkazu SELECT Další konstrukce SQL Poddotazy

1. Příklad konstrukce IN s výčtem hodnot nov078 Jan Novák 5.9.1987 prezenční lak065 Luboš Lakatoš 2.8.1991 kombinovaný mla452 Lukáš Mladý 1.10.1992 dálkový Vyber všechny prezenční a kombinované studenty

1. Příklad konstrukce IN s výčtem hodnot nov078 Jan Novák 5.9.1987 prezenční lak065 Luboš Lakatoš 2.8.1991 kombinovaný mla452 Lukáš Mladý 1.10.1992 dálkový Vyber všechny prezenční a kombinované studenty FROM WHERE typ_studia = prezenční OR typ_studia = kombinovaný nov078 Jan Novák 5.9.1987 prezenční lak065 Luboš Lakatoš 2.8.1991 kombinovaný

1. Příklad konstrukce IN s výčtem hodnot nov078 Jan Novák 5.9.1987 prezenční lak065 Luboš Lakatoš 2.8.1991 kombinovaný mla452 Lukáš Mladý 1.10.1992 dálkový FROM WHERE typ_studia = prezenční OR typ_studia = kombinovaný Vyber všechny prezenční a kombinované studenty = FROM WHERE typ_studia IN ( prezenční, kombinovaný ) nov078 Jan Novák 5.9.1987 prezenční lak065 Luboš Lakatoš 2.8.1991 kombinovaný

2. Příklad konstrukce IN s poddotazem nov078 Jan Novák 5.9.1987 P luk194 Petr Lukáš 7.6.1988 P lak065 Luboš Lakatoš 2.8.1991 K mla452 Lukáš Mladý 1.10.1992 D Typ_Studia zkratka název dozhazka P Prezenční 1 K Kombinované 1 D Dálkové 0 Vyber všechny studenty, kteří podle typu studia musí mít pravidelnou docházku

2. Příklad konstrukce IN s poddotazem nov078 Jan Novák 5.9.1987 P luk194 Petr Lukáš 7.6.1988 P lak065 Luboš Lakatoš 2.8.1991 K mla452 Lukáš Mladý 1.10.1992 D Typ_Studia zkratka název dozhazka P Prezenční 1 K Kombinované 1 D Dálkové 0 Vyber všechny studenty, kteří podle typu studia musí mít pravidelnou docházku FROM WHERE typ_studia IN ( SELECT zkratka FROM Typ_Studia WHERE dochazka = 1 ) nov078 Jan Novák 5.9.1987 P luk194 Petr Lukáš 7.6.1988 P lak065 Luboš Lakatoš 2.8.1991 K

2. Příklad konstrukce IN s poddotazem nov078 Jan Novák 5.9.1987 P luk194 Petr Lukáš 7.6.1988 P lak065 Luboš Lakatoš 2.8.1991 K mla452 Lukáš Mladý 1.10.1992 D Typ_Studia zkratka název dozhazka P Prezenční 1 K Kombinované 1 D Dálkové 0 Vnější dotaz FROM WHERE typ_studia IN ( Vnitřní dotaz (poddotaz) SELECT zkratka FROM Typ_Studia WHERE dochazka = 1 ) nov078 Jan Novák 5.9.1987 P luk194 Petr Lukáš 7.6.1988 P lak065 Luboš Lakatoš 2.8.1991 K

2. Příklad konstrukce IN s poddotazem nov078 Jan Novák 5.9.1987 P luk194 Petr Lukáš 7.6.1988 P lak065 Luboš Lakatoš 2.8.1991 K mla452 Lukáš Mladý 1.10.1992 D Typ_Studia zkratka název dozhazka P Prezenční 1 K Kombinované 1 D Dálkové 0 FROM WHERE typ_studia IN ( SELECT zkratka FROM Typ_Studia WHERE dochazka = 1 ) nov078 Jan Novák 5.9.1987 P luk194 Petr Lukáš 7.6.1988 P lak065 Luboš Lakatoš 2.8.1991 K

2. Příklad konstrukce IN s poddotazem nov078 Jan Novák 5.9.1987 P luk194 Petr Lukáš 7.6.1988 P lak065 Luboš Lakatoš 2.8.1991 K mla452 Lukáš Mladý 1.10.1992 D Typ_Studia zkratka název dozhazka P Prezenční 1 K Kombinované 1 D Dálkové 0 FROM WHERE typ_studia IN ( P, K ) nov078 Jan Novák 5.9.1987 P luk194 Petr Lukáš 7.6.1988 P lak065 Luboš Lakatoš 2.8.1991 K

3. Příklad konstrukce EXISTS nov078 Jan Novák 5.9.1987 prezenční lak065 Luboš Lakatoš 2.8.1991 kombinovaný mla452 Lukáš Mladý 1.10.1992 dálkový Vyberte všechny studenty, jejichž příjmení je zároveň jménem.

3. Příklad konstrukce EXISTS nov078 Jan Novák 5.9.1987 prezenční lak065 Luboš Lakatoš 2.8.1991 kombinovaný mla452 Lukáš Mladý 1.10.1992 dálkový Vyberte všechny studenty, jejichž příjmení je zároveň jménem. FROM S1 WHERE EXISTS ( FROM S2 WHERE S2.jmeno = S1.prijmeni )

3. Příklad konstrukce EXISTS nov078 Jan Novák 5.9.1987 prezenční lak065 Luboš Lakatoš 2.8.1991 kombinovaný mla452 Lukáš Mladý 1.10.1992 dálkový FROM S1 WHERE EXISTS ( FROM S2 WHERE S2.jmeno = S1.prijmeni ) Nemůžeme si dovolit představu, že se nejprve provede vnitřní a potom vnější dotaz. Vnitřní dotaz je závislý na vnějším. Je nutné si uvědomit, že podmínka WHERE se vyhodnocuje zvlášť pro každý vznikající záznam výstupu.

3. Příklad konstrukce EXISTS login jmeno prijmeni typ_studia nov078 Jan Novák prezenční luk194 Petr Lukáš prezenční lak065 Luboš Lakatoš kombinovaný mla452 Lukáš Mladý dálkový FROM S1 WHERE EXISTS ( FROM S2 WHERE S2.jmeno = S1.prijmeni ) Připrav prázdný seznam result; for (s1 in ) { bool exists = false; for (s2 in ) { if (s2.jmeno == s1.prijmeni) { exists = true; } } if (exists) { přidej s1 do result; } }

3. Příklad konstrukce EXISTS S1 nov078 Jan Novák 5.9.1987 prezenční lak065 Luboš Lakatoš 2.8.1991 kombinovaný mla452 Lukáš Mladý 1.10.1992 dálkový FROM S1 WHERE EXISTS ( FROM S2 WHERE S2.jmeno = Novák ) S1.prijmeni Pro záznam o Janu Novákovi, existuje nějaký student s křestním jménem Novák? NEEXISTUJE Jan Novák tedy nebude na výstupu.

3. Příklad konstrukce EXISTS S1 S2 nov078 Jan Novák 5.9.1987 prezenční lak065 Luboš Lakatoš 2.8.1991 kombinovaný mla452 Lukáš Mladý 1.10.1992 dálkový FROM S1 WHERE EXISTS ( FROM S2 WHERE S2.jmeno = Lukáš ) S1.prijmeni Pro záznam o Petru Lukášovi, existuje nějaký student s křestním jménem Lukáš? ANO, EXISTUJE Petr Lukáš tedy bude na výstupu.

3. Příklad konstrukce EXISTS S1 nov078 Jan Novák 5.9.1987 prezenční lak065 Luboš Lakatoš 2.8.1991 kombinovaný mla452 Lukáš Mladý 1.10.1992 dálkový FROM S1 WHERE EXISTS ( FROM S2 WHERE S2.jmeno = Lakatoš ) S1.prijmeni Pro záznam o Luboši Lakatošovi, existuje nějaký student s křestním jménem Lakatoš? NEEXISTUJE Luboš Lakatoš tedy nebude na výstupu.

3. Příklad konstrukce EXISTS S1 nov078 Jan Novák 5.9.1987 prezenční lak065 Luboš Lakatoš 2.8.1991 kombinovaný mla452 Lukáš Mladý 1.10.1992 dálkový FROM S1 WHERE EXISTS ( FROM S2 WHERE S2.jmeno = Mladý ) S1.prijmeni Pro záznam o Lukáši Mladém, existuje nějaký student se jménem Mladý? NEEXISTUJE Lukáš Mladý tedy nebude na výstupu.

4. Příklad konstrukce ALL nov078 Jan Novák 5.9.1987 luk194 Petr Lukáš 7.6.1988 lak065 Luboš Lakatoš 2.8.1991 mla452 Lukáš Mladý 1.10.1992 Ucitel nov078 Ivan Hrozivý 1.2.1965 luk194 Karel Přísný 5.12.1972 lak065 Zdeněk Veliký 25.6.1990 mla452 Václav Důsledný 1.10.1985 Vyber všechny učitele, kteří jsou starší než všichni studenti

4. Příklad konstrukce ALL nov078 Jan Novák 5.9.1987 luk194 Petr Lukáš 7.6.1988 lak065 Luboš Lakatoš 2.8.1991 mla452 Lukáš Mladý 1.10.1992 Ucitel nov078 Ivan Hrozivý 1.2.1965 luk194 Karel Přísný 5.12.1972 lak065 Zdeněk Veliký 25.6.1990 mla452 Václav Důsledný 1.10.1985 Vyber všechny učitele, kteří jsou starší než všichni studenti FROM Ucitel WHERE datum_narozeni < ALL(SELECT datum_narozeni FROM ) login jmeno Prijmeni datum_narozeni nov078 Ivan Hrozivý 1.2.1965 luk194 Karel Přísný 5.12.1972 mla452 Václav Důsledný 1.10.1985

4. Příklad konstrukce ALL nov078 Jan Novák 5.9.1987 luk194 Petr Lukáš 7.6.1988 lak065 Luboš Lakatoš 2.8.1991 mla452 Lukáš Mladý 1.10.1992 Ucitel nov078 Ivan Hrozivý 1.2.1965 luk194 Karel Přísný 5.12.1972 lak065 Zdeněk Veliký 25.6.1990 mla452 Václav Důsledný 1.10.1985 FROM Ucitel WHERE datum_narozeni < ALL(SELECT datum_narozeni FROM ) login jmeno Prijmeni datum_narozeni nov078 Ivan Hrozivý 1.2.1965 luk194 Karel Přísný 5.12.1972 mla452 Václav Důsledný 1.10.1985

4. Příklad konstrukce ALL nov078 Jan Novák 5.9.1987 luk194 Petr Lukáš 7.6.1988 lak065 Luboš Lakatoš 2.8.1991 mla452 Lukáš Mladý 1.10.1992 Ucitel nov078 Ivan Hrozivý 1.2.1965 luk194 Karel Přísný 5.12.1972 lak065 Zdeněk Veliký 25.6.1990 mla452 Václav Důsledný 1.10.1985 FROM Ucitel WHERE datum_narozeni < ALL(5.9.1987, 7.6.1988, 2.8.1991, 1.10.1992) login jmeno Prijmeni datum_narozeni nov078 Ivan Hrozivý 1.2.1965 luk194 Karel Přísný 5.12.1972 mla452 Václav Důsledný 1.10.1985

5. Příklad konstrukce ANY (SOME) nov078 Jan Novák 5.9.1987 luk194 Petr Lukáš 7.6.1988 lak065 Luboš Lakatoš 2.8.1991 mla452 Lukáš Mladý 1.10.1992 Ucitel nov078 Ivan Hrozivý 1.2.1965 luk194 Karel Přísný 5.12.1972 lak065 Zdeněk Veliký 25.6.1990 mla452 Václav Důsledný 1.10.1985 Vyber studenty, kteří jsou starší než nějaký učitel

5. Příklad konstrukce ANY (SOME) nov078 Jan Novák 5.9.1987 luk194 Petr Lukáš 7.6.1988 lak065 Luboš Lakatoš 2.8.1991 mla452 Lukáš Mladý 1.10.1992 Ucitel nov078 Ivan Hrozivý 1.2.1965 luk194 Karel Přísný 5.12.1972 lak065 Zdeněk Veliký 25.6.1990 mla452 Václav Důsledný 1.10.1985 Vyber studenty, kteří jsou starší než nějaký učitel FROM WHERE datum_narozeni < ANY(SELECT datum_narozeni FROM Ucitel) nov078 Jan Novák 5.9.1987 luk194 Petr Lukáš 7.6.1988

5. Příklad konstrukce ANY (SOME) nov078 Jan Novák 5.9.1987 luk194 Petr Lukáš 7.6.1988 lak065 Luboš Lakatoš 2.8.1991 mla452 Lukáš Mladý 1.10.1992 Ucitel nov078 Ivan Hrozivý 1.2.1965 luk194 Karel Přísný 5.12.1972 lak065 Zdeněk Veliký 25.6.1990 mla452 Václav Důsledný 1.10.1985 Vyber studenty, kteří jsou starší než nějaký učitel FROM WHERE datum_narozeni < ANY(SELECT datum_narozeni FROM Ucitel) nov078 Jan Novák 5.9.1987 luk194 Petr Lukáš 7.6.1988

5. Příklad konstrukce ANY (SOME) nov078 Jan Novák 5.9.1987 luk194 Petr Lukáš 7.6.1988 lak065 Luboš Lakatoš 2.8.1991 mla452 Lukáš Mladý 1.10.1992 Ucitel nov078 Ivan Hrozivý 1.2.1965 luk194 Karel Přísný 5.12.1972 lak065 Zdeněk Veliký 25.6.1990 mla452 Václav Důsledný 1.10.1985 Vyber studenty, kteří jsou starší než nějaký učitel FROM WHERE datum_narozeni < ANY(1.2.1965, 5.12.1972, 25.6.1990, 1.10.1985) nov078 Jan Novák 5.9.1987 luk194 Petr Lukáš 7.6.1988

Shrnutí IN EXISTS ALL ANY Ptám se, zda hodnota atributu spadá do nějakého výčtu. Test na existenci záznamu Porovnání s výčtem hodnot, porovnání musí platit pro všechny hodnoty ve výčtu Porovnání s výčtem hodnot, porovnání musí platit alespoň jednou

Shrnutí Uvedené konstrukce se velmi často kombinují s použitím poddotazu. Pokud je vnitřní poddodtaz nezávislý na vnějším dotazu (tj. nenachází se tam žádná podmínka nebo výraz, který by se na vnější dotaz odkazoval), můžeme si představit vyhodnocení celého dotazu tak, že se nejprve vyhodnotí vnitřek, potom vnějšek. Pokud je vnitřní poddotaz závislý, musíme si vyhodnocení představit tak, že se vnitřní dotaz provede pro každý např. testovaný záznam z dotazu vnějšího.

Cvičení www.dbedu.cs.vsb.cz Přihlášení přes jednotný login a heslo Vpravo sloupec -> České kurzy -> ISZ