SQL – příkaz SELECT Ing. Roman Danel, Ph.D.

Slides:



Advertisements
Podobné prezentace
Aplikační a programové vybavení
Advertisements

KIV/ZIS Cvičení 6 SQL - SELECT.
MS ACCESS - DOTAZY DATABÁZOVÉ SYSTÉMY.
SQL Další dotazy a pohledy
Cvičení 06 Ing. Pavel Bednář
Základy jazyka SQL Jan Tichava
Jazyk SQL Ing. Zdena DOBEŠOVÁ. SQL Structured Query Language 1974 SEQUEL (Structured English Query Language) neprocedurální relační dotazovací jazyk norma.
DB1 – 9. cvičení Optimalizace dotazu Konkurenční přístup a deadlock Indexace Transakce.
Databázové systémy SQL Výběr dat.
YDASYS1 Ing. Monika Šimková.
Fakulta elektrotechniky a informatiky
Informační systémy Nástroje pro sběr dat, návrh a realizace databáze.
AGREGACE Distinct, Group By, Having, SUM, …. DISTINCT  Slučování stejných řádků ve výsledku dotazu. AGREGACE 2 JménoPříjmeníID FrantišekVomáčka1 JosefPokorný2.
Další dotazy SQL Structured Query Language. Některé SQL příkazy mohou mít v sobě obsaženy další kompletní příkazy SELECT. Využijeme je tam, kde potřebujeme.
SQL Structured Query Language
Informatika pro ekonomy II přednáška 11
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy 1 Cvičení č. 4 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy 1 Cvičení č. 2 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy I Přednáška č. 5 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy 1 Cvičení č. 3 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Temporální databáze a TSQL
SQL Přednáška DB1. Literatura CONNOLLY, T.M.-BEGG,C.E.-STRACHAN,A.D.: Database Systems – A Practial Approach to Design, Implementation and Management.
MySQL - Vytvoření nové tabulky  create table jméno_tabulky (jméno_položky typ_položky,... ) Přehled nejběžnějších datových typů Přehled nejběžnějších.
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
Cvičení 04 SQL Exists, Any, All Ing. Pavel Bednář
Databázové systémy II Přednáška č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Fakulta elektrotechniky a informatiky
Rozumíme si s MDX Š.Havlíček.
Databázové systémy I Cvičení č. 9 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
KIV/ZIS cvičení 6 Tomáš Potužák. Pokračování SQL Klauzule GROUP BY a dotazy nad více tabulkami Stáhnout soubor studenti_dotazy_sql.mdb.
Databázové systémy I Cvičení č. 6 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Databázové systémy Přednáška č. 6.
SQL – základní pojmy Ing. Roman Danel, Ph.D.
SQL PVA Jan Hora. SQL „graficky“ Grafický vs. pravý SQL SELECT ORDED BY WHERE.
Rauer Luboš Kopic Petr Blažek Tomáš. Structured Query Language - dotazovací jazyk -> pracuje s dotazy - neprocedurální jazyk - mocný, ale přitom jednoduchý.
Fakulta elektrotechniky a informatiky
Číslo šablony: III/2 VY_32_INOVACE_P4_3.8 Tematická oblast: Aplikační software pro práci s informacemi II. Databáze – základy SQL Typ: DUM - kombinovaný.
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy Tomáš Skopal
Databázové systémy I Cvičení č. 7 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Databázové systémy UIN010 N-ticový (řádkový) relační kalkul Hodnoty proměnných n-tice relací (řádky) Konstanty hodnoty atributů Unární funkční.
Informatika II PAA DOTAZOVACÍ JAZYKY
2OP483 Manažerská informatika 3Access - BankaSnímek 1 2OP483 Manažerská informatika 3 Microsoft Office Access 2007 Dotazy v databázi Banka
Aplikační a programové vybavení
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B13 Autor Ing. Jiří Kalousek Období vytvoření březen.
XQuery Dotazovací jazyk XML Daniel Privalenkov. O čem bude prezentace Nutnost dotazovacího jazyku v XML Rychlý přehled XQuery Několik příkladů.
Databázové systémy SQL Výběr dat.
 Agregační funkce  Agregační funkce jsou to funkce, které nějakým způsobem zpracují více hodnot a jako výsledek vrátí hodnotu jednu COUNT()  Funkce.
Seznamy v jazyce Haskell Ing. Lumír Návrat  katedra informatiky, D-403 
SQL Další dotazy a pohledy Databázové systémy. Některé SQL příkazy mohou mít v sobě obsaženy další kompletní příkazy SELECT. Využijeme je tam, kde potřebujeme.
CUBE - Operátor relační agregace
23/04/20151 LINQ (1) LINQ (Language Integrated Query) je součást MS.NET Frameworku umožňující jednotný přístup k datům a jejich zpracování deklarativ-
ACCESS DOTAZY Ing. Jana Horáková IKT MS Office
SQL Structured Query Language
J. Macur, FAST VUT, 2011 (kombinované studium BU04)
Databázové systémy I Přednáška č. 6 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Příkazy jazyka SQL ve VFP a na SQL Serveru
Databáze MS ACCESS 2010.
Databázové systémy I Přednáška 5 Databázové systémy 1 – KIT/IDAS1
Databázové systémy I Přednáška 8 Databázové systémy 1 – KIT/IDAS1
Ing. Tomáš Váňa, Ing. Jiří Zechmeister
Databázové systémy přednáška 3 – CRUD
Databázové systémy a SQL
[ START WITH podmínka ] CONNECT BY podmínka
A5M33IZS – Informační a znalostní systémy
Optimalizace SQL dotazů
Dotazovací jazyk SQL - II
Přednáška 7 SQL – JOIN.
Přednáška 6 SQL – spojení tabulek.
Transkript prezentace:

SQL – příkaz SELECT Ing. Roman Danel, Ph.D. roman.danel@vsb.cz Institut ekonomiky a systémů řízení Hornicko–geologická fakulta

Přehled pojmů Projekce - FROM Restrikce - WHERE Kartézský součin Spojování tabulek – JOIN DISTINCT – jedinečné hodnoty UNION – sjednocení dotazů EXCEPT – rozdíl dotazů INTERSECT – průnik dotazů Řazení výsledků – ORDER BY Seskupování – GROUP BY, filtr HAVING NULL Vnořené dotazy

SELECT – ukázky syntaxe Výpis všech polí z tabulky, která se jmenuje Customers: SELECT * from Customers; Výpis vybraných polí z tabulky, která se jmenuje Customers: SELECT výčet_polí FROM tabulka; Výpis slopuců Company a Country z tabulky, která se jmenuje Customers, kde platí podmínka: SELECT Company, Country FROM Customers WHERE Country <> 'USA' ;

SELECT Výpis všech sloupců z tabulky SELECT * FROM Table Výpis z tabuky Table1 je spojen s výpisem z Table2 SELECT col1, col2 FROM Table1 UNION SELECT col1, col2 FROM Table2 Totéž včetně duplicit UNION ALL Výsledkem dotazu je rozdíl (tj. data, která jsou v Table1 a zároveň nejsou v Table2 EXCEPT Průnik INTERSECT Kartézský součin SELECT * FROM Table1 CROSS JOIN Table2 Projekce SELECT DISTINCT col1 FROM Table1

SELECT SELECT Výpis dat z tabulky FROM Seznam tabulek WHERE Predikát určující podmínku výběru (filtr dat) ORDER BY Způsob setřídění výsledných dat GROUP BY Agregační funkce (seskupení dat) HAVING Podmínka pro seskupení dat

Projekce Výpis části tabulky – seznam sloupců v příkazu SELECT select jmeno, prijmeni from SEZNAM

Restrikce Omezení množiny řádků na základě podmínky – predikát WHERE Podmínky lze kombinovat pomocí logických spojek select jmeno, prijmeni from SEZNAM where PRIJMENI = ‚Turek‘

Kartézský součin V dotazu můžeme za slovo FROM uvést více názvů tabulek. Dosáhneme tím tzv. kartézského součinu. Získáme množinu obsahující všechny kombinace záznamů Nežádoucí jev – měla by být restrikce - WHERE! select * from SEZNAM, PREDMETY

Spojování tabulek - JOIN umožňuje oddělit dva druhy podmínek – jedny slouží k propojení tabulek (za JOIN … ON) a druhé k restrikci (za WHERE). Pomocí slova AS určíme aliasy tabulek select JMENO, PRIJMENI, NAZEV_PREDMET, ZNAMKA from SEZNAM left join VYSLEDKY on SEZNAM.ID_SEZNAM = VYSLEDKY.ID_SEZNAM left join PREDMETY on PREDMETY.ID_PREDMET = VYSLEDKY.ID_PREDMET where SEZNAM.PRIJMENI = 'Turek'

Příklad: Inner join Inner join vrátí pouze záznamy, pro které existuje Outer join vrátí všechny záznamy zprava (right) nebo zleva (left) bez ohledu na existenci záznamů v spojované tabulce Příklad inner join: SELECT column_name(s) FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_name

Distinct – jedinečné hodnoty select prijmeni from SEZNAM select DISTINCT prijmeni from SEZNAM

Union – sjednocení dotazů Sjednocená množina ze dvou tabulek Záznamy musí být stejného datového typu SELECT jmeno, prijmeni FROM osobni_kontakty UNION FROM autori;

EXCEPT – rozdíl dotazů Seznam osob, které jsou v autorech, ale nejsou v osobních kontaktech SRBD Oracle: „MINUS“ SELECT jmeno, prijmeni FROM autor EXCEPT FROM osobni_kontakty ORDER BY prijmeni

INTERSECT – průnik dotazů Seznam osob, které jsou autorem a zároveň i osobou v našich kontaktech SELECT jmeno, prijmeni FROM autor INTERSECT FROM osobni_kontakty ORDER BY prijmeni

Řazení výsledků Ascending – vzestupně (od 0 do 9, od A do Z…) Descending – sestupně (Z-A, 9-0) select jmeno, prijmeni from SEZNAM order by PRIJMENI [ascending / descending]

Seskupování – GROUP BY Seskupení dle podmínky v GROUP BY Ve výčtu polí lze uvést pouze pole z GROUP BY nebo agregační funkce (count, sum, min, max…) Select prijmeni, count(*) from SEZNAM group by PRIJMENI

Seskupování – agregační funkce Count Sum Min Max Avg (= average)

Seskupování – filtrování Klauzule HAVING Select prijmeni, count(*) from SEZNAM group by PRIJMENI HAVING count(*) > 1

NULL hodnoty Hodnota není určena Nelze porovnávat pomocí operátorů: =, >, < IS NULL, IS NOT NULL

Vnořené dotazy Zanořený dotaz Lze i na místě sloupce SELECT max(pocet), min(pocet), avg(pocet) FROM ( SELECT count(k.id) AS pocet FROM autor AS a LEFT JOIN kniha AS k ON (a.id = k.autor) GROUP BY a.id ) AS knihy;