Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

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

Podobné prezentace


Prezentace na téma: "Cvičení 05 Joins, isNull, case when Ing. Pavel Bednář"— Transkript prezentace:

1 Cvičení 05 Joins, isNull, case when Ing. Pavel Bednář pavel.bednar@vsb.cz http://pavelbednar.aspone.cz

2  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.

3  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 Zub0112011 Sip0012013 Zub0112012 s.Logins.Příjmenís.Jménos.Věks.Id_Fakultav.Loginv.rok Dra025DrábekTomáš251Zub0112011 Zub011ZubatáEva232Sip0012013 Zub011ZubatáEva232Sip0012012

4  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ě.

5  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 Zub0112011 Sip0012013 Zub0112012 s.Logins.Příjmenís.Jménos.Věks.Id_Fakultav.Loginv.rok Dra025DrábekTomáš251NULL Zub011ZubatáEva232Zub0112011 Zub011ZubatáEva232Zub0112012 Nov098NovákBohumil281NULL Sip001ŠípkováRůžena182Sip0012013 Vid021VidlákováKateřina283NULL

6  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ě.

7  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 Zub0112011 Sip0012013 Zub0112012 s.Logins.Příjmenís.Jménos.Věks.Id_Fakultav.Loginv.rok Zub011ZubatáEva232Zub0112011 Zub011ZubatáEva232Zub0112012 Sip001ŠípkováRůžena182Sip0012013

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

9  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

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

11  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

12  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


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

Podobné prezentace


Reklamy Google