SQL SQL-SELECT. Informační a znalostní systémy. Informační a znalostní systémy SQL- SELECT



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

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

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

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

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

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

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

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

KIV/ZIS - SELECT, opakování

Databáze SQL SELECT. David Hoksza

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

Operátory ROLLUP a CUBE

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

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

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

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

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

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

MS Access Dotazy SQL

Ukládání a vyhledávání XML dat

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

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

Zápisování dat do databáze

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

Praktické ukázky použití SQL. Informační a znalostní systémy

RNDr. Jakub Lokoč, Ph.D. RNDr. Michal Kopecký, Ph.D. Katedra softwarového inženýrství Matematicko-Fyzikální fakulta Univerzita Karlova v Praze

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

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

DB1 cvičení 4 spojení tabulek a složitější dotazy

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

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

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav

RELAČNÍ DATABÁZOVÉ SYSTÉMY

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

Jazyk SQL databáze SQLite. připravil ing. petr polách

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav

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

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

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

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

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

NÁVRH A TVORBA HUDEBNÍ DATABÁZE

Databáze I. 1. přednáška. Helena Palovská

Analýza a modelování dat. Přednáška 8

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

Projekt: Inovace oboru Mechatronik pro Zlínský kraj Registrační číslo: CZ.1.07/1.1.08/

Databázové systémy I

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

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

Návrh databázového modelu

Databázové systémy Tomáš Skopal

Databáze I. 2. přednáška. Helena Palovská

Analýza a modelování dat. Přednáška 9

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

5. blok Souhrnné a skupinové dotazy

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

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

SPŠS Č.Budějovice Obor Geodézie a Katastr nemovitostí 3.ročník ATRIBUTY ZÁKLADN POJMY VÝBĚR PRVKŮ DLE ATRIBUTŮ

Databázové systémy a SQL

DATA CUBE. Mgr. Jiří Helmich

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

INDEXY JSOU GRUNT. Pavel Stěhule

Databázové systémy. Agregace, sumarizace, vnořené dotazy. Vilém Vychodil

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

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

WWW dotazovací služby pro prostorová data URM. Jiří Čtyroký Útvar rozvoje hl. m. Prahy

PG 9.5 novinky ve vývoji aplikací

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

TimescaleDB. Pavel Stěhule 2018

Materiál ke cvičením - SQL

Materializované pohledy

Datové modelování II

Kapitola 4: SQL. Základní struktura

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

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

37. Indexování a optimalizace dotazů v relačních databázích, datové struktury, jejich výhody a nevýhody

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

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

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

Databázové systémy a SQL

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

Systémy řízení proudů dat

Použití databází na Webu

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

Otázka č. 1 (bodů za otázku: 4)

Marketingová komunikace. 2. a 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3aph)

OBJECT DEFINITION LANGUAGE. Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013

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

Dolování v objektových datech. Ivana Rudolfová

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

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

VŠB FEI - Technická Univerzita Ostrava. DAIS - Projekt. Dopravní podnik. Jméno: Matěj Kotyz (KOT0177)

Základy informatiky. 08 Databázové systémy. Daniela Szturcová

PA152. Implementace databázových systémů

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23

1. Databázové systémy (MP leden 2010)

01. Kdy se začala formovat koncept relačních databází (Vznik relačního modelu, první definice SQL)? a) 1950 b) 1960 c) 1970 d) 1980

Transkript:

-SELECT Informační a znalostní systémy

1

- Structured Query Language norma pro dotazování nad relačními databáze díky přenositelnosti- rozmach relačních databází zahrnuje jak dotazování na data, tak změny v databázi

- Structured Query Language norma pro dotazování nad relačními databáze díky přenositelnosti- rozmach relačních databází zahrnuje jak dotazování na data, tak změny v databázi 1 dotazování(čtení)- příkaz SELECT 2 vkládání, aktualizace, mazání- tzv CRUID- příště

Vyhodnocení výrazu Jednoduché dotazování- vyhodnocení výrazů Syntax: SELECT výraz [, výraz ]*; Příklad: vyhodnoťte výraz 1 + 1 SELECT 1+1;

Vyhodnocení výrazu Jednoduché dotazování- vyhodnocení výrazů Syntax: SELECT výraz [, výraz ]*; Příklad: vyhodnoťte výraz 1 + 1 SELECT 1+1; Příklad: vyhodnoťte výraz, konstantu a funkci SELECT 1+1, textová hodnota,now();

Získání záznamů z tabulky Data jsou typicky uložena v formě záznamů v tabulce Syntax: SELECT výčet výrazů a atributů FROM tabulka; Pro všechny atributy- použít výrazu*

Získání záznamů z tabulky Data jsou typicky uložena v formě záznamů v tabulce Syntax: SELECT výčet výrazů a atributů FROM tabulka; Pro všechny atributy- použít výrazu* Příklad: vypište všechny záznamy z tabulky budova SELECT * FROM budova;

Získání záznamů z tabulky Data jsou typicky uložena v formě záznamů v tabulce Syntax: SELECT výčet výrazů a atributů FROM tabulka; Pro všechny atributy- použít výrazu* Příklad: vypište všechny záznamy z tabulky budova SELECT * FROM budova; Vždy vypisujme pouze potřebné atributy z důvodu režie přenosu, ale i alokace paměti SELECT budova, adresa FROM budova;

WHERE- podmínka na zobrazený záznam Mnohdy vyžadujeme vypsat pouze záznamy splňující nějakou logickou podmínku Syntax: SELECT... FROM tabulka WHERE podmínka;

WHERE- podmínka na zobrazený záznam Mnohdy vyžadujeme vypsat pouze záznamy splňující nějakou logickou podmínku Syntax: SELECT... FROM tabulka WHERE podmínka; Příklad: vypište záznamy z tabulky budova, jejichž id je menší než 3 SELECT budova, adresa FROM budova WHERE id_budova<3;

WHERE- podmínka na zobrazený záznam Mnohdy vyžadujeme vypsat pouze záznamy splňující nějakou logickou podmínku Syntax: SELECT... FROM tabulka WHERE podmínka; Příklad: vypište záznamy z tabulky budova, jejichž id je menší než 3 SELECT budova, adresa FROM budova WHERE id_budova<3; Podmínku lze komponovat z více výrazů pomocí logických spojekand,oranot

ORDER BY- řazení záznamů Pořadí záznamů v databázi je náhodné, proto je řadíme Syntax: SELECT... FROM tabulka ORDER BY výraz {DESC ASC} [, výraz {DESC,ASC}]*;

ORDER BY- řazení záznamů Pořadí záznamů v databázi je náhodné, proto je řadíme Syntax: SELECT... FROM tabulka ORDER BY výraz {DESC ASC} [, výraz {DESC,ASC}]*; Příklad: seřaďte budovy podle označení SELECT budova, adresa FROM budova ORDER BY budova;

ORDER BY- řazení záznamů Pořadí záznamů v databázi je náhodné, proto je řadíme Syntax: SELECT... FROM tabulka ORDER BY výraz {DESC ASC} [, výraz {DESC,ASC}]*; Příklad: seřaďte budovy podle označení SELECT budova, adresa FROM budova ORDER BY budova; řazení 1 vzestupně-nicneboasc 2 sestupně-desc

LIMIT OFFSET- stránkování záznamů Zobrazování mnoho záznamů najednou může být pomalé, proto jej omezujeme na n záznamů Syntax: SELECT... FROM tabulka LIMIT n;

LIMIT OFFSET- stránkování záznamů Zobrazování mnoho záznamů najednou může být pomalé, proto jej omezujeme na n záznamů Syntax: SELECT... FROM tabulka LIMIT n; Příklad: zobrazte první 3 záznamy z tabulky budova SELECT * FROM budova LIMIT 3;

LIMIT OFFSET- stránkování záznamů Zobrazování mnoho záznamů najednou může být pomalé, proto jej omezujeme na n záznamů Syntax: SELECT... FROM tabulka LIMIT n; Příklad: zobrazte první 3 záznamy z tabulky budova SELECT * FROM budova LIMIT 3; ke stránkování slouží klíčové slovo OFFSET od kterého záznamu se bude zobrazovaných n záznamů počítat Příklad: zobrazte 2 až(2+3) záznam SELECT * FROM budova LIMIT 3 OFFSET 2;

LIMIT OFFSET- stránkování záznamů Zobrazování mnoho záznamů najednou může být pomalé, proto jej omezujeme na n záznamů Syntax: SELECT... FROM tabulka LIMIT n;

LIMIT OFFSET- stránkování záznamů Zobrazování mnoho záznamů najednou může být pomalé, proto jej omezujeme na n záznamů Syntax: SELECT... FROM tabulka LIMIT n; Příklad: zobrazte první 3 záznamy z tabulky budova SELECT * FROM budova LIMIT 3;

LIMIT OFFSET- stránkování záznamů Zobrazování mnoho záznamů najednou může být pomalé, proto jej omezujeme na n záznamů Syntax: SELECT... FROM tabulka LIMIT n; Příklad: zobrazte první 3 záznamy z tabulky budova SELECT * FROM budova LIMIT 3; ke stránkování slouží klíčové slovo OFFSET od kterého záznamu se bude zobrazovaných n záznamů počítat Příklad: zobrazte 2 až(2+3) záznam SELECT * FROM budova LIMIT 3 OFFSET 2;

Samostatná práce 1 Zobrazte všechny záznamy z tabulky mereni:

Samostatná práce 1 Zobrazte všechny záznamy z tabulky mereni: SELECT * FROM mereni;

Samostatná práce 1 Zobrazte všechny záznamy z tabulky mereni: SELECT * FROM mereni; 2 Seřaďte je podle času(sestupně), identifikátoru senzoru a veličiny:

Samostatná práce 1 Zobrazte všechny záznamy z tabulky mereni: SELECT * FROM mereni; 2 Seřaďte je podle času(sestupně), identifikátoru senzoru a veličiny: SELECT * FROM mereni ORDER BY cas DESC, id_senzor, id_velicina;

Samostatná práce 1 Zobrazte všechny záznamy z tabulky mereni: SELECT * FROM mereni; 2 Seřaďte je podle času(sestupně), identifikátoru senzoru a veličiny: SELECT * FROM mereni ORDER BY cas DESC, id_senzor, id_velicina; 3 Vypište posledních 5 měření:

Samostatná práce 1 Zobrazte všechny záznamy z tabulky mereni: SELECT * FROM mereni; 2 Seřaďte je podle času(sestupně), identifikátoru senzoru a veličiny: SELECT * FROM mereni ORDER BY cas DESC, id_senzor, id_velicina; 3 Vypište posledních 5 měření: SELECT * FROM mereni ORDER BY cas DESC, id_senzor, id_velicina LIMIT 5;

Samostatná práce 1 Zobrazte všechny záznamy z tabulky mereni: SELECT * FROM mereni; 2 Seřaďte je podle času(sestupně), identifikátoru senzoru a veličiny: SELECT * FROM mereni ORDER BY cas DESC, id_senzor, id_velicina; 3 Vypište posledních 5 měření: SELECT * FROM mereni ORDER BY cas DESC, id_senzor, id_velicina LIMIT 5; 4 Vypištečasyamístnosti,kdeteplotapřesáhla25C:

Samostatná práce 1 Zobrazte všechny záznamy z tabulky mereni: SELECT * FROM mereni; 2 Seřaďte je podle času(sestupně), identifikátoru senzoru a veličiny: SELECT * FROM mereni ORDER BY cas DESC, id_senzor, id_velicina; 3 Vypište posledních 5 měření: SELECT * FROM mereni ORDER BY cas DESC, id_senzor, id_velicina LIMIT 5; 4 Vypištečasyamístnosti,kdeteplotapřesáhla25C: SELECT cas, id_mistnost FROM mereni WHERE id_velicina = 5 AND hodnota > 25;

Spojování tabulek Díky dekompozici data rozprostřena mezi různé tabulky SELECT * FROM mereni;

Spojování tabulek Díky dekompozici data rozprostřena mezi různé tabulky SELECT * FROM mereni; V tabulce mereni je cizí klíč reprezentovaný atributem id velicina vedoucí k primárnímu klíči id veličina v tabulce veličina SELECT * FROM mereni,velicina WHERE mereni.id_velicina = velicina.id_velicina

Spojování tabulek Díky dekompozici data rozprostřena mezi různé tabulky SELECT * FROM mereni; V tabulce mereni je cizí klíč reprezentovaný atributem id velicina vedoucí k primárnímu klíči id veličina v tabulce veličina SELECT * FROM mereni,velicina WHERE mereni.id_velicina = velicina.id_velicina Nevýhodou tohoto zápisu- míchání vazebních podmínek a podmínek na záznam. Např SELECT * FROM mereni,velicina WHERE mereni.id_velicina = velicina.id_velicina AND hodnota > 25

Spojování tabulek Proto nabízí možnost spojovat tabulky přímo v rámci klíčového slova FROM SELECT * FROM mereni JOIN velicina ON (mereni.id_velicina = velicina.id_velicina) WHERE hodnota > 25 ;

Spojování tabulek Proto nabízí možnost spojovat tabulky přímo v rámci klíčového slova FROM SELECT * FROM mereni JOIN velicina ON (mereni.id_velicina = velicina.id_velicina) WHERE hodnota > 25 ; Pokud atributy cizího a primárního klíče mají stejné jméno SELECT * FROM mereni JOIN velicina USING (id_velicina)

Proto nabízí možnost spojovat tabulky přímo v rámci klíčového slova FROM SELECT * FROM mereni JOIN velicina ON (mereni.id_velicina = velicina.id_velicina) WHERE hodnota > 25 ; Pokud atributy cizího a primárního klíče mají stejné jméno SELECT * FROM mereni JOIN velicina USING (id_velicina) umožňuje spojování tabulek řetězit SELECT * FROM mereni JOIN velicina USING (id_velicina) JOIN senzor USING (id_senzor) JOIN Informační mistnost a znalostní systémy USING - (id_mistnost) SELECT Spojování tabulek

INER JOIN- Vnitřní spojování tabulek V případě nulové minimální kardinality vztahu potřeba definovat způsob spojení 1 OUTER(vnější) spojení spojuje páry pouze s vyplněnými hodnotami SELECT * FROM mistnost JOIN budova USING (id_budova)

INER JOIN- Vnitřní spojování tabulek V případě nulové minimální kardinality vztahu potřeba definovat způsob spojení 1 OUTER(vnější) spojení spojuje páry pouze s vyplněnými hodnotami SELECT * FROM mistnost JOIN budova USING (id_budova) 2 INNER(vnitřní) spojení doplňuje atributy, je-li to možné SELECT * FROM mistnost LEFT JOIN budova USING (id_budova) 1 LEFTINNER-kpravéčástisepřipojujelevá 2 RIGHTINNER-klevéčástisepřipojujepravá

Agregace umožňuje vyhodnotit i agregační funkce základní agregační funkce: MAX,MIN,SUM,AVG,COUNT Příklad: Stanovte průměrnou teplotu na jednotlivých senzorech

Agregace umožňuje vyhodnotit i agregační funkce základní agregační funkce: MAX,MIN,SUM,AVG,COUNT Příklad: Stanovte průměrnou teplotu na jednotlivých senzorech 1 nejprve si připravíme vstupní data SELECT id_mistnost,hodnota * FROM mereni JOIN senzor USING (id_senzor) WHERE id_velicina = 5;

Agregace umožňuje vyhodnotit i agregační funkce základní agregační funkce: MAX,MIN,SUM,AVG,COUNT Příklad: Stanovte průměrnou teplotu na jednotlivých senzorech 1 nejprve si připravíme vstupní data SELECT id_mistnost,hodnota * FROM mereni JOIN senzor USING (id_senzor) WHERE id_velicina = 5; 2 agregujeme je přes atribut id mistnost SELECT id_mistnost,avg(hodnota) FROM mereni JOIN senzor USING (id_senzor) WHERE id_velicina = 5 GROUP BY id_mistnost;

Agregace- podmínky Mnohdy je potřeba stanovit podmínku na hodnotu agregační funkce Např. chceme průměry teplot, pouze pokud máme více než 10 měření

Agregace- podmínky Mnohdy je potřeba stanovit podmínku na hodnotu agregační funkce Např. chceme průměry teplot, pouze pokud máme více než 10 měření podmínky na hodnoty agregační funkce- klíčové slovo HAVING SELECT id_mistnost,avg(hodnota) FROM mereni JOIN senzor USING (id_senzor) WHERE id_velicina = 5 GROUP BY id_mistnost HAVING count(*)>10 ;

Závěrečné poznámky pořadí klíčových slov nelze měnit 1 výčet atributů 2 FROM tabulky 3 WHERE podmínky na záznamy 4 GROUP BY- stanovení agregační úrovně, evaluace hodnot agregačních funkcí 5 HAVING- podmínky na evaluované agregační funkce 6 ORDERBY-seřazenízáznamů 7 LIMIT- počet zobrazených záznamů 8 OFFSET- pořadí prvního zobrazeného záznamu