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

Podobné dokumenty
Gymná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

Gymná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

Gymná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

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

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

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

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

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

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

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

KIV/ZIS - SELECT, opakování

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

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

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

MS Access Dotazy SQL

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

Databáze SQL SELECT. David Hoksza

Databázové systémy a SQL

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

12. blok Pokročilé konstrukce SQL dotazů - část II

DJ2 rekurze v SQL. slajdy k přednášce NDBI001. Jaroslav Pokorný

1 Tabulky Příklad 7 Access 2010

Primární klíč, cizí klíč, referenční integrita, pravidla normalizace, relace

1.13 ACCESS popis programu

Microsoft Office. Excel vyhledávací funkce

M4 PDF rozšíření. Modul pro PrestaShop.

Databázové systémy I

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou

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

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

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

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

Databáze v Excelu EU peníze středním školám Didaktický učební materiál

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Operátory ROLLUP a CUBE

KONTINGENČNÍ TABULKY CO TO JE

DUM 12 téma: Příkazy pro tvorbu databáze

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

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MS Access propojení relací s formuláři a sestavami Ing.

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

SQL - úvod. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 6

Gymná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

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

GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY CVIČENÍ 4

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

Relativní a absolutní adresa buňky, pojmenování buňky/rozsahu

Datové modelování II

Syntea software group a.s. marian.kamenicky. MFFUK Praha

INFORMATIKA MS WORD, HROMADNÁ KORESPONDENCE

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

Distanční opora předmětu: Databázové systémy Tématický blok č. 1: Dotazovací jazyk SQL Autor: RNDr. Jan Lánský, Ph.D.

téma: Parametrické a křížové dotazy v MS Access

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

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

ANOTACE nově vytvořených/inovovaných materiálů

Microsoft. Access. Výběrové dotazy. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie

Tabulkový procesor. Základní rysy

Databázový systém označuje soubor programových prostředků, které umožňují přístup k datům uloženým v databázi.

UŽIVATELSKÁ PŘÍRUČKA K INTERNETOVÉ VERZI REGISTRU SČÍTACÍCH OBVODŮ A BUDOV (irso 4.x) VERZE 1.0

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

Databáze I. Přednáška 2

Střední odborná škola stavební Karlovy Vary Sabinovo náměstí 16, Karlovy Vary Autor: Ing. Hana Šmídová Název materiálu:

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

ANOTACE vytvořených/inovovaných materiálů

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MS Access složitější konverze dat Ing. Kotásek Jaroslav

Pracovní list VY_32_INOVACE_33_17 Databáze Databáze Databáze Samostatná práce tabulky Ing. Petr Vilímek

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

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

Osnova je orientační pro FIT, u FEKTu se dá předpokládat, že budou zohledněny předchozí znalosti studentů, kde většina s databází nikdy přímo

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MS Access formuláře a sestavy - vytváření Ing. Kotásek Jaroslav

Databázové systémy Tomáš Skopal

Instalace. 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.

U koly na procvic ení jazyka T-SQL

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MS Access generování složitějších sestav Ing. Kotásek Jaroslav

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

Střední průmyslová škola Zlín

Sada 2 - MS Office, Excel

Multi-dimensional expressions

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Transkript:

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/2 - inovace směřující k rozvoji odborných kompetencí Pracovní listy Databáze 3. ročník (IT) BEL_52_DAT_PL9 Miloslav Bělský Databáze Výběrový dotaz Obsahem tohoto pracovního listu je spojování tabulek pomocí klauzule JOIN. Datum: 12. 11. 2013 9-1

Databáze Pracovní list č. 9 Spojování tabulek Cíl Naučit se vytvářet dotazy nad více tabulkami a získávat tak komplexní informace z databáze. Spojovat tabulky s ohledem na požadovaný výsledek. Výklad Proč spojujeme tabulky Chceme-li získat ucelenou informaci z databáze, často to znamená získat data z několika tabulek a spojit je dohromady. V každé tabulce ukládáme totiž informace pouze o jedné věci. Např: V tabulce Zákazníci máme uložené osobní údaje o jednotlivých zákaznících, v tabulce Objednávky ukládáme objednávky každého zákazníka. Pokud budeme chtít získat všechny objednávky konkrétního zákazníka, musíme spojit správná data z obou tabulek. Tabulky jsou logicky pospojovány pomocí tzv. cizích klíčů, které ukazují, se kterým řádkem cílové tabulky je daný řádek zdrojové tabulky spojen. Rozeznáváme dva typy spojení tabulek: INNER JOIN pracuje pouze s řádky, které ve spojovacím sloupci nemají NULL. OUTER JOIN pracuje se všemi řádky, bez ohledu na hodnoty ve spojovacím sloupci. Tabulkové aliasy a úplné názvy sloupců Pro zjednodušení a přehlednost dotazů při spojování tabulek je dobré využívat tzv. tabulkové aliasy. Ty můžeme definovat v části FROM podobně jako aliasy sloupců bez klíčového slova AS. Např....FROM zamestnanci zam, oddeleni o... Protože se v části SELECT budou vyskytovat sloupce z několika tabulek a může dojít ke shodě jména, je potřeba sloupce pojmenovat úplným názvem: tabulka.sloupec: např. zamestnanci.plat nebo s využitím tabulkových aliasů: z.plat, o.nazev atd. 9-2

Syntaxe a typy spojení Na základě struktury a pojmenování spojovacího sloupce v tabulkách můžeme použít následující syntaxi: CROSS JOIN je spojení tabulek, které neposkytuje smysluplné informace. Výsledkem je kombinace všech řádků první tabulky se všemi řádky druhé tabulky, resp. třetí, čtvrté, atd. Syntax: SELECT seznam_sloupců FROM tabulka1, tabulka2,... Pokud bude tabulka1 obsahovat 10 řádků a tabulka2 5 řádků, výsledný dotaz vrátí 5x10=50 řádků (kombinace všech řádků tabulky1 se všemi řádky tabulky2). NATURAL JOIN Toto spojení můžeme použít, jestliže tabulky obsahují právě jeden spojovací sloupec, který je v obou tabulkách stejně pojmenovaný a který je stejného datového typu, můžeme použít. FROM t1 NATURAL JOIN t2 Tento dotaz připojí ke každému řádku jedné tabulky správný řádek druhé tabulky podle hodnoty ve spojovacím sloupci. JOIN USING Pokud je ve spojovaných tabulkách více stejně pojmenovaných sloupců, nelze použít NATURAL JOIN. Můžeme ale specifikovat spojovací sloupec užitím klauzule USING. FROM t1 JOIN t2 USING (spojovací_sl); JOIN ON Není-li spojovací sloupec pojmenován shodně v obou tabulkách, musíme využít kompletní syntaxi klauzule JOIN ON a zapsat spojovací podmínku. FROM tabulka1 t1 JOIN tabulka2 t2 ON (t1.sloupec = t2.sloupec); Tento dotaz provede spojení tabulek a přiřadí k sobě příslušné řádky podle spojovací podmínky. SELF JOIN je zvláštním případem spojení, kde spojujeme tabulku samu se sebou. SELF JOIN přichází v úvahu, pokud je v tabulce např. definován rekurzivní vztah. To je častý případ 9-3

tabulek, které uchovávají informace o zaměstnancích, a rekurzivním vztahem určujeme nadřízené a podřízené. V tomto případě je naprosto nutné použít tabulkové aliasy, aby se od sebe odlišily jednotlivé kopie tabulky. FROM tabulka1 t1 JOIN tabulka2 t2 ON (t1.sloupec = t2.sloupec); Jak vidno, syntaxe je jinak naprosto stejná jako u klasického spojení. OUTER JOIN Všechny doposud zmíněné případy byly varianty tzv. INNER JOINů. Pokud neuvedete slovo OUTER, vždy se jedná o INNER JOIN. OUTER JOIN může být LEFT, RIGHT nebo FULL. Vždy musíme uvádět, který typ chceme použít. Jak už bylo uvedeno, OUTER JOIN zpracuje i řádky tabulek, které nemají hodnotu ve spojovacím sloupci. LEFT OUTER JOIN ve výsledku uvidíme všechny řádky tabulky, která byla uvedena nalevo od klauzule JOIN. RIGHT OUTER JOIN ve výsledku uvidíme všechny řádky tabulky, která byla uvedena napravo od klauzule JOIN. FULL OUTER JOIN ve výsledku budou všechny řádky obou tabulek ve spojení. FROM tabulka t1 (LEFT RIGHT FULL) OUTER JOIN tabulka t2 ON (t1.sloupec = t2.sloupec) Poznámky na závěr Lze spojovat dvě a více tabulek. Syntaxe se pouze rozšíří o další klauzuli JOIN. FROM tabulka1 t1 JOIN tabulka2 t2 ON (t1.sloupec = t2. sloupec) JOIN tabulka3 t3 ON (t2.sloupec = t3.sloupec) Používejte tabulkové aliasy, dotazy se významně zkrátí a zpřehlední. Dobře si prohlédněte tabulky a ujistěte se, který sloupec propojuje tabulky. A jestli tím získáte hodnoty, které potřebujete. 9-4

Příklady k procvičení Vytvářejte dotazy podle následujícího zadání. Příklady označené jsou velmi obtížné. Pod každým úkolem je prostor na poznámky: 1. Ověřte si libovolným dotazem, jaký výsledek získáte CROSS JOINem. 2. Vypište všechny zaměstnance a název jejich pozice. Výsledek seřaďte podle názvu pozice a poté podle příjmení (EMPLOYEES, JOBS). 3. Vypište příjmení zaměstnanců a název oddělení, ve kterém pracují. Chceme vidět zaměstnance bez přiděleného oddělení a oddělení bez přidělených zaměstnanců. 4. Vypište jméno, příjmení, datum nástupu a název oddělení zaměstnanců, kteří nastoupili po 1.1.1999 (EMOLOYEES, DEPARTMENTS) 5. Vypište zaměstnance z oddělení IT a jména jejich nadřízeného pracovníka (EMPLOYEES). Chceme vidět i zaměstnance, kteří nemají nadřízené. 6. Vypište adresu a město z tabulky LOCATIONS. U každého záznamu vypište název příslušné země a regionu. (LOCATIONS, REGIONS, COUNTRIES) 7. Vypište záznamy z tabulky D_EVENTS. Každý odkaz do jiné tabulky nahraďte názvem nebo jménem z příslušné tabulky. 8. Vypište jména a adresy všech zaměstnanců. U každého zaměstnance vypište také jméno oddělení, jméno nadřízeného a název pozice, na které pracuje (EMPLOYEES, DEPARTMENTS, JOBS) 9. Vypište seznam všech skladeb, které budou hrány na události číslo 100. Vypište název skladby, adresu místa konání a komentář. (D_PLAY_LIST_ITEM, D_SONGS, D_EVENTS) 10. Vypište jména, příjmení a platy zaměstnanců. U každého vypište, do jaké skupiny podle platu patří. Seřaďte výsledky podle označení skupiny, poté podle výše platu sestupně a poté podle příjmení (EMPLOYEES, JOB_GRADES) 9-5