Syntea software group a.s. marian.kamenicky. MFFUK Praha
|
|
- Marek Kolář
- před 7 lety
- Počet zobrazení:
Transkript
1 [ Relační databáze ] Přednáška 4 Marian Kamenický Syntea software group a.s. marian.kamenicky kamenicky@syntea.cz MFFUK Praha 2013/14 1
2 Jednotabulkov tabulkové dotazy PK FK1 Oso Jmeno Plat IdOdd Oso Jmeno Plat IdOdd Pepa Fany Gaby Karel Select * From Oso Oso Jmeno Oso Plat IdOdd Pepa Fany Gaby Karel Select * From Oso Oso Where IdOdd = Jmeno Pepa Karel Oso Plat IdOdd Select Jmeno, Plat Plat From Oso Oso Where IdOdd = Oso Jmeno Plat Gaby
3 Vícetabulkové dotazy vícetabulkový dotaz = klauzule FROM == více tabulek == spojování tabulek Jmeno Pepa Oso Plat IdOdd dr Mesto Ulice Cislo Brno Chlum Karel Select... From Oso Oso,, dr dr Jmeno Plat IdOdd Mesto Ulice Cislo Brno Pepa Chlum Karel
4 Vícetabulkové dotazy vícetabulkový dotaz = klauzule FROM == více tabulek == spojování tabulek Jmeno Pepa Oso Plat IdOdd dr Mesto Ulice Cislo Brno Chlum Karel Select... From Oso Oso,, dr dr Jmeno Plat IdOdd Mesto Ulice Cislo Brno Pepa Chlum Karel
5 Vícetabulkové dotazy spojováním tabulek se spojí sloupce řádku jedné tabulky [Oso] chceme doplnit o informace z druhé tabulky [dr] propojením jejich sloupců [ Mesto, Ulice, Cislo] Jmeno Pepa Karel Jmeno Pepa Karel Oso Plat Plat IdOdd IdOdd dr Mesto Ulice Cislo Brno Chlum Mesto Ulice Cislo Brno Chlum spojování tabulek == obohacování řádek jedné tabulky o data jiné tabulky Select... From Oso Oso,, dr dr
6 Vícetabulkové dotazy spojováním tabulek se spojí sloupce obou tabulek zároveň však dojde ke spojování řádek řádky jedné tablky se spojí se všemi / či některými řádky druhé tabulky Oso dr Jmeno Plat IdOdd Mesto Ulice Cislo Brno Chlum Pepa Karel Jmeno Plat IdOdd Mesto Ulice Cislo Brno Pepa Brno Chlum Karel
7 Vícetabulkové dotazy 2 způsoby spojování tabulek explicitní Select... From Oso Oso Join dr dr implicitní Select... From Oso Oso,, dr dr jakmile v klauzuli FROM jsou dvě či více tabulek jde vždy o spojování [join] explicitní / implicitní
8 kartézský součin popsal poprvé Standhal v knize Kartouza parmská [ [ nebo snad ne ne? ] ]
9 Spojování tabulek přirozené (NTURL JOIN) křížové (CROSS JOIN) vnitřní (INNER JOIN) vnější (OUTER JOIN) úplné vnější (FULL OUTER JOIN) částečné vnější z z leva (LEFT JOIN) z z prava (RIGHT JOIN) 9
10 Cross Join Select * From Tab1 Cross Join Tab Tab Tab 2 Z Tab 1 1 radka z Tab 2 1 r. 1 radka 2 r. 1 radka 3 r. 2 radka 1 r. 2 radka 2 r. 2 radka 3 r. 3 radka 1 r. 3 radka 2 r. 3 radka 3 r.
11 Cross Join Tab Tab 2 Select * From Tab1 Cross Join Tab2 Tab 1 Jm RokNar 1960 Pepa 1970 Vojta 1990 Tab 2 Ovoce Barva banan zluty jablko zelene jahoda ruda Jm RokNar Ovoce Barva 1960 banan zluty 1960 jablko zelene 1960 jahoda ruda Pepa 1970 banan zluty Pepa 1970 jablko zelene Pepa 1970 jahoda ruda Vojta 1990 banan zluty Vojta 1990 jablko zelene Vojta 1990 jahoda ruda
12 Cross Join Tab Tab 2 Select * From Tab1 Cross Join Tab2 Tab 1 Jm RokNar 1960 Pepa 1970 Vojta 1990 Tab 2 Ovoce Barva banan zluty jablko zelene jahoda ruda Jm RokNar Ovoce Barva 1960 banan zluty 1960 jablko zelene 1960 jahoda ruda Pepa 1970 banan zluty Pepa 1970 jablko zelene Pepa 1970 jahoda ruda Vojta 1990 banan zluty Vojta 1990 jablko zelene Vojta 1990 jahoda ruda
13 Cross Join Tab Tab 2 Select * From Tab1 Cross Join Tab2 Tab 1 Jm RokNar 1960 Pepa 1970 Vojta 1990 Tab 2 Ovoce Barva banan zluty jablko zelene jahoda ruda Jm RokNar Ovoce Barva 1960 banan zluty 1960 jablko zelene 1960 jahoda ruda Pepa 1970 banan zluty Pepa 1970 jablko zelene Pepa 1970 jahoda ruda Vojta 1990 banan zluty Vojta 1990 jablko zelene Vojta 1990 jahoda ruda
14 Cross Join Tab Tab 2 Select * From Tab1 Cross Join Tab2 Tab 1 Jm RokNar 1960 Pepa 1970 Vojta 1990 Tab 2 Ovoce Barva banan zluty jablko zelene jahoda ruda Jm RokNar Ovoce Barva 1960 banan zluty 1960 jablko zelene 1960 jahoda ruda Pepa 1970 banan zluty Pepa 1970 jablko zelene Pepa 1970 jahoda ruda Vojta 1990 banan zluty Vojta 1990 jablko zelene Vojta 1990 jahoda ruda
15 Cross Join Tab Tab 2 Select * From Tab1, Tab2 Tab 1 Jm RokNar 1960 Pepa 1970 Vojta 1990 Tab 2 Ovoce Barva banan zluty jablko zelene jahoda ruda Jm RokNar Ovoce Barva 1960 banan zluty 1960 jablko zelene 1960 jahoda ruda Pepa 1970 banan zluty Pepa 1970 jablko zelene Pepa 1970 jahoda ruda Vojta 1990 banan zluty Vojta 1990 jablko zelene Vojta 1990 jahoda ruda
16 Cross Join Tab Tab 2 Select * From Tab1 Cross Join Tab2 explicitní křížové spojení Tab 1 Jm RokNar 1960 Pepa 1970 Vojta 1990 Tab 2 Ovoce Barva banan zluty jablko zelene jahoda ruda Jm RokNar Ovoce Barva 1960 banan zluty 1960 jablko zelene 1960 jahoda ruda Pepa 1970 banan zluty Pepa 1970 jablko zelene Pepa 1970 jahoda ruda Vojta 1990 banan zluty Vojta 1990 jablko zelene Vojta 1990 jahoda ruda
17 Cross Join Tab Tab 2 Select * From Tab1, Tab2 implicitní křížové spojení Tab 1 Jm RokNar 1960 Pepa 1970 Vojta 1990 Tab 2 Ovoce Barva banan zluty jablko zelene jahoda ruda Jm RokNar Ovoce Barva 1960 banan zluty 1960 jablko zelene 1960 jahoda ruda Pepa 1970 banan zluty Pepa 1970 jablko zelene Pepa 1970 jahoda ruda Vojta 1990 banan zluty Vojta 1990 jablko zelene Vojta 1990 jahoda ruda
18 Spojení Cross Oso Odd Oso Odd PK Jmeno PK IdOdd Jmeno Plat IdOdd IdOdd Nazev KodBudovy FK1 Plat IdOdd FK1 Nazev KodBudovy Pepa Nakup Prodej B 300 Propagace Select Oso.*,, Odd.* From Oso, Odd Odd implicitní Cross Join Jmeno Plat IdOdd IdOdd Nazev KodBudovy explicitní Cross Join Select Oso.*,, Odd.* From Oso Oso Cross Join Join Odd Odd kartézský součin tabulek
19 Spojení Cross Oso Odd Oso Odd PK Jmeno PK IdOdd Jmeno Plat IdOdd IdOdd Nazev KodBudovy FK1 Plat IdOdd FK1 Nazev KodBudovy Pepa Nakup Prodej B 300 Propagace Select Oso.*,, Odd.* From Oso, Odd Odd Select Oso.*,, Odd.* From Oso Oso Cross Join Join Odd Odd Jmeno Plat IdOdd IdOdd Nazev KodBudovy Nakup Prodej B Propagace kartézský součin tabulek
20 Spojení Cross Oso Odd Oso Odd PK Jmeno PK IdOdd Jmeno Plat IdOdd IdOdd Nazev KodBudovy FK1 Plat IdOdd FK1 Nazev KodBudovy Pepa Nakup Prodej B 300 Propagace Select Oso.*,, Odd.* From Oso, Odd Odd Select Oso.*,, Odd.* From Oso Oso Cross Join Join Odd Odd Jmeno Plat IdOdd IdOdd Nazev KodBudovy Nakup Prodej B Propagace Pepa Nakup Pepa Prodej B Pepa Propagace kartézský součin tabulek
21 Spojení Cross Oso Odd Oso Odd PK Jmeno PK IdOdd Jmeno Plat IdOdd IdOdd Nazev KodBudovy FK1 Plat IdOdd FK1 Nazev KodBudovy Pepa Nakup Prodej B 300 Propagace Select Oso.*,, Odd.* From Oso, Odd Odd Select Oso.*,, Odd.* From Oso Oso Cross Join Join Odd Odd Jmeno Plat IdOdd IdOdd Nazev KodBudovy Nakup Prodej B Propagace Pepa Nakup Pepa Prodej B Pepa Propagace kartézský součin tabulek
22 Spojení Cross Oso Odd Oso Odd PK Jmeno PK IdOdd Jmeno Plat IdOdd IdOdd Nazev KodBudovy FK1 Plat IdOdd FK1 Nazev KodBudovy Pepa Nakup Prodej B 300 Propagace Select Oso.*,, Odd.* From Oso, Odd Odd Select Oso.*,, Odd.* From Oso Oso Cross Join Join Odd Odd Jmeno Plat IdOdd IdOdd Nazev KodBudovy Nakup Prodej B Propagace Pepa Nakup Pepa Prodej B Pepa Propagace kartézský součin tabulek Jmeno Plat Nazev Nakup Select Jmeno,, Plat, Plat, Nazev From Oso, Oso, Odd Odd [From Oso Oso Cross Join Join Odd] Pepa Pepa Pepa Prodej Propagace Nakup Prodej Propagace
23 Spojení Cross Oso Odd Budova PK Jmeno PK IdOdd PK KodBudovy FK1 Plat IdOdd FK1 Nazev KodBudovy Barva dresa Oso Odd Budova Jmeno Plat IdOdd IdOdd 100 Nazev Nakup KodBudovy KodBudovy Barva žlutá dresa Krátká 10 Pepa Prodej B B modrá Dlouhá Propagace C bílá korát 20
24 Spojení Cross Oso Jmeno Plat IdOdd IdOdd 100 Nakup Pepa Prodej B 300 Nazev Odd Propagace KodBudovy KodBudovy B C PK Oso Jmeno Plat FK1 IdOdd PK Budova Barva žlutá modrá bílá Odd IdOdd Nazev FK1 KodBudovy PK dresa Budova KodBudovy Barva dresa Krátká 10 Dlouhá 16 korát 20 Select Select O.Jmeno, O.Plat, O.Plat, D.Nazev, B.* B.* From From Oso Oso as as O, O, Odd Odd as as D, D, Budova Budova as as B implicitní Cross Jmeno Plat Nazev KodBudovy Barva drresa Select Select O.Jmeno, O.Plat, O.Plat, D.Nazev, B.* B.* From From Oso Oso as as O Cross Cross Join Join Odd Odd as as D Cross Cross Join Join Budova Budova as as B explicitní Cross kartézský součin dvou prvních tabulek Oso Oso a Odd Odd
25 Spojení Cross Oso Jmeno Plat IdOdd IdOdd 100 Nakup Pepa Prodej B 300 Nazev Odd Propagace KodBudovy KodBudovy B C PK Oso Jmeno Plat FK1 IdOdd PK Budova Barva žlutá modrá bílá Odd IdOdd Nazev FK1 KodBudovy PK dresa Budova KodBudovy Barva dresa Krátká 10 Dlouhá 16 korát 20 Select Select O.Jmeno, O.Plat, O.Plat, D.Nazev, B.* B.* From From Oso Oso as as O, O, Odd Odd as as D, D, Budova Budova as as B Jmeno Plat Nazev Nakup Prodej Propagace KodBudovy Barva drresa Select Select O.Jmeno, O.Plat, O.Plat, D.Nazev, B.* B.* From From Oso Oso as as O Cross Cross Join Join Odd Odd as as D Cross Cross Join Join Budova Budova as as B kartézský součin dvou prvních tabulek Oso Oso a Odd Odd
26 Spojení Cross Oso Jmeno Plat IdOdd IdOdd 100 Nakup Pepa Prodej B 300 Nazev Odd Propagace KodBudovy KodBudovy B C PK Oso Jmeno Plat FK1 IdOdd PK Budova Barva žlutá modrá bílá Odd IdOdd Nazev FK1 KodBudovy PK dresa Budova KodBudovy Barva dresa Krátká 10 Dlouhá 16 korát 20 Select Select O.Jmeno, O.Plat, O.Plat, D.Nazev, B.* B.* From From Oso Oso as as O, O, Odd Odd as as D, D, Budova Budova as as B Jmeno Pepa Pepa Plat Nazev Nakup Prodej Propagace Nakup Prodej KodBudovy Barva drresa Select Select O.Jmeno, O.Plat, O.Plat, D.Nazev, B.* B.* From From Oso Oso as as O Cross Cross Join Join Odd Odd as as D Cross Cross Join Join Budova Budova as as B Pepa Propagace kartézský součin dvou prvních tabulek Oso Oso a Odd Odd
27 Spojení Cross Oso Jmeno Plat IdOdd IdOdd 100 Nakup Pepa Prodej B 300 Nazev Odd Propagace KodBudovy KodBudovy B C PK Oso Jmeno Plat FK1 IdOdd PK Budova Barva žlutá modrá bílá Odd IdOdd Nazev FK1 KodBudovy PK dresa Budova KodBudovy Barva dresa Krátká 10 Dlouhá 16 korát 20 Select Select O.Jmeno, O.Plat, O.Plat, D.Nazev, B.* B.* From From Oso Oso as as O, O, Odd Odd as as D, D, Budova Budova as as B Jmeno Pepa Pepa Plat Nazev Nakup Prodej Propagace Nakup Prodej KodBudovy Barva drresa Select Select O.Jmeno, O.Plat, O.Plat, D.Nazev, B.* B.* From From Oso Oso as as O Cross Cross Join Join Odd Odd as as D Cross Cross Join Join Budova Budova as as B Pepa Propagace kartézský součin dvou prvních tabulek Oso Oso a Odd Odd spojíme s každým řádkem 3. 3.
28 Spojení Cross Oso Jmeno Plat IdOdd IdOdd 100 Nakup Pepa Prodej B 300 Nazev Odd Propagace KodBudovy KodBudovy B C PK Oso Jmeno Plat FK1 IdOdd PK Budova Barva žlutá modrá bílá Odd IdOdd Nazev FK1 KodBudovy PK dresa Budova KodBudovy Barva dresa Krátká 10 Dlouhá 16 korát 20 Select Select O.Jmeno, O.Plat, O.Plat, D.Nazev, B.* B.* From From Oso Oso as as O, O, Odd Odd as as D, D, Budova Budova as as B Jmeno Pepa Pepa Plat Nazev Nakup Prodej Propagace Nakup Prodej KodBudovy Barva žlutá žlutá žlutá žlutá žlutá drresa Krátká 10 Krátká 10 Krátká 10 Krátká 10 Krátká 10 Select Select O.Jmeno, O.Plat, O.Plat, D.Nazev, B.* B.* From From Oso Oso as as O Cross Cross Join Join Odd Odd as as D Cross Cross Join Join Budova Budova as as B Pepa Propagace žlutá Krátká 10 kartézský součin dvou prvních tabulek Oso Oso a Odd Odd spojíme s každým řádkem 3. 3.
29 Spojení Cross Oso Jmeno Plat IdOdd IdOdd 100 Nakup Pepa Prodej B 300 Nazev Odd Propagace KodBudovy KodBudovy B C PK Oso Jmeno Plat FK1 IdOdd PK Budova Barva žlutá modrá bílá Odd IdOdd Nazev FK1 KodBudovy PK dresa Budova KodBudovy Barva dresa Krátká 10 Dlouhá 16 korát 20 Select Select O.Jmeno, O.Plat, O.Plat, D.Nazev, B.* B.* From From Oso Oso as as O, O, Odd Odd as as D, D, Budova Budova as as B Jmeno Pepa Pepa Plat Nazev Nakup Prodej Propagace Nakup Prodej KodBudovy Barva žlutá žlutá žlutá žlutá žlutá drresa Krátká 10 Krátká 10 Krátká 10 Krátká 10 Krátká 10 Select Select O.Jmeno, O.Plat, O.Plat, D.Nazev, B.* B.* From From Oso Oso as as O Cross Cross Join Join Odd Odd as as D Cross Cross Join Join Budova Budova as as B Pepa Pepa Pepa Propagace Nakup Prodej Propagace Nakup Prodej žlutá Krátká 10 kartézský součin dvou prvních tabulek Oso Oso a Odd Odd spojíme s každým řádkem Pepa Propagace
30 Spojení Cross Oso Jmeno Plat IdOdd IdOdd 100 Nakup Pepa Prodej B 300 Nazev Odd Propagace KodBudovy KodBudovy B C PK Oso Jmeno Plat FK1 IdOdd PK Budova Barva žlutá modrá bílá Odd IdOdd Nazev FK1 KodBudovy PK dresa Budova KodBudovy Barva dresa Krátká 10 Dlouhá 16 korát 20 Select Select O.Jmeno, O.Plat, O.Plat, D.Nazev, B.* B.* From From Oso Oso as as O, O, Odd Odd as as D, D, Budova Budova as as B Jmeno Pepa Pepa Plat Nazev Nakup Prodej Propagace Nakup Prodej KodBudovy Barva žlutá žlutá žlutá žlutá žlutá drresa Krátká 10 Krátká 10 Krátká 10 Krátká 10 Krátká 10 Select Select O.Jmeno, O.Plat, O.Plat, D.Nazev, B.* B.* From From Oso Oso as as O Cross Cross Join Join Odd Odd as as D Cross Cross Join Join Budova Budova as as B Pepa Pepa Pepa Propagace Nakup Prodej Propagace Nakup Prodej B B B B B žlutá modrá modrá modrá modrá modrá Krátká 10 Dlouhá 16 Dlouhá 16 Dlouhá 16 Dlouhá 16 Dlouhá 16 kartézský součin dvou prvních tabulek Oso Oso a Odd Odd spojíme s každým řádkem Pepa Propagace B modrá Dlouhá 16
31 Spojení Cross Oso Jmeno Plat IdOdd IdOdd 100 Nakup Pepa Prodej B 300 Nazev Odd Propagace KodBudovy KodBudovy B C Oso PK Jmeno Plat FK1 IdOdd PK Budova Barva žlutá modrá bílá Odd IdOdd Nazev FK1 KodBudovy PK dresa Budova Krátká 10 Dlouhá 16 korát 20 KodBudovy Barva dresa Select Select O.Jmeno, O.Plat, O.Plat, D.Nazev, B.* B.* From From Oso Oso as as O, O, Odd Odd as as D, D, Budova Budova as as B Jmeno Pepa Pepa Plat Nazev Nakup Prodej Propagace Nakup Prodej KodBudovy Barva žlutá žlutá žlutá žlutá žlutá drresa Krátká 10 Krátká 10 Krátká 10 Krátká 10 Krátká 10 Select Select O.Jmeno, O.Plat, O.Plat, D.Nazev, B.* B.* From From Oso Oso as as O Cross Cross Join Join Odd Odd as as D Cross Cross Join Join Budova Budova as as B Pepa Pepa Pepa Propagace Nakup Prodej Propagace Nakup Prodej B B B B B žlutá modrá modrá modrá modrá modrá Krátká 10 Dlouhá 16 Dlouhá 16 Dlouhá 16 Dlouhá 16 Dlouhá 16 kartézský součin dvou prvních tabulek Oso Oso a Odd Odd spojíme s každým řádkem Pepa Propagace B modrá Dlouhá 16
32 Spojení Cross Oso Jmeno Plat IdOdd IdOdd 100 Nakup Pepa Prodej B 300 Nazev Odd Propagace KodBudovy KodBudovy B C PK Oso Jmeno Plat FK1 IdOdd PK Budova Barva žlutá modrá bílá Odd IdOdd Nazev FK1 KodBudovy PK dresa Budova KodBudovy Barva dresa Krátká 10 Dlouhá 16 korát 20 Select Select O.Jmeno, O.Plat, O.Plat, D.Nazev, B.* B.* From From Oso Oso as as O, O, Odd Odd as as D, D, Budova Budova as as B Jmeno Pepa Pepa Plat Nazev Nakup Prodej Propagace Nakup Prodej KodBudovy Barva žlutá žlutá žlutá žlutá žlutá drresa Krátká 10 Krátká 10 Krátká 10 Krátká 10 Krátká 10 kartézský součin dvou prvních tabulek Oso Oso a Odd Odd spojíme s každým řádkem Pepa Pepa Pepa Pepa Propagace Nakup Prodej Propagace Nakup Prodej Propagace B B B B B B žlutá modrá modrá modrá modrá modrá modrá Krátká 10 Dlouhá 16 Dlouhá 16 Dlouhá 16 Dlouhá 16 Dlouhá 16 Dlouhá Nakup C bílá korát 20 celkem řádek 2 [Oso] [Oso] xx3 [Odd] [Odd] xx3 [Budova] ---> ---> Pepa Pepa Pepa Prodej Propagace Nakup Prodej Propagace C C C C C bílá bílá bílá bílá bílá korát 20 korát 20 korát 20 korát 20 korát 20
33 příklad skoro reálný
34 Spojení Cross - příklad Pan Jm Bobo Pepa Dama Jm Ema Jana Lucy Tanec Nazev polka čača tango vytvořte podklady pro testování dvojic z tanců řešte řešte Test Pan Dama Tanec Pan Bobo Bobo Bobo Dama Ema Jana Lucy Test Tanec Znamka Znamka Select P.Jm P.Jm Pan, Pan, D.Jm D.Jm Dama, T. T. Nazev Tanec, '' '' Znamka From Pan Pan P Cross Join Join Dama D Cross Join Join Tanec T
35 Spojení Cross - příklad Pan Jm Bobo Pepa Dama Jm Ema Jana Lucy Tanec Nazev polka čača tango vytvořte podklady pro testování dvojic z tanců Select P.Jm P.Jm Pan, Pan, D.Jm D.Jm Dama, T. T. Nazev Tanec, '' '' Znamka From Pan Pan P Cross Join Join Dama D Cross Join Join Tanec T řešte řešte Test Pan Dama Tanec Pan Bobo Bobo Bobo Pepa Pepa Pepa Dama Ema Jana Lucy Ema Jana Lucy Test Tanec Znamka Znamka
36 Spojení Cross - příklad Pan Jm Bobo Pepa Dama Jm Ema Jana Lucy Tanec Nazev polka čača tango vytvořte podklady pro testování dvojic z tanců Select P.Jm P.Jm Pan, Pan, D.Jm D.Jm Dama, T. T. Nazev Tanec, '' '' Znamka From Pan Pan P Cross Join Join Dama D Cross Join Join Tanec T řešte řešte Test Pan Dama Tanec Pan Bobo Bobo Bobo Pepa Pepa Pepa Dama Ema Jana Lucy Ema Jana Lucy Test Tanec polka polka polka polka polka polka Znamka Znamka
37 Spojení Cross - příklad Pan Jm Bobo Pepa Dama Jm Ema Jana Lucy Tanec Nazev polka čača tango vytvořte podklady pro testování dvojic z tanců Select P.Jm P.Jm Pan, Pan, D.Jm D.Jm Dama, T. T. Nazev Tanec, '' '' Znamka From Pan Pan P Cross Join Join Dama D Cross Join Join Tanec T řešte řešte Test Pan Dama Tanec Pan Bobo Bobo Bobo Pepa Pepa Pepa Bobo Bobo Bobo Pepa Pepa Pepa Dama Ema Jana Lucy Ema Jana Lucy Ema Jana Lucy Ema Jana Lucy Test Tanec polka polka polka polka polka polka čača čača čača čača čača čača Znamka Znamka
38 Spojení Cross - příklad Pan Jm Bobo Pepa Dama Jm Ema Jana Lucy Tanec Nazev polka čača tango vytvořte podklady pro testování dvojic z tanců Select P.Jm P.Jm Pan, Pan, D.Jm D.Jm Dama, T. T. Nazev Tanec, '' '' Znamka From Pan Pan P Cross Join Join Dama D Cross Join Join Tanec T řešte řešte Test Pan Dama Tanec Znamka Pan Dama Test Tanec Znamka Bobo Ema polka Bobo Jana polka Bobo Lucy polka Pepa Ema polka Pepa Jana polka Pepa Lucy polka Bobo Ema čača Bobo Jana čača Bobo Lucy čača Pepa Ema čača Pepa Jana čača Pepa Lucy čača Bobo Ema tango Bobo Jana tango Bobo Lucy tango Pepa Ema tango Pepa Jana tango Pepa Lucy tango
39 Spojení Cross - příklad Pan Jm Bobo Pepa Dama Jm Ema Jana Lucy Tanec Nazev polka čača tango vytvořte podklady pro testování dvojic z tanců Select P.Jm P.Jm Pan, Pan, D.Jm D.Jm Dama, T. T. Nazev Tanec, '' '' Znamka From Pan Pan P Cross Join Join Dama D Cross Join Join Tanec T řešte řešte Test Pan Dama Tanec Znamka Pan Dama Test Tanec Znamka Bobo Ema polka Bobo Jana polka Bobo Lucy polka Pepa Ema polka Pepa Jana polka Pepa Lucy polka Bobo Ema čača Bobo Jana čača Bobo Lucy čača Pepa Ema čača Pepa Jana čača Pepa Lucy čača Bobo Ema tango Bobo Jana tango Bobo Lucy tango Pepa Ema tango Pepa Jana tango Pepa Lucy tango
40 mrkněmě se na to jinak
41 Vztahy mezi tabulkami Oso Odd Budova PK FK1 Jmeno Plat IdOdd PK FK1 IdOdd Nazev KodBudovy PK KodBudovy Barva dresa vraťme se se zpět zpět!!!! Oso Odd Budova Jmeno Plat IdOdd IdOdd 100 Nakup Pepa Prodej B 300 Nazev Propagace KodBudovy KodBudovy B C Barva žlutá modrá bílá dresa Krátká 10 Dlouhá 16 korát 20 mezi tabulkami [entitami modelu] existují vztahy chceme vztahy využít a "obohatit" řádky o data zpřízněných řádek z jiných tabulek
42 Vztahy mezi tabulkami Oso Odd Budova PK FK1 Jmeno Plat IdOdd PK FK1 IdOdd Nazev KodBudovy PK KodBudovy Barva dresa vraťme se se zpět zpět!!!! Oso Odd Budova Jmeno Plat IdOdd IdOdd 100 Nakup Pepa Prodej B 300 Nazev Propagace KodBudovy KodBudovy B C Barva žlutá modrá bílá dresa Krátká 10 Dlouhá 16 korát 20 mezi tabulkami [entitami modelu] existují vztahy chceme vztahy využít a "obohatit" řádky o data zpřízněných řádek z jiných tabulek
43 Vztahy mezi tabulkami Oso Odd Budova PK FK1 Jmeno Plat IdOdd PK FK1 IdOdd Nazev KodBudovy PK KodBudovy Barva dresa vraťme se se zpět zpět!!!! Oso Odd Budova Jmeno Plat IdOdd IdOdd 100 Nakup Pepa Prodej B 300 Nazev Propagace KodBudovy KodBudovy B C Barva žlutá modrá bílá dresa Krátká 10 Dlouhá 16 korát 20 mezi tabulkami [entitami modelu] existují vztahy chceme vztahy využít a "obohatit" řádky o data zpřízněných řádek z jiných tabulek spojování tabulek [řádek] podmíníme výrazem popisujícím vzájemný vztah tabulek
44 Spojování tabulek přirozené (NTURL JOIN) křížové (CROSS JOIN) vnitřní (INNER JOIN) vnější (OUTER JOIN) úplné vnější (FULL OUTER JOIN) částečné vnější z z leva (LEFT JOIN) z z prava (RIGHT JOIN) 44
45 Vnitřní spojení - Inner Oso Odd Oso Odd PK Jmeno PK IdOdd Jmeno Plat IdOdd IdOdd Nazev KodBudovy FK1 Plat IdOdd FK1 Nazev KodBudovy Nakup Pepa Prodej B 300 Propagace Select O.Jmeno, O.Plat, O.IdOdd, Jmeno Plat IdOdd Nazev KodBudovy D.Nazev, O.KodBudovy From Oso Oso as as O Inner Join Join Odd Odd D On On O.IdOdd = D.IdOdd Select O.Jmeno, O.Plat, O.IdOdd, D.Nazev, O.KodBudovy From Oso Oso as as O Join Join Odd Odd D On On O.IdOdd = D.IdOdd
46 Vnitřní spojení - Inner PK FK1 Oso Jmeno Plat IdOdd PK FK1 Odd IdOdd Nazev KodBudovy Select O.Jmeno, O.Plat, O.IdOdd, D.Nazev, O.KodBudovy From Oso Oso as as O Join Join Odd Odd D On On O.IdOdd = D.IdOdd Oso Jmeno Plat IdOdd IdOdd 100 Nakup Pepa Prodej B Jmeno Plat 300 IdOdd Nazev Odd Propagace Nazev KodBudovy KodBudovy vnitřní spojení způsobem kartézského součinu při spojování řádek z obou tabulek kontrola je-li splněna spojovací podmínka spojeny pouze řádky pro něž podmínka vyhovuje
47 Vnitřní spojení - Inner PK FK1 Oso Jmeno Plat IdOdd PK FK1 Odd IdOdd Nazev KodBudovy Select O.Jmeno, O.Plat, O.IdOdd, D.Nazev, O.KodBudovy From Oso Oso as as O Join Join Odd Odd D On On O.IdOdd = D.IdOdd Oso Jmeno Plat IdOdd IdOdd 100 Nakup Pepa Prodej B Jmeno Plat IdOdd 100 Nazev Odd Propagace Nazev Nakup KodBudovy KodBudovy
48 Vnitřní spojení - Inner PK FK1 Oso Jmeno Plat IdOdd PK FK1 Odd IdOdd Nazev KodBudovy Select O.Jmeno, O.Plat, O.IdOdd, D.Nazev, O.KodBudovy From Oso Oso as as O Join Join Odd Odd D On On O.IdOdd = D.IdOdd Oso Jmeno Plat IdOdd IdOdd 100 Nakup Pepa Prodej B Jmeno Pepa Plat IdOdd Nazev Odd Propagace Nazev Nakup Prodej KodBudovy KodBudovy B
49 Vnitřní spojení - Inner Oso Odd Budova Jmeno Plat IdOdd IdOdd Nazev KodBudovy KodBudovy Barva dresa Nakup žlutá Krátká 10 Pepa Prodej B B modrá Dlouhá Propagace C bílá korát 20 Jmeno Plat IdOdd Nazev KodBudovy Barva dresa Select O.Jmeno, O.Plat, O.IdOdd, D.Nazev, O.KodBudovy, B.Barva, B.dresa From Oso Oso as as O Join Join Odd Odd D On On O.IdOdd = D.IdOdd Join Join Budova B On On B.KodBudovy = D. D. KodBudovy
50 Vnitřní spojení - Inner Budova Jmeno Plat IdOdd Nazev KodBudovy KodBudovy Barva dresa Nakup žlutá Krátká 10 Pepa Prodej B B modrá Dlouhá 16 C bílá korát 20 Jmeno Plat IdOdd Nazev KodBudovy Barva dresa Nakup žlutá Krátká 10 Select O.Jmeno, O.Plat, O.IdOdd, D.Nazev, O.KodBudovy, B.Barva, B.dresa From Oso Oso as as O Join Join Odd Odd D On On O.IdOdd = D.IdOdd Join Join Budova B On On B.KodBudovy = D. D. KodBudovy
51 Vnitřní spojení - Inner Budova Jmeno Plat IdOdd Nazev KodBudovy KodBudovy Barva dresa Nakup žlutá Krátká 10 Pepa Prodej B B modrá Dlouhá 16 C bílá korát 20 Jmeno Plat IdOdd Nazev KodBudovy Barva dresa Nakup žlutá Krátká 10 Pepa Prodej B modrá Dlouhá 16 Select O.Jmeno, O.Plat, O.IdOdd, D.Nazev, O.KodBudovy, B.Barva, B.dresa From Oso Oso as as O Join Join Odd Odd D On On O.IdOdd = D.IdOdd Join Join Budova B On On B.KodBudovy = D. D. KodBudovy
52 Vnitřní spojení - Inner Oso Odd Budova Jmeno Plat IdOdd IdOdd Nazev KodBudovy KodBudovy Barva dresa Nakup žlutá Krátká 10 Pepa Prodej B B modrá Dlouhá Propagace C bílá korát 20 Select O.Jmeno, O.Plat, O.IdOdd, D.Nazev, O.KodBudovy, B.Barva, B.dresa From Oso Oso as as O Join Join Odd Odd D On On O.IdOdd = D.IdOdd Join Join Budova B On On B.KodBudovy = D. D. KodBudovy Jmeno Plat IdOdd Nazev KodBudovy Barva dresa Nakup žlutá Krátká 10 Pepa Prodej B modrá Dlouhá 16
53 Vnitřní spojení - Inner Oso Odd Budova Jmeno Plat IdOdd IdOdd Nazev KodBudovy KodBudovy Barva dresa Nakup žlutá Krátká 10 Pepa Prodej B B modrá Dlouhá Propagace C bílá korát 20 Select O.Jmeno, O.Plat, O.IdOdd, From D.Nazev, O.KodBudovy, B.Barva, B.dresa Oso as O Join Join pokud On podmínka je "=" [rovnost] a jména sloupců obou tabulek shodná lze užít podmínku Using Odd D On O.IdOdd = D.IdOdd Budova B On B.KodBudovy = D. KodBudovy
54 Vnitřní spojení - Inner Oso Odd Budova Jmeno Plat IdOdd IdOdd Nazev KodBudovy KodBudovy Barva dresa Nakup žlutá Krátká 10 Pepa Prodej B B modrá Dlouhá Propagace C bílá korát 20 Select O.Jmeno, O.Plat, O.IdOdd, From D.Nazev, O.KodBudovy, B.Barva, B.dresa Oso as O Join Odd D Using (IdOdd( IdOdd) Join Budova B pokud On podmínka je "=" [rovnost] a jména sloupců obou tabulek shodná lze užít podmínku Using Using (KodBudovy( KodBudovy);
55 Vnitřní spojení - Inner Oso Odd Budova Jmeno Plat IdOdd IdOdd Nazev KodBudovy KodBudovy Barva dresa Nakup žlutá Krátká 10 Pepa Prodej B B modrá Dlouhá Propagace C bílá korát 20 Select O.Jmeno, O.Plat, O.IdOdd, D.Nazev, O.KodBudovy, B.Barva, B.dresa From Oso as O Join Odd D Using (IdOdd( IdOdd) Join Budova B Using (KodBudovy( KodBudovy);
56 Vnitřní spojení - Inner Dluh Oso Id Dat Castka Jm Pr Jm Pr Mesto Ulice Cis Pepa Pudil Jara Juda z Mala Jara Juda Karel Kren Brno Velka Karel Kren Pepa Pudil Praha Bila 30 Zdenek Zvara Praha Modra 40 Id Dat Castka Jm Pr Mesto Ulice Cis Select D.*, D.*, O.Mesto, O.Ulice, O.Cislo From Dluh Dluh D Join Join Oso Oso O On On D.Jm =O.Jm ND D.Pr D.Pr =O.Pr ; ; podmínka On může být složená pokud podmínky jsou ND z rovností a shodná jména lze užít podmínku Using(,, )
57 Vnitřní spojení - Inner Dluh Oso Id Dat Castka Jm Pr Jm Pr Mesto Ulice Cis Pepa Pudil Jara Juda z Mala Jara Juda Karel Kren Brno Velka Karel Kren Pepa Pudil Praha Bila 30 Zdenek Zvara Praha Modra 40 Id Dat Castka Jm Pr Mesto Ulice Cis Select D.*, D.*, O.Mesto, O.Ulice, O.Cislo From Dluh Dluh D Join Join Oso Oso O Using (Jm, (Jm, Pr); Pr); podmínka On může být složená pokud podmínky jsou ND z rovností a shodná jména lze užít podmínku Using(,, )
58 Vnitřní spojení - Inner Dluh Oso Id Dat Castka Jm Pr Jm Pr Mesto Ulice Cis Pepa Pudil Jara Juda z Mala Jara Juda Karel Kren Brno Velka Karel Kren Pepa Pudil Praha Bila 30 Zdenek Zvara Praha Modra 40 Select D.*, From O.Mesto, O.Ulice, O.Cisllo Dluh D Join Oso O Using (Jm,Pr); podmínka On může být složená pokud podmínky jsou ND z rovností a shodná jména lze užít podmínku Using(,, )
59 Vnitřní spojení - Inner Dluh Oso Id Dat Castka Jm Pr Jm Pr Mesto Ulice Cis Pepa Pudil Jara Juda z Mala Jara Juda Karel Kren Brno Velka Karel Kren Pepa Pudil Praha Bila 30 Zdenek Zvara Praha Modra 40 Select D.*, D.*, O.Mesto, O.Ulice, O.Cisllo From Dluh Dluh D Join Join Oso Oso O Using (Jm,Pr); podmínka On může být složená pokud podmínky jsou ND z rovností a shodná jména lze užít podmínku Using(,, )
60 Vnitřní spojení - Inner Oso PK Jmeno Plat FK1 IdOdd Odd PK IdOdd Oso Odd Jmeno Plat IdOdd IdOdd Nazev KodBudovy Nakup Nazev FK1 KodBudovy Pepa Prodej? B 300 Propagace Select Oso.*,, Odd.* From Oso Oso Join Join Odd Odd ON ON 1 = 1; 11; Jmeno Plat IdOdd IdOdd Nazev KodBudovy Nakup Prodej B Propagace Pepa Nakup Pepa Prodej B Pepa Propagace podmínka vždy splněna výsledek == kartézský součin
61 Vnitřní spojení - Inner Oso PK Jmeno Plat FK1 IdOdd Odd PK IdOdd Oso Odd Jmeno Plat IdOdd IdOdd Nazev KodBudovy Nakup Nazev FK1 KodBudovy Pepa Prodej? B 300 Propagace Select Oso.*,, Odd.* From Oso Oso Join Join Odd Odd ON ON 1 = 0; 0; Jmeno Plat IdOdd IdOdd Nazev KodBudovy podmínka vždy nesplněna výsledek == prázdná tabulka
62 Vnitřní spojení - Inner PPan DDama Jm dam Vyska 180 Bobo 165 David Honza Jan Kamil 169 Jm Ema Gaby Jana Lucy Nada Vyska ? Pan Pan dam dam David David VyskaP VyskaP Dama Dama Gaby Jana Gaby Jana VyskaD VyskaD Select P.Jm P.Jm Pan, Pan, P.Vyska VyskaP, D.Jm D.Jm Dama, D.Vyska VyskaD From PPan PPan P Join Join DDama D On On P.Vyska > D.Vyska+10; Honza Honza Honza Ema Gaby Jana Lucy Ema Gaby Jana
63 Vnitřní spojení - Inner PPan DDama Jm dam Vyska 180 Bobo 165 David Honza Jan Kamil 169 Jm Ema Gaby Jana Lucy Nada Vyska ? Pan Pan dam dam David David VyskaP VyskaP Dama Dama Gaby Jana Gaby Jana VyskaD VyskaD Select P.Jm P.Jm Pan, Pan, P.Vyska VyskaP, D.Jm D.Jm Dama, D.Vyska VyskaD From PPan PPan P Join Join DDama D On On P.Vyska > D.Vyska+10; Honza Honza Honza Ema Gaby Jana Lucy Ema Gaby Jana
64 Vnitřní spojení - Inner Jm PPan DDama dam 180 Bobo 165 David Honza Jan 159 Kamil Vyska Jm Ema Gaby Jana Lucy Nada Select P.Jm P.Jm Pan, Pan, P.Vyska VyskaP, D.Jm D.Jm Dama, D.Vyska VyskaD Jan a Kamil si si ani neškrtnoun ale nedovědí se se to to From PPan PPan P Join Join DDama D nebylo On On by P.Vyska slušný > D.Vyska+10; to tam Vyska lenit i "nespojené" Pan VyskaP řádky 170? Pan VyskaP 180 dam dam 180 David 177 David krtnou Honza 182 Honza 182 jak do do výsledku začlenit i i "nespojené" řádky s indikací že e se se nespojili vnějším m spojením Honza nebylo by slušný to to tam ňák k naznačit načit??? 182 Dama Dama Gaby Jana Gaby Jana Ema Gaby Jana Lucy Ema Gaby Jana VyskaD VyskaD
65 Spojování tabulek přirozené (NTURL JOIN) křížové (CROSS JOIN) vnitřní (INNER JOIN) vnější (OUTER JOIN) úplné vnější (FULL OUTER JOIN) částečné vnější z z leva (LEFT JOIN) z z prava (RIGHT JOIN) 65
66 Vnitřní spojení - Inner Jm PPan Vyska DDama Jm Vyska Pan VyskaP Dama VyskaD dam 180 Ema 170 Bobo 165 David Honza Jan Kamil 169 Gaby Jana Lucy Nada Pan dam dam David David VyskaP Dama Gaby Jana Gaby Jana Ema VyskaD Select P.Jm P.Jm Pan, Pan, P.Vyska VyskaP, D.Jm D.Jm Dama, D.Vyska VyskaD Honza Honza Gaby Jana Lucy Ema Gaby From PPan PPan P Join Join DDama D On On P.Vyska > D.Vyska+10; Honza 182 Jana 164
67 Vnější spojení - Outer Jm PPan Vyska DDama Jm Vyska Pan VyskaP Dama VyskaD dam 180 Ema 170 Bobo 165 David Honza Jan Kamil 169 Gaby Jana Lucy Nada Pan dam dam David David VyskaP Dama Gaby Jana Gaby Jana Ema VyskaD Select P.Jm P.Jm Pan, Pan, P.Vyska VyskaP, D.Jm D.Jm Dama, D.Vyska VyskaD Honza Honza Gaby Jana Lucy Ema Gaby From PPan PPan P Left Left Join Join DDama D On On P.Vyska > D.Vyska+10; Honza Jan Kamil Jana 164
68 Vnější spojení - Outer Jm PPan Vyska DDama Jm Vyska Pan VyskaP Dama VyskaD dam 180 Ema 170 Bobo 165 David Honza Jan Kamil 169 Gaby Jana Lucy Nada Pan dam dam David David VyskaP Dama Gaby Jana Gaby Jana Ema VyskaD Select P.Jm P.Jm Pan, Pan, P.Vyska VyskaP, D.Jm D.Jm Dama, D.Vyska VyskaD Honza Honza Gaby Jana Lucy Ema Gaby From PPan PPan P Right Join Join DDama D On On P.Vyska > D.Vyska+10; Honza 182 Jana Nada
69 Vnější spojení - Outer Jm PPan Vyska DDama Jm Vyska Pan VyskaP Dama VyskaD dam 180 Ema 170 Bobo 165 David Honza Jan Kamil 169 Gaby Jana Lucy Nada Pan dam dam David David VyskaP Dama Gaby Jana Gaby Jana Ema VyskaD Select P.Jm P.Jm Pan, Pan, P.Vyska VyskaP, D.Jm D.Jm Dama, D.Vyska VyskaD Honza Honza Gaby Jana Lucy Ema Gaby From PPan PPan P Full Full Join Join DDama D On On P.Vyska > D.Vyska+10; Honza Jan Kamil Jana Nada
70 Vnější spojování tabulek - outer join vnitřní spojení vyřadí z výsledku řádky pro které se se v druhé tabulce nenalezne žádná spojovací shoda nespojené řádky z výsledku vypadnou někdy žádoucí ponechat nespojené řádky ve ve výsledku s indikací nespojení s druhou tabulkou nespojené řádky se se spojí se se simulovanou NULL řádkou druhé tabulky to to je je vnější spojení [outer join]
71 Spojování tabulek přirozené (NTURL JOIN) křížové (CROSS JOIN) vnitřní (INNER JOIN) vnější (OUTER JOIN) úplné vnější (FULL OUTER JOIN) částečné vnější z z leva (LEFT JOIN) z z prava (RIGHT JOIN) 71
72 Spojování tabulek přirozené (NTURL JOIN) křížové (CROSS JOIN) vnitřní (INNER JOIN) vnější (OUTER JOIN) úplné vnější (FULL OUTER JOIN) částečné vnější z z leva (LEFT JOIN) z z prava (RIGHT JOIN) 72
73 Vnitřní spojení - Inner Oso Odd Budova Jmeno Plat IdOdd IdOdd Nazev KodBudovy KodBudovy Barva dresa Nakup žlutá Krátká 10 Pepa Prodej B B modrá Dlouhá Propagace C bílá korát 20 Select O.Jmeno, O.Plat, O.IdOdd, D.Nazev, O.KodBudovy, B.Barva, B.dresa From Oso Oso as as O Natural Join Join Odd Odd D Natural Join Join Budova B; B; žádné podmínky nezadány sloupce tabulek stejně se jmenující se porovnají na rovnost
74 Přirozené spojení Oso Odd Budova Jmeno Plat IdOdd IdOdd Nazev KodBudovy KodBudovy Barva dresa Nakup žlutá Krátká 10 Pepa Prodej B B modrá Dlouhá Propagace C bílá korát 20 Select O.Jmeno, O.Plat, O.IdOdd, D.Nazev, O.KodBudovy, B.Barva, B.dresa From Oso Oso as as O Natural Join Join Odd Odd D Natural Join Join Budova B; B; Jmeno Plat IdOdd Nazev KodBudovy Barva dresa Nakup žlutá Krátká 10 Pepa Prodej B modrá Dlouhá 16
75 Přirozené spojení Jm PPan Vyska DDama Jm Vyska Pan VyskaP Dama VyskaD dam 180 Ema 170 Bobo 165 David 177 Gaby Jana Pan VyskaP Dama VyskaD 193 Lucy 180 Honza 182 Nada 199 Jan 159 Kamil 169 Select P.Jm P.Jm Pan, Pan, P.Vyska VyskaP, D.Jm D.Jm Dama, D.Vyska VyskaD From PPan PPan P Natural Join Join DDama D; D;
76 Přirozené spojení Jm PPan Vyska DDama Jm Vyska Pan VyskaP Dama VyskaD dam 180 Ema 170 Bobo 165 David 177 Gaby Jana Pan VyskaP Dama VyskaD 193 Lucy 180 Honza 182 Nada 199 Jan 159 Kamil 169 Select P.Jm P.Jm Pan, Pan, P.Vyska VyskaP, D.Jm D.Jm Dama, D.Vyska VyskaD From PPan PPan P Natural Join Join DDama D; D; Select Select P.Jm P.Jm Pan, Pan, P.Vyska P.Vyska VyskaP, VyskaP, D.Jm D.Jm Dama, Dama, D.Vyska D.Vyska VyskaD VyskaD From From PPan PPan P Join Join DDama DDama D; D; ON ON P.Jm P.Jm = D.Jm D.Jm ND ND P.Vyska = D.Vyska;
77 Přirozené spojení JmP PPan Vyska JmD DDama Vyska Pan VyskaP Dama VyskaD dam 180 Ema 170 Bobo 165 David Gaby Jana Lucy Pan dam VyskaP 180 Dama Lucy VyskaD 180 Honza 182 Nada 199 Jan 159 Kamil 169 Select P.Jm P.Jm Pan, Pan, P.Vyska VyskaP, D.Jm D.Jm Dama, D.Vyska VyskaD From PPan PPan P Natural Join Join DDama D; D;
78 Přirozené spojení JmP PPan Vyska JmD DDama Vyska Pan VyskaP Dama VyskaD dam 180 Ema 170 Bobo 165 David Gaby Jana Lucy Pan dam VyskaP 180 Dama Lucy VyskaD 180 Honza 182 Nada 199 užívání Natural l Join lze posuzovat jako trestný čin Jan 159 Kamil lze 169 posuzovat jako trestný Select P.Jm P.Jm Pan, Pan, P.Vyska VyskaP, D.Jm D.Jm Dama, D.Vyska VyskaD From PPan PPan P Natural Join Join DDama D; D;
79 Přirozené spojování tabulek - natural join natural join použití v aplikaci je je závažným trestním činem techniku přirozeného spojení ihned po po přednášce zapomeneme kdo u zkoušky bude vědět co co to to je je natural join dopouští se se přestupku držení nebezpečné zbraně a nemůže být klasifikován dostatečně!!!!!!
80 Spojování tabulek přirozené (NTURL JOIN) křížové (CROSS JOIN) vnitřní (INNER JOIN) vnější (OUTER JOIN) úplné vnější (FULL OUTER JOIN) částečné vnější z z leva (LEFT JOIN) z z prava (RIGHT JOIN) výlučné spojení (neexistuje klauzule --exclusion) 80
81 Výlučné spojení - exclusion zjištění něčeho co není co nemá nějakou vlastnost co nemá nějakou vazbu zjištění pánů [dam] DDama Jm Vyska Ema 170 Gaby 159 Jana 164 Lucy 180 Nada 199 kteří / které si dle daných pravidel nezatancují PPan Jm dam Vyska 180 Bobo 165 David Honza Jan Kamil 169 užije se vnější spojení [pravé, levé, úplné]
82 Vnější spojení - Outer Jm PPan Vyska DDama Jm Vyska Pan VyskaP Dama VyskaD dam 180 Ema 170 Bobo 165 David Honza Jan Kamil 169 Gaby Jana Lucy Nada Pan dam dam David David VyskaP Dama Gaby Jana Gaby Jana Ema VyskaD Select P.Jm P.Jm Pan, Pan, P.Vyska VyskaP, D.Jm D.Jm Dama, D.Vyska VyskaD Honza Honza Gaby Jana Lucy Ema Gaby From PPan PPan P Left Left Join Join DDama D On On P.Vyska > D.Vyska+10; Honza Jan Kamil Jana 164
83 Vnější spojení - Outer Jm PPan Vyska DDama Jm Vyska Pan VyskaP Dama VyskaD dam 180 Ema 170 Bobo 165 David Honza Jan Kamil 169 Gaby Jana Lucy Nada Pan dam dam David David VyskaP Dama Gaby Jana Gaby Jana Ema VyskaD Select P.Jm P.Jm Pan, Pan, P.Vyska VyskaP, D.Jm D.Jm Dama, D.Vyska VyskaD Honza Honza Gaby Jana Lucy Ema Gaby From PPan PPan P Left Left Join Join DDama D On On P.Vyska > D.Vyska+10; Honza Jan Kamil Jana NULL NULL 164 NULL NULL
84 Vnější spojení - Outer PPan Jm dam Vyska 180 Bobo 165 David Jm Ema Gaby Jana DDama Vyska Pan VyskaP Dama VyskaD Honza 182 Jan 159 Kamil 169 Lucy Nada Pan dam VyskaP 180 Dama Gaby VyskaD 159 Select Pan, Pan, VyskaP From (( Select P.Jm P.Jm Pan, Pan, P.Vyska VyskaP, D.Jm D.Jm Dama, D.Vyska VyskaD dam David David Honza Jana Gaby Jana Ema Gaby Jana Lucy Ema From PPan PPan P Left Left Join Join DDama D On On P.Vyska > D.Vyska+10 )) as as TT TT Where Dama IS IS NULL; Honza Honza Jan Kamil Gaby Jana NULL NULL NULL NULL
85 Vnější spojení - Outer PPan Jm dam Vyska 180 Bobo 165 David Jm Ema Gaby Jana DDama Vyska Pan VyskaP Dama VyskaD Honza 182 Lucy 180 Jan 159 Kamil 169 Nada 199 Select Pan, Pan, VyskaP From (( Select P.Jm P.Jm Pan, Pan, P.Vyska VyskaP, D.Jm D.Jm Dama, D.Vyska VyskaD From PPan PPan P Left Left Join Join DDama D On On P.Vyska > D.Vyska+10 )) as as TT TT Where Dama IS IS NULL; Pan Jan Kamil VyskaP
86 Vnější spojení - Outer PPan Jm dam Vyska 180 Bobo 165 David Honza Jan Kamil 169 Jm Ema Gaby Jana Lucy Nada DDama Vyska Pan dam... Honza VyskaP Dama Gaby... Jana VyskaD Select Dama, VyskaD From (( Select P.Jm P.Jm Pan, Pan, P.Vyska VyskaP, D.Jm D.Jm Dama, D.Vyska VyskaD Null Dama Nada Null VyskaD 199 Nada 199 From PPan PPan P Right Join Join DDama D On On P.Vyska > D.Vyska+10 )) as as TT TT Where Pan PanIS IS NULL;
87 a co normy
88 Spojování tabulek a nsi normy SQL / SQL1 implicitní spojení pomocí WHERE SQL / SQL2 SQL 2003 SELECT SELECT FROM FROM Tab1, Tab1, Tab2 Tab2 WHERE WHERE Tab1. Tab1. Sloup Sloup = Tab2.SloupB Tab2.SloupB explicitní operátor JOIN v klauzuli FROM SELECT SELECT FROM FROM Tab1 Tab1Join JoinTab2 On On Tab1. Tab1. Sloup Sloup = Tab2.SloupB Tab2.SloupB [ [ On On > <!=!= In In Betwwen Betwwen en ] ] [ [ Using Using (IdXxxx) (IdXxxx) ] ] explicitní JOIN implicitní JOIN 88
89 Spojování tabulek Select Oso.*,, Odd.* From Oso, Oso, Odd Odd Where Oso.IdOdd = Odd.IdOdd kartézský součin tabulek Jmeno Plat IdOdd IdOdd Nazev KodBudovy Nakup Prodej B Propagace Pepa Nakup Pepa Prodej B Pepa Propagace Po WHERE Jmeno Plat IdOdd IdOdd Nazev KodBudovy Nakup Pepa Prodej B mě se se to to ňák k metodicky nelíbí pane metodický učiteliu do do klauzule WHERE jsme dávali d podmínky výběru vylučovací to to něnín fér fér dát t tam [[ i i ]] podmínky spojovací
90 JOIN - klauzule spojování klauzule klauzule JOIN JOIN spojování se se zadává zadáváklauzulí klauzulífrom Select Oso.*,, Odd.* From Oso Oso JOIN Odd Odd ON ON Oso. IdOdd = Odd.IdOdd Where Oso.IdOdd = Odd.IdOdd Oso Odd Jmeno Plat IdOdd IdOdd Nazev KodBudovy Jmeno Plat IdOdd IdOdd Nazev KodBudovy Nakup Nakup Pepa dam Prodej Propagace B Pepa Prodej B dam Prodej B Karel Karel Propagace Fany Fany Prodej B Select Oso.*,, Odd.* From Oso Oso JOIN Odd Odd USING (IdOdd)
91 JOIN - klauzule spojování klauzule klauzule JOIN JOIN Select From Tab1 JOIN Tab2 podmínky spojování Where podmínky filtrování [výběru / / vylučování]
92 a zas něco caseovního
93 lgoritmizace dotazu Zakaznici Firma MaxUver lfa Beta sro Firma lfa Beta sro MaxUver Trida B D BMV BMV výši úvěru označte jeho třídou dle rozpětí Výše > Definice třídy úvěru Od Do Třída > B řešte řešte > <= C D pane učiteli, u to to nejde,, dyť dyťto to je je algoritmus to to se se bude muset naprogramovat ňákejma IF-ama v ňákym programovacim jazyku sakra, to to bude ale ale dřina d!!!!!!!! do do vánoc v je je co co dělatd 93
94 lgoritmizace dotazu Zakaznici Firma MaxUver lfa Beta sro Firma lfa Beta sro MaxUver Trida B D BMV BMV výši úvěru označte jeho třídou dle rozpětí Výše > Definice třídy úvěru Od Do Třída > B řešte řešte > <= C D umíte vybrat řádky s třídou t? -- --vyrobte je je!!!!!! Select Firma, MaxUver, '' Trida From Zakaznici Where MaxUver > ; Firma MaxUver Trida BMV
95 lgoritmizace dotazu Zakaznici Firma MaxUver lfa Beta sro Firma lfa Beta sro MaxUver Trida B D BMV BMV výši úvěru označte jeho třídou dle rozpětí Výše > Definice třídy úvěru Od Do Třída > B řešte řešte > <= C D umíte vybrat řádky s třídou t B? -- --vyrobte je je!!!!!! Select Firma, MaxUver, 'B' Trida From Zakaznici Where MaxUver > nd MaxUver <= ; Firma lfa MaxUver Trida B 95
96 lgoritmizace dotazu Zakaznici Firma MaxUver lfa Beta sro Firma lfa Beta sro MaxUver Trida B D BMV BMV výši úvěru označte jeho třídou dle rozpětí Výše > Definice třídy úvěru Od Do Třída > B řešte řešte > <= C D umíte vybrat řádky s třídou t D? -- --vyrobte je je!!!!!! Select Firma, MaxUver, 'D' Trida From Zakaznici Where MaxUver <= ; Firma MaxUver Trida Beta sro D 96
97 lgoritmizace dotazu Definice třídy úvěru Výše Od Do > > B > C <= D Třída Firma lfa Beta sro BMV MaxUver Trida B D Select Firma, MaxUver, '' Trida From Zakaznici Where MaxUver > ; Firma BMV MaxUver Trida Select Firma, MaxUver, 'B' Trida From Zakaznici Where MaxUver > nd MaxUver <= ; Firma lfa MaxUver Trida B Select Firma, MaxUver, 'C' Trida From Zakaznici Where MaxUver > nd MaxUver <= ; Firma MaxUver Trida Select Firma, MaxUver, 'D' Trida From Zakaznici Where MaxUver <= ; Firma Beta sro MaxUver Trida D 97
98 lgoritmizace dotazu Definice třídy úvěru Výše Od Do Třída > > B > C Firma lfa Beta sro BMV MaxUver Trida B D <= D Select Firma, MaxUver, '' Trida From Zakaznici Where MaxUver > UNION Select Firma, MaxUver, 'B' Trida From Zakaznici Where MaxUver > nd MaxUver <= UNION Select Firma, MaxUver, 'C' Trida From Zakaznici Where MaxUver > nd MaxUver <= UNION Select Firma, MaxUver, 'D' Trida From Zakaznici Where MaxUver <= ; Firma lfa Beta sro MaxUver Trida B D BMV
99 a radši zpět t k problému
100 lgoritmizace dotazu Zakaznici Firma MaxUver lfa Beta sro Firma lfa Beta sro MaxUver Trida B D BMV BMV výši úvěru označte jeho třídou dle rozpětí Výše > Definice třídy úvěru Od Do Třída > B řešte řešte > <= C D SQL SQL -- neprocedurální jazyk nelze několika n povely vytvářet algoritmus povely jsou jsou na na sobě [procesně] nezávislé SQL SQL mám mávšak v sobě bohatou algoritmickou funkcionalitu SQL SQL umožňuje uje zadat algoritmizaci dovnitř jednoho povelu 100
101 lgoritmizace dotazu Zakaznici Firma MaxUver lfa Beta sro Firma lfa Beta sro MaxUver Trida B D BMV BMV výši úvěru označte jeho třídou dle rozpětí IF IF Uver Uver >900 > Then Then ELSE ELSE IF IF Uver Uver >500 > Then Then ELSE ELSE IF IF Uver Uver >100 > Then Then ELSE ELSE ;...; Do Do While While End End While; While; IF řešte IF END řešte END IF IF Výše > > > <= Definice třídy úvěru Od Do Třída B C D SQL SQL -- neprocedurální jazyk nelze SQL několika n povely povel vytvářet.. ; povely jsou jsou na na sobě [procesně] nezávislé SQL SQL mám mávšak v sobě bohatou algoritmickou funkcionalitu SQL SQL umožňuje uje zadat algoritmizaci dovnitř jednoho povelu 101
102 Podmíněný ný operátor Case operátor CSE CSE [neboli [neboli podmíněný výraz] výraz] umožňuje provádět jednoduchá rozhodnutí na na úrovni úrovni VÝRZU struktura operátoru je je podobná konstrukci IF IF THEN THEN ELSE ELSE 102
103 Podmíněný ný operátor Case CSE CSE WHEN WHEN (a>b) (a>b) THEN THEN WHEN WHEN (a>c) (a>c) THEN THEN WHEN WHEN (a+b>c) (a+b>c) THEN THEN ELSE ELSE END END varianta varianta 1 CSE CSE aa awhen WHEN (2) (2) THEN THEN WHEN WHEN (3) (3) THEN THEN WHEN WHEN (88) (88) THEN THEN ELSE ELSE END END varianta varianta 2 CSE CSE WHEN WHEN (a= a=2) (a=2) THEN THEN END END WHEN WHEN (a= a=3) (a=3) THEN THEN WHEN WHEN (a= a=88 (a=88) 88) THEN THEN.... ELSE ELSE varianta varianta
104 Podmíněný ný operátor Case CSE CSE WHEN WHEN (Length (Length(Jmeno) (Jmeno) + Length(Prijmeni) Length(Prijmeni) = 10) 10) THEN THEN WHEN WHEN (Length (Length(Jmeno) (Jmeno) + Length(Prijmeni) Length(Prijmeni) = 11) 11) THEN THEN WHEN WHEN (Length (Length(Jmeno) (Jmeno) + Length(Prijmeni) Length(Prijmeni) = 12) 12) THEN THEN ELSE ELSE END END varianta varianta 1 1 CSE CSE Length(Jmeno) Length(Jmeno) + Length(Prijmeni) Length(Prijmeni) WHEN WHEN (10 (10) THEN THEN WHEN WHEN (11 (11) THEN THEN WHEN WHEN (12 (12) THEN THEN ELSE ELSE varianta END varianta 2 2 END 104
105 Podmíněný ný operátor Case - varianta 1 CSE WHEN podmínka THEN výsledný výraz NULL WHEN podmínka THEN výsledný výraz NULL WHEN podmínka THEN výsledný výraz NULL ELSE výsledný výraz NULL END 105
106 Podmíněný ný operátor Case - varianta 2 CSE výraz WHEN výrazhodnoty THEN výsledný výraz NULL WHEN výrazhodnoty THEN výsledný výraz NULL WHEN výrazhodnoty THEN výsledný výraz NULL ELSE výsledný výraz NULL END 106
107 Podmíněný ný operátor Case CSE WHEN podmínka THEN výsledný výraz NULL WHEN podmínka THEN výsledný výraz NULL WHEN podmínka THEN výsledný výraz NULL ELSE výsledný výraz END NULL varianta 1 varianta 1 CSE výraz WHEN výrazhodnoty THEN výsledný výraz NULL WHEN výrazhodnoty THEN výsledný výraz NULL WHEN výrazhodnoty THEN výsledný výraz NULL END ELSE výsledný výraz NULL varianta 2 varianta 2
108 Podmíněný ný operátor Case CSE je je operátor vrací vracískalární hodnotu komplikovaný algoritmus vracející hodnotu 108
109 Podmíněný ný operátor Case Zakaznici Firma MaxUver lfa Beta sro Firma lfa Beta sro MaxUver Trida B D BMV řešte řešte BMV SELECT Firma, MaxUver, a jako 3. sloupec si "vyrobíme" buď ''nebo'b'nebo cokoliv jiného podmíněných operátorem CSE dle hodnoty ve sloupci MaxUver FROM Zakaznici 109
110 Podmíněný ný operátor Case Zakaznici Firma MaxUver lfa Beta sro Firma lfa Beta sro MaxUver Trida B D BMV řešte řešte BMV SELECT Firma, MaxUver, CSE WHEN (MaxUver>900000) WHEN (MaxUver>500000) WHEN (MaxUver>100000) ELSE THEN '' THEN 'B' THEN 'C' 'D' END FROM Zakaznici 110
111 Podmíněný ný operátor Case Zakaznici Firma MaxUver lfa Beta sro BMV pane učiteliu to to nemáte dobře řešte řešte Firma lfa Beta sro BMV MaxUver Trida B D SELECT Firma, MaxUver, CSE WHEN (MaxUver>900000) THEN '' WHEN (MaxUver>500000) THEN 'B' WHEN (MaxUver>100000) THEN 'C' ELSE 'D' END FROM Zakaznici a cotak mmůžu u dobře nemít t copak??? 111
Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek
5 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Jazyk SQL, Spojení tabulek, agregační dotazy, jednoduché a složené
VíceDatabázové systémy Cvičení 5.3
Databázové systémy Cvičení 5.3 SQL jako jazyk pro manipulaci s daty SQL jako jazyk pro manipulaci s daty Aktualizace dat v SQL úprava záznamů v relacích (tabulkách) vložení záznamu INSERT INTO oprava záznamu
VíceKIV/ZIS cvičení 6. Tomáš Potužák
KIV/ZIS cvičení 6 Tomáš Potužák Pokračování SQL Klauzule GROUP BY a dotazy nad více tabulkami Slučování záznamů do skupin (1) Chceme zjistit informace obsažené ve více záznamech najednou Klauzule GROUP
VíceÚvod do databázových systémů
Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 5 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování K čemu se používají
VíceDatabázové systémy a SQL
Databázové systémy a SQL Lekce 2 Daniel Klimeš Autor, Název akce 1 Operátory a funkce +,- Sčítání, odečítání *,/ Násobení, dělení =, , >=,
VíceInformační systémy ve zdravotnictví. 10. cvičení
Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Informační systémy ve zdravotnictví 10. cvičení Ing. Petr Lukáš petr.lukas@nativa.cz Ostrava, 2014 Opakování K čemu
VíceGymnázium a Střední odborná škola, Rokycany, Mládežníků 1115
Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Číslo projektu: Číslo šablony: Název materiálu: Ročník: Identifikace materiálu: Jméno autora: Předmět: Tématický celek: Anotace: CZ.1.07/1.5.00/34.0410
VíceJaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR):
Mezi příkazy pro manipulaci s daty (DML) patří : 1. SELECT 2. ALTER 3. DELETE 4. REVOKE Jaké vlastnosti má identifikující relace: 1. Je relace, která se využívá pouze v případě modelovaní odvozených entit
VíceB0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux
B0M33BDT Technologie pro velká data Supercvičení SQL, Python, Linux Sergej Stamenov, Jan Hučín 18. 10. 2017 Osnova cvičení Linux SQL Python 2 SQL pro uživatele aneb co potřebuje znát a umět bigdatový uživatel:
VíceDatabáze SQL SELECT. David Hoksza http://siret.cz/hoksza
Databáze SQL SELECT David Hoksza http://siret.cz/hoksza Osnova Úvod do SQL Základní dotazování v SQL Cvičení základní dotazování v SQL Structured Query Language (SQL) SQL napodobuje jednoduché anglické
VíceÚvod do databázových systémů 3. cvičení
Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů 3. cvičení Ing. Petr Lukáš petr.lukas@nativa.cz Ostrava, 2012 Klauzule příkazu Klauzule
VíceJazyk 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
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 https://edux.fit.cvut.cz/courses/bi-dbs/ Michal Valenta (FIT
VíceMarian Kamenický. Syntea software group a.s. marian.kamenicky. kamenicky@syntea.cz. MFFUK Praha 2012/13
Datové a procesní modely Relační databáze Přednáška 5 Marian Kamenický Syntea software group a.s. marian.kamenicky kamenicky@syntea.cz MFFUK Praha 2012/13 1 Poddotazy OsoReg Jm Poh St Pepa m CZ Franz m
VíceOperátory ROLLUP a CUBE
Operátory ROLLUP a CUBE Dotazovací jazyky, 2009 Marek Polák Martin Chytil Osnova přednášky o Analýza dat o Agregační funkce o GROUP BY a jeho problémy o Speciální hodnotový typ ALL o Operátor CUBE o Operátor
VíceGymnázium a Střední odborná škola, Rokycany, Mládežníků 1115
Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Číslo projektu: Číslo šablony: Název materiálu: Ročník: Identifikace materiálu: Jméno autora: Předmět: Tématický celek: Anotace: CZ.1.07/1.5.00/34.0410
VíceKIV/ZIS - SELECT, opakování
KIV/ZIS - SELECT, opakování soubor 4_databaze.accdb (lze použít ten z minula) http://home.zcu.cz/~krauz/zis/4_databaze.accdb minule: SELECT FROM WHERE ORDER BY SELECT sloupce jaké sloupce chceme vybrat
VíceDatabázové systémy. Datová integrita + základy relační algebry. 4.přednáška
Databázové systémy Datová integrita + základy relační algebry 4.přednáška Datová integrita Datová integrita = popisuje pravidla, pomocí nichž hotový db. systém zajistí, že skutečná fyzická data v něm uložená
VíceÚvod do databázových systémů
Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky Database Research Group Úvod do databázových systémů Cvičení 3 Ing. Petr Lukáš petr.lukas@vsb.cz
VíceCo bude výsledkem mého SELECTu? RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT
Co bude výsledkem mého SELECTu? RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT david@wug.cz @gesvindr Logické zpracování dotazu Jazyk T-SQL je deklarativní Popisujeme,
VíceInnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou
MySQL Typy tabulek Storage Engines MyISAM defaultní, neumí transakce, umí fulltext InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) MEMORY (HEAP) v paměti; neumí transakce ARCHIVE velké množství
VíceÚvod do databázových systémů
Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 3 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování 4 fáze vytváření
VíceObsah. SQL konstrukce select join Rekurze (rekurzivní with) Analytické funkce, group by Pivoting
Cvičení 5 SQL 1 Obsah SQL konstrukce select join Rekurze (rekurzivní with) Analytické funkce, group by Pivoting 2 2 Oracle Model 3 3 Načtení modelu z katalogu Napojení: IP adresa: 193.85.191.165 Port:
Více6. blok část C Množinové operátory
6. blok část C Množinové operátory Studijní cíl Tento blok je věnován problematice množinových operátorů a práce s množinovými operátory v jazyce SQL. Čtenáři se seznámí s operátory, UNION, a INTERSECT.
VíceInformační systémy ve zdravotnictví. 8. cvičení
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
VíceDatabázové a informační systémy
Databázové a informační systémy 1. Teorie normálních forem Pojem normálních forem se používá ve spojitosti s dobře navrženými tabulkami. Správně vytvořené tabulky splňují 4 základní normální formy, které
VíceDatabázové systémy I
2015 Databázové systémy I PROJEKT 2 ČÁST MIROSLAV POKORNÝ Stránka 0 z 21 Zadání Implementujte datový model vytvořený v první části projektu do relační databáze a vytvořte pohledy a uloženou proceduru dle
VíceInformační systémy ve zdravotnictví. 6. cvičení
Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Informační systémy ve zdravotnictví 6. cvičení Ing. Petr Lukáš petr.lukas@nativa.cz Ostrava, 2014 Opakování Relace
VíceInformační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL
4 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Jazyk SQL, datové typy, klauzule SELECT, WHERE, a ORDER BY. Doporučená
VíceÚvod do databázových systémů
Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 4 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování Klauzule příkazu
VíceKurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.
1 Kurz Databáze Zpracování dat Doc. Ing. Radim Farana, CSc. Obsah Druhy dotazů, tvorba dotazu, prostředí QBE (Query by Example). Realizace základních relačních operací selekce, projekce a spojení. Agregace
VíceU koly na procvic ení jazyka T-SQL
U koly na procvic ení jazyka T-SQL Lehké Úkol 1 Vytvořte seznam všech zákazníků, seřazený vzestupně podle jména a druhotně podle příjmení. Vraťte všechny sloupce tabulky. SELECT * ORDER BY FirstName, LastName
VíceDatabázové systémy Cvičení 5
Databázové systémy Cvičení 5 Dotazy v jazyce SQL SQL jako jazyk pro manipulaci s daty Aktualizace dat v SQL úprava záznamů v relacích (tabulkách) vložení záznamu INSERT INTO oprava záznamu UPDATE vymazání
VíceDatabázové systémy. Cvičení 6: SQL
Databázové systémy Cvičení 6: SQL Co je SQL? SQL = Structured Query Language SQL je standardním (ANSI, ISO) textovým počítačovým jazykem SQL umožňuje jednoduchým způsobem přistupovat k datům v databázi
VícePG 9.5 novinky ve vývoji aplikací
PG 9.5 novinky ve vývoji aplikací P2D2 2016 Antonín Houska 18. února 2016 Část I GROUPING SETS, ROLLUP, CUBE Agregace Seskupení řádků tabulky (joinu) do podmnožin podle určitého kĺıče. Za každou podmnožinu
VíceJazyk 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
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 https://edux.fit.cvut.cz/courses/bi-dbs/ M.Valenta (FIT ČVUT) Jazyk
VíceXMW4 / IW4 Pokročilé SELECT dotazy. Štefan Pataky
XMW4 / IW4 Pokročilé SELECT dotazy Štefan Pataky TOP, OFFSET-FETCH Konverze datových typů Logické funkce Práce s řetězci Poddotazy a množinové dotazy SQL Windowing Agenda TOP TOP omezení počtu vrácených
VíceÚvod do databází. Modelování v řízení. Ing. Petr Kalčev
Úvod do databází Modelování v řízení Ing. Petr Kalčev Co je databáze? Množina záznamů a souborů, které jsou organizovány za určitým účelem. Jaké má mít přínosy? Rychlost Spolehlivost Přesnost Bezpečnost
Více8.2 Používání a tvorba databází
8.2 Používání a tvorba databází Slide 1 8.2.1 Základní pojmy z oblasti relačních databází Slide 2 Databáze ~ Evidence lidí peněz věcí... výběry, výpisy, početní úkony Slide 3 Pojmy tabulka, pole, záznam
VíceDistanční opora předmětu: Databázové systémy Tématický blok č. 1: Dotazovací jazyk SQL Autor: RNDr. Jan Lánský, Ph.D.
Distanční opora předmětu: Databázové systémy Tématický blok č. 1: Dotazovací jazyk SQL Autor: RNDr. Jan Lánský, Ph.D. Obsah kapitoly 1 Instalace Microsoft SQL Serveru 2 Dotazovací jazyk SQL 3 Příkaz SELECT
Více2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.
Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus
VíceKapitola 4: SQL. Základní struktura
- 4.1 - Kapitola 4: SQL Základní struktura Množinové operace Souhrnné funkce Nulové hodnoty Vnořené poddotazy (Nested sub-queries) Odvozené relace Pohledy Modifikace databáze Spojené relace Jazyk definice
VíceDotazovací jazyky I. Datová krychle. Soběslav Benda
Dotazovací jazyky I Datová krychle Soběslav Benda Obsah Úvod do problematiky Varianty přístupu uživatelů ke zdrojům dat OLTP vs. OLAP Datová analýza Motivace Vytvoření křížové tabulky Datová krychle Teorie
VíceDatabáze I. Přednáška 2
Databáze I Přednáška 2 Transformace E-R modelu do relačního modelu (speciality) zaměříme se na dva případy z předmětu Analýza a modelování dat reprezentace entitního podtypu hierarchie ISA reprezentace
VíceAnalýza a modelování dat 3. přednáška. Helena Palovská
Analýza a modelování dat 3. přednáška Helena Palovská Historie databázových modelů Relační model dat Codd, E.F. (1970). "A Relational Model of Data for Large Shared Data Banks". Communications of the ACM
VíceUložené procedury Úvod ulehčit správu zabezpečení rychleji
Uložené procedury Úvod Uložená procedura (rutina) je sada příkazů SQL, které jsou uložené na databázovém serveru a vykonává se tak, že je zavolána prostřednictvím dotazu názvem, který jim byl přiřazen
VíceÚvod do SQL v systému SAS Martin Branda
Úvod do SQL v systému SAS Martin Branda Tabulka vp_klient: klient_id jmeno prijmeni datnar adresa mesto pohlavi 1 Jana Nováková 01Mar1952 Hradecká 101 Praha Z 2 Josef Novotný 22Jan1980 Zámecká 25 Brno
VíceSQL SQL-SELECT. Informační a znalostní systémy. Informační a znalostní systémy SQL- SELECT
-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íce6. blok část B Vnořené dotazy
6. blok část B Vnořené dotazy Studijní cíl Tento blok je věnován práci s vnořenými dotazy. Popisuje rozdíl mezi korelovanými a nekorelovanými vnořenými dotazy a zobrazuje jejich použití. Doba nutná k nastudování
VíceMechanismus obarvení řádků browse
Mechanismus obarvení řádků browse Zpracoval: Roman Rajnoha U Mlýna 2305/22, 141 Praha 4 Záběhlice Dne: 27.6.2008 tel.: +420 585 203 370-2 e-mail: info@eso9.cz Revize: Tomáš Urych www.eso9.cz Dne: 25.6.2018
VícePL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.
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 o proceduralitu od společnosti ORACLE je jazyk
VíceRNDr. Jakub Lokoč, Ph.D. RNDr. Michal Kopecký, Ph.D. Katedra softwarového inženýrství Matematicko-Fyzikální fakulta Univerzita Karlova v Praze
RNDr. Jakub Lokoč, Ph.D. RNDr. Michal Kopecký, Ph.D. Katedra softwarového inženýrství Matematicko-Fyzikální fakulta Univerzita Karlova v Praze 1 Vytvořte model půjčovny dopravních prostředků. Zákazník
VíceDatabázové systémy BIK-DBS
Databázové systémy BIK-DBS Ing. Ivan Halaška katedra softwarového inženýrství ČVUT FIT Thákurova 9, m.č. T9:311 ivan.halaska@fit.cvut.cz Kapitola Relační model dat 1 3. Relační model dat (Codd 1970) Formální
VíceDatabázové systémy. Dotazovací jazyk SQL - II
Databázové systémy Dotazovací jazyk SQL - II SELECT I SELECT FROM WHERE GROUP BY HAVING
VíceKIV/ZIS cvičení 5. Tomáš Potužák
KIV/ZIS cvičení 5 Tomáš Potužák Úvod do SQL (1) SQL (Structured Query Language) je standardizovaný strukturovaný dotazovací jazyk pro práci s databází Veškeré operace v databázi se dají provádět pomocí
VíceŘešené příklady STUDENT(RČ, JMÉNO, SPECIALIZACE) PŘEDMĚT(KÓD, NÁZEV, SYLLABUS, GARANT) ZÁPIS(RČ, KÓD, SEMESTR, ZNÁMKA)
Řešené příklady Použijeme především příklady z kapitoly 5. Mějme databázi studentů a předmětů, na které se zapisují a které absolvují. Databáze je realizována třemi relacemi se schematy (pozn. primární
VíceDatabáze 2011/2012 SQL SELECT II. RNDr.David Hoksza, Ph.D.
Databáze 2011/2012 SQL SELECT II. RNDr.David Hksza, Ph.D. http://siret.cz/hksza Osnva Pkrčilé SQL IN, EXIST, ANY, ALL GROUP BY, HAVING CASE, COALESCE Mnžinvé perace Cvičení pkrčilé dtazvání v SQL Klauzule
VíceInstalace. 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.
Instalace Produkt se neinstaluje. Stačí soubor uložit na libovolné místo na Vašem počítací (klikněte pravým tlačítkem a dejte 'uložit cíl jako ), pak jen spustit. Požadavky na software Produkt je odzkoušen
VíceKIV/ZIS - SQL dotazy. stáhnout soubor ZIS- 04_TestovaciDatabaze250312.accdb. SQL dotazy. budeme probírat pouze SELECT
KIV/ZIS - SQL dotazy stáhnout soubor ZIS- 04_TestovaciDatabaze250312.accdb SQL dotazy textové příkazy pro získání nebo manipulaci s daty SELECT - výběr/výpis INSERT - vložení UPDATE - úprava DELETE - smazání
VíceUniverzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.
Základy programování 4 - C# - 9. cvičení Radek Janoštík Univerzita Palackého v Olomouci 10.4.2017 Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.2017 1 / 13 Reakce na
VíceGymnázium a Střední odborná škola, Rokycany, Mládežníků 1115
Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Číslo projektu: Číslo šablony: Název materiálu: Ročník: Identifikace materiálu: Jméno autora: Předmět: Tématický celek: CZ.1.07/1.5.00/34.0410
VíceDatabázové systémy I
Databázové systémy I Přednáška č. 8 Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky jiri.zechmeister@upce.cz Skupinové a souhrnné dotazy opakování Obsah Pohledy syntaxe použití význam Vnořené
VíceDJ2 rekurze v SQL. slajdy k přednášce NDBI001. Jaroslav Pokorný
DJ2 rekurze v SQL slajdy k přednášce NDBI001 Jaroslav Pokorný 1 Obsah 1. Úvod 2. Tvorba rekurzívních dotazů 3. Počítaní v rekurzi 4. Rekurzívní vyhledávání 5. Logické hierarchie 6. Zastavení rekurze 7.
VíceDUM 12 téma: Příkazy pro tvorbu databáze
DUM 12 téma: Příkazy pro tvorbu databáze ze sady: 3 tematický okruh sady: III. Databáze ze šablony: 7 Kancelářský software určeno pro: 4. ročník vzdělávací obor: 18-20-M/01 Informační technologie vzdělávací
Více8. Zpracování dotazu. J. Zendulka: Databázové systémy 8 Zpracování dotazu 1
8. Zpracování dotazu 8.1. Podstata optimalizace zpracování dotazu... 2 8.2. Postup optimalizace zpracování dotazu... 3 8.2.1. Implementace spojení... 5 8.2.2. Využití statistik databáze k odhadu ceny dotazu...11
VíceZápadočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června 2007. krovacek@students.zcu.cz
Databáze čajových sáčků Martina Málková Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky Databázové systémy 2 9. června 2007 krovacek@students.zcu.cz 1 1 Datová analýza V původním
Více- sloupcové integritní omezení
CREATE TABLE - CREATE TABLE = definice tabulek a jejich IO - ALTER TABLE = změna definice schématu - aktualizace - INSERT INTO = vkládání - UPDATE = modifikace - DELETE = mazání CREATE TABLE Základní konstrukce
VíceSQL tříhodnotová logika
SQL tříhodnotová logika Jmeno Prijmeni Student Jaroslav Novák true Josef Novotný false Jiří Brabenec SELECT * FROM OSOBA WHERE Student!= true Jaký bude výsledek? SQL tříhodnotová logika Jmeno Prijmeni
VíceDatabázové systémy Tomáš Skopal
Databázové systémy Tomáš Skopal - SQL * úvod * dotazování SELECT Osnova přednášky úvod do SQL dotazování v SQL příkaz SELECT třídění množinové operace 2 SQL 3 structured query language standardní jazyk
VíceŘÍDÍCÍ STRUKTURY - PODMÍNKY
ŘÍDÍCÍ STRUKTURY - PODMÍNKY Pokusíme se rozvětvit sktipt v Bashi ŘÍDÍCÍ STRUKTURY - PODMÍNKY V této lekci budeme probírat podmínkové, tj., které nám pomohou rozvětvit skript a provádět určité pouze při
Více10 Algoritmizace Příklad 2 Word 2007/ VBA
TÉMA: Zápis algoritmu, cyklus se známým počtem opakování Prostředí aplikace Wordu je možné doplnit v rámci využití maker o automatizaci složitějších posloupností příkazů. Vedle záznamu makra je možno makra
Více4. blok část A Logické operátory
4. blok část A Logické operátory Studijní cíl Tento blok je věnován představení logických operátorů AND, OR, NOT v jazyce SQL a práce s nimi. Doba nutná k nastudování 1-2 hodiny Průvodce studiem Při studiu
VíceSII - Informatika. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá:
SII - Informatika Způsob vyhodnocení: Při vyhodnocení budou za nesprávné odpovědi strhnuty body. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá: a) sekundární klíč b)
VíceGymnázium a Střední odborná škola, Rokycany, Mládežníků 1115
Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Číslo projektu: Číslo šablony: Název materiálu: Ročník: Identifikace materiálu: Jméno autora: Předmět: Tématický celek: Anotace: CZ.1.07/1.5.00/34.0410
VíceAnalýza a modelování dat. Přednáška 9
Analýza a modelování dat Přednáška 9 Další dotazování nad kostkou Rozšíření SQL99 rozšíření SQL99 (minulá přednáška): seskupovací operátory za GROUP BY CUBE statistiky dle řezů ROLLUP statistiky dle rolování
VíceDotazování v relačním modelu a SQL
Databázové systémy Dotazování v relačním modelu a SQL Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci Petr Krajča (UP) KMI/YDATA: Přednáška II. 14. říjen, 2016 1 / 35 Opakování Relační
VíceRelační model dat (Codd 1970)
Relační model dat (Codd 1970) Odkud vychází, co přináší? Formální abstrakce nejjednodušších souborů. Relační kalkul a relační algebra (dotazovací prostředky). Metodika pro posuzování kvality relačního
VíceRNDr. Michal Kopecký, Ph.D. Department of Software Engineering, Faculty of Mathematics and Physics, Charles University in Prague
seminář: Administrace Oracle (NDBI013) LS2017/18 RNDr. Michal Kopecký, Ph.D. Department of Software Engineering, Faculty of Mathematics and Physics, Charles University in Prague Rozšíření bezpečnostní
VíceJ. Zendulka: Databázové systémy 4 Relační model dat 1
4. Relační model dat 4.1. Relační struktura dat... 3 4.2. Integritní pravidla v relačním modelu... 9 4.2.1. Primární klíč... 9 4.2.2. Cizí klíč... 11 4.2.3. Relační schéma databáze... 13 4.3. Relační algebra...
VíceDolování asociačních pravidel
Dolování asociačních pravidel Miloš Trávníček UIFS FIT VUT v Brně Obsah přednášky 1. Proces získávání znalostí 2. Asociační pravidla 3. Dolování asociačních pravidel 4. Algoritmy pro dolování asociačních
VíceVzorové příklady SQL. Tabulka: Kniha CREATE TABLE kniha (id INTEGER, název VARCHAR(50), PRIMARY KEY (id))
Vzorové příklady SQL Tabulka: Kniha CREATE TABLE kniha název VARCHAR(50, PRIMARY KEY (id Tabulka: Autoři CREATE TABLE autoři jméno VARCHAR(10, příjmení VARCHAR(20, titul VARCHAR(7, prostřední VARCHAR(10,
Více6. SQL složitější dotazy, QBE
6. SQL složitější dotazy, QBE Příklady : Veškeré příklady budou dotazy nad databází KONTAKTY nebo KNIHOVNA nebo FIRMA Databáze KONTAKTY OSOBA (Id_osoba, Příjmení, Jméno, Narození, Město, Ulice, PSČ) EMAIL
VíceFakulta elektrotechniky a informatiky Databázové systémy 2. Leden 2010 souhrn. Červené dobře (nejspíš), modré možná
ZKOUŠKOVÉ TESTY Leden 2010 souhrn Červené dobře (nejspíš), modré možná Pomocí kterého databázového objektu je implementován ATRIBUT z konceptuálního modelu? sloupec referenční omezení index tabulka Omezení
VíceVirtual private database. Antonín Steinhauser
Virtual private database Antonín Steinhauser Základní princip VPD Rozšíření bezpečnostní politiky Oracle o omezení na úrovni jednotlivých řádků a sloupců Pro uživatele, kterého se bezpečnostní politika
VíceGymnázium a Střední odborná škola, Rokycany, Mládežníků 1115
Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Číslo projektu: Číslo šablony: Název materiálu: Ročník: Identifikace materiálu: Jméno autora: Předmět: Tématický celek: Anotace: CZ.1.07/1.5.00/34.0410
VíceAnalýza a modelování dat. Přednáška 8
Analýza a modelování dat Přednáška 8 OLAP, datová kostka, dotazování nad kostkou Motivace většina DB relační zaznamenání vztahů pomocí logicky provázaných tabulek jakou mají velmi často vztahy povahu vztah
VíceJazyk S Q L základy, příkazy pro práci s daty
Jazyk S Q L základy, příkazy pro práci s daty Základní pojmy jazyk množina řetězců nad abecedou gramatika popisuje syntaxi výrazů jazyka pravidla, jak vytvářet platné řetězce jazyka. dotazovací jazyk je
VíceVyužití OOP v praxi -- Knihovna PHP -- Interval.cz
Page 1 of 6 Knihovna PHP Využití OOP v praxi Po dlouhé teorii přichází na řadu praxe. V následujícím textu si vysvětlíme možnosti přístupu k databázi pomocí různých vzorů objektově orientovaného programování
VíceJ. Zendulka: Databázové systémy 8 Zpracování dotazu Podstata optimalizace zpracování dotazu
8. Zpracování dotazu 8.1. Podstata optimalizace zpracování dotazu... 2 8.2. Postup optimalizace zpracování dotazu... 3 8.2.1. Implementace spojení... 5 8.2.2. Využití statistik databáze k odhadu ceny dotazu...11
VíceSQL. strukturovaný dotazovací jazyk. Structured Query Language (SQL)
SQL strukturovaný dotazovací jazyk Structured Query Language (SQL) SQL - historie 1974-75 - IBM - 1.prototyp - SEQUEL od 1979 - do praxe - ORACLE (1979) IBM - SQL/DS (1981), DB/2 (1983) postupně přijímán
VíceDatabázové systémy a SQL
Databázové systémy a SQL Lekce 2 Daniel Klimeš Autor, Název akce 1 CREATE TABLE Vytvoření tabulky (ORACLE) DDL příkazem v grafickém prostředí CREATE TABLE jmeno ( text VARCHAR2(200), cislo NUMBER(9,1),
VíceNásobení pomocí sčítání
Neznalost zákonů neomlouvá Násobení pomocí sčítání Zadání problému: Vymyslete algoritmus, jak násobit dvě čísla, když operaci násobení neznáme. Upřesnění zadání: Známe čísla, známe operaci sčítání, odčítání.
VíceSQL - úvod. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 6
SQL - úvod Ing. Michal Valenta PhD. Katedra softwarového inºenýrství Fakulta informa ních technologií ƒeské vysoké u ení technické v Praze c Michal Valenta, 2010 Databázové systémy BI-DBS ZS 2010/11, P
VíceKritéria hodnocení praktické maturitní zkoušky z databázových systémů
Kritéria hodnocení praktické maturitní zkoušky z databázových systémů Otázka č. 1 Datový model 1. Správně navržený ERD model dle zadání max. 40 bodů teoretické znalosti konceptuálního modelování správné
VíceÚvod do lineární algebry
Úvod do lineární algebry 1 Aritmetické vektory Definice 11 Mějme n N a utvořme kartézský součin R n R R R Každou uspořádanou n tici x 1 x 2 x, x n budeme nazývat n rozměrným aritmetickým vektorem Prvky
VíceZákladní přehled SQL příkazů
Základní přehled SQL příkazů SELECT Základní použití Příkaz SELECT slouží k získání dat z tabulky nebo pohledu v požadované podobě. Získání všech řádků a sloupců z tabulky SELECT * FROM Person.Contact
VíceDatové a procesní modely. A zpět k PEPOvi
A zpět k PEPOvi Pepa PEPRO Komponenty Advice to Ministers Policy & Planning Capability Management Advice Availability Advice Technology Awareness Technology Capability in Supplies Innovative Solutions
VíceProgram a životní cyklus programu
Program a životní cyklus programu Program algoritmus zapsaný formálně, srozumitelně pro počítač program se skládá z elementárních kroků Elementární kroky mohou být: instrukce operačního kódu počítače příkazy
VíceDatabázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal
Databázové systémy - SQL * definice dat * aktualizace * pohledy Tomáš Skopal Osnova přednášky definice dat definice (schémat) tabulek a integritních omezení CREATE TABLE změna definice schématu ALTER TABLE
VíceNový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.
Průběžná klasifikace Nová verze modulu Klasifikace žáků přináší novinky především v práci s průběžnou klasifikací. Pro zadání průběžné klasifikace ve třídě doposud existovaly 3 funkce Průběžná klasifikace,
VíceAlgoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44
Algoritmizace a programování Ak. rok 2012/2013 vbp 1. ze 44 Vladimír Beneš Petrovický K101 katedra matematiky, statistiky a informačních technologií vedoucí katedry E-mail: vbenes@bivs.cz Telefon: 251
Více