Cvičení 05 Joins, isNull, case when Ing. Pavel Bednář

Slides:



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

KIV/ZIS Cvičení 6 SQL - SELECT.
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.
Databázové systémy SQL Výběr dat.
YDASYS1 Ing. Monika Šimková.
Fakulta elektrotechniky a informatiky
Cvičení 03 SQL Select Ing. Pavel Bednář
Informační systémy Realizace uložených procedur a spouští, jejich praktické využití.
Informační systémy Realizace sběru dat v rámci realizovaných úloh.
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
Fakulta elektrotechniky a informatiky
Databázové systémy 1 Cvičení č. 4 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 2 Cvičení č. 6 Ing. Tomáš Váňa Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy 1 Cvičení č. 3 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy II Přednáška č. 5 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Temporální Databáze Jaroslav Dražan. Čím se budeme zabývat Proč je čas v DB důležitý Práce s časem pomocí klasického SQL Reprezentace časové domény Spojování.
PL/SQL Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd. Rozšířením jazyka SQL.
Úvod do databázových systémů
Co takhle DOTAZY? OBSAH: Y 1) Co jsou to dotazy ve WinBase Y 2) Vytvoření jednoduchého dotazu Y 3) Použití dotazu.
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.
Cvičení 13 Ing. Pavel Bednář
Databázové systémy II Přednáška č. 4, 5 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Š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
Procedurální rozšíření Transact SQL Michal Kopecký Výběr ze slajdů k 3. přednášce předmětu Databázové Aplikace (DBI026) na MFF UK.
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.
SQL – základní pojmy Ing. Roman Danel, Ph.D.
SQL PVA Jan Hora. SQL „graficky“ Grafický vs. pravý SQL SELECT ORDED BY WHERE.
Databázové systémy 2 Cvičení č. 6 Ing. Tomáš Váňa Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Fakulta elektrotechniky a informatiky
Databázové systémy 2 Cvičení č. 10 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.
Informatika II PAA DOTAZOVACÍ JAZYKY
Cvičení 02 Relační algebra Ing. Pavel Bednář
ALGO – Algoritmizace 4. cvičení 1.ročník, ZS Ing. Zdena DOBEŠOVÁ, Ph.D.
Aplikační a programové vybavení
Úvod do databázových systémů
Databázové systémy SQL Výběr dat.
TEMPORÁLNÍ DATABÁZE A TSQL2
 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.
Použití dotazu jako zdroj dat pro pohled Vypracovala: Procházková Petra.
Cvičení 11 Ing. Pavel Bednář
CUBE - Operátor relační agregace
J. Pokorný, I Halaška1 DBS: SQL92 Jaroslav Pokorný MFF UK, Praha
J. Macur, FAST VUT, 2011 (kombinované studium BU04)
Příkazy jazyka SQL ve VFP a na SQL Serveru
SQL – příkaz SELECT Ing. Roman Danel, Ph.D.
Databázové systémy I Přednáška 5 Databázové systémy 1 – KIT/IDAS1
Ing. Tomáš Váňa, Ing. Jiří Zechmeister
Databázové systémy a SQL
Databázové systémy a SQL
Databázové systémy a SQL
Počítačová cvičení z předmětu Datové sklady
Dotazovací jazyk SQL - II
Přednáška 7 SQL – JOIN.
Přednáška 6 SQL – spojení tabulek.
Databázové systémy a SQL
Databázové systémy a SQL
Transkript prezentace:

Cvičení 05 Joins, isNull, case when Ing. Pavel Bednář

 Klasické spojení dvou tabulek na základě společného atributu.  Spojí pouze záznamy z levé (první) relace, které mají shodný záznam v pravé (druhé) relaci.  Záznamy z první tabulky, které nemají shodný záznam na pravé straně, nebudou ve výsledné relaci.

 Select * from Student s Join Vyznamenani v On s.login = v.login Student LoginPříjmeníJménoVěkId_Fakulta Dra025DrábekTomáš251 Zub011ZubatáEva232 Nov098NovákBohumil281 Sip001ŠípkováRůžena182 Vid021VidlákováKateřina283 Vyznamenani LoginRok Zub Sip Zub s.Logins.Příjmenís.Jménos.Věks.Id_Fakultav.Loginv.rok Dra025DrábekTomáš251Zub Zub011ZubatáEva232Sip Zub011ZubatáEva232Sip

 Výsledná relace bude obsahovat všechny záznamy z levé relace i když nemají shodné záznam v relaci na pravé straně.  Všechny atributy relace z pravé strany budou NULL pokud záznam v levé relaci nemá shodný záznam v relaci na pravé straně.

 Select * from Student s LEFT Join Vyznamenani v On s.login = v.login Student LoginPříjmeníJménoVěkId_Fakulta Dra025DrábekTomáš251 Zub011ZubatáEva232 Nov098NovákBohumil281 Sip001ŠípkováRůžena182 Vid021VidlákováKateřina283 Vyznamenani LoginRok Zub Sip Zub s.Logins.Příjmenís.Jménos.Věks.Id_Fakultav.Loginv.rok Dra025DrábekTomáš251NULL Zub011ZubatáEva232Zub Zub011ZubatáEva232Zub Nov098NovákBohumil281NULL Sip001ŠípkováRůžena182Sip Vid021VidlákováKateřina283NULL

 Výsledná relace bude obsahovat všechny záznamy z pravé relace i když nemají shodné záznam v relaci na levé straně.  Všechny atributy relace z levé strany budou NULL pokud záznam v pravé relaci nemá shodný záznam v relaci na levé straně.

 Select * from Student s RIGHT Join Vyznamenani v On s.login = v.login Student LoginPříjmeníJménoVěkId_Fakulta Dra025DrábekTomáš251 Zub011ZubatáEva232 Nov098NovákBohumil281 Sip001ŠípkováRůžena182 Vid021VidlákováKateřina283 Vyznamenani LoginRok Zub Sip Zub s.Logins.Příjmenís.Jménos.Věks.Id_Fakultav.Loginv.rok Zub011ZubatáEva232Zub Zub011ZubatáEva232Zub Sip001ŠípkováRůžena182Sip

 Pokud je nějaký atribut NULL, nahradí ho jinou hodnotou.

 Select login, IsNull(Id_fakulta,-1) from Student s Student LoginPříjmeníJménoVěkId_Fakulta Dra025DrábekTomáš251 Zub011ZubatáEva23NULL Nov098NovákBohumil281 Sip001ŠípkováRůžena18NULL Vid021VidlákováKateřina283 Student LoginPříjmeníJménoVěkId_Fakulta Dra025DrábekTomáš251 Zub011ZubatáEva23 Nov098NovákBohumil281 Sip001ŠípkováRůžena18 Vid021VidlákováKateřina283

 Jednoduchý rozhodovací blok  Syntaxe: CASE WHEN condition THEN value1 ELSE value2 END  Lze použít v agregačních funkcích jako SUM(), atd.

 Kolik záznamů nemá vyplněnou fakultu  Select sum(case when s.id_Fakulta is null then 0 else 1 end) as Pocet from Student s Student LoginPříjmeníJménoVěkId_Fakulta Dra025DrábekTomáš251 Zub011ZubatáEva23NULL Nov098NovákBohumil281 Sip001ŠípkováRůžena18NULL Vid021VidlákováKateřina283 Student Pocet 3

 Spočítá počet unikátních výskytů atributu.  Select count(distinct Věk) as Pocet From Student Student LoginPříjmeníJménoVěkId_Fakulta Dra025DrábekTomáš251 Zub011ZubatáEva23NULL Nov098NovákBohumil281 Sip001ŠípkováRůžena18NULL Vid021VidlákováKateřina283 Student Pocet 4