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

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

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

KIV/ZIS - SELECT, opakování

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

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

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

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

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

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

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

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

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

Zápisování dat do databáze

Databáze SQL SELECT. David Hoksza

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

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

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

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

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav

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

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

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

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

Databázové systémy a SQL

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

KIV/ZIS - primární klíč

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

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

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

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 I

KIV/ZIS - primární klíč

MS Access Dotazy SQL

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

Jazyk SQL databáze SQLite. připravil ing. petr polách

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

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

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

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

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

Databázové systémy a SQL

8.2 Používání a tvorba databází

Databáze 2011/2012 SQL DDL (CREATE/ALTER/DROP TABLE), DML (INSERT/UPDATE/DELETE) RNDr.David Hoksza, Ph.D.

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.

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 a SQL

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

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

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

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

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Operátory ROLLUP a CUBE

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

Zpracování informací

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

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

Internetová filmová databáze IFDB

5. POČÍTAČOVÉ CVIČENÍ

KIV/ZIS - semestrální práce

Vkládání, aktualizace, mazání

Databázové systémy I

Databázové systémy, MS Access. Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1130_Databázové systémy, MS Access_PWP

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

Databáze I. 5. přednáška. Helena Palovská

SQL v14. 4D Developer konference. 4D Developer conference 2015 Prague, CZ Celebrating 30 years

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

Sada 1 - PHP. 14. Úvod do jazyka SQL

Virtuální privátní databáze

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

Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června krovacek@students.zcu.cz

Architektury databázových

NÁVRH A TVORBA HUDEBNÍ DATABÁZE

- sloupcové integritní omezení

PG 9.5 novinky ve vývoji aplikací

Databáze I. 1. přednáška. Helena Palovská

SII - Informatika. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá:

Použití databází na Webu

Virtual Private Database (VPD) Jaroslav Kotrč

KIV/ZIS - cvičení. je dobré chodit na cvičení, lépe se pak vypracovávají semestrálky. první 2 týdny podle kapacity 1/37

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

RELAČNÍ DATABÁZOVÉ SYSTÉMY

Kapitola 4: SQL. Základní struktura

KIV/ZIS - cvičení 1/39

DB1 cvičení 4 spojení tabulek a složitější dotazy

Databázové a informační systémy. Dokumentace k projektu. Učební sklad

Text úlohy. Systémový katalog (DICTIONARY):

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.

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

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

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

Marketingová komunikace. 3. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK3PH (vm3bph)

KIV/ZIS cvičení 1. Martin Kryl

SQL. strukturovaný dotazovací jazyk. Structured Query Language (SQL)

Úvod do SQL v systému SAS Martin Branda

Fakulta elektrotechniky a informatiky Databázové systémy 2. Leden 2010 souhrn. Červené dobře (nejspíš), modré možná

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

Databáze 2011/2012 T-SQL - kurzory, funkce. RNDr.David Hoksza, Ph.D.

Transkript:

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 BY se seznamem sloupců, podle kterých se mají záznamy spojit Nakonec lze přidat podmínku pro již sloučené záznamy klauzule HAVING s podmínkou

Slučování záznamů do skupin (2) Příklad 1 Vypište výše stipendií vyplácené studentům s počtem studentů, který danou výši stipendia dostává. Studenty bez stipendia neuvažujte. SELECT stipendium, COUNT(os_cislo) AS [Počet studentů] FROM student WHERE stipendium > 0 GROUP BY stipendium;

Slučování záznamů do skupin (3) Příklad 2 Zadání jako příklad 1, ale vypište jen stipendia, která berou alespoň 2 studenti SELECT stipendium, COUNT(os_cislo) AS [Počet studentů] FROM student WHERE stipendium > 0 GROUP BY stipendium HAVING COUNT(os_cislo) >= 2; Příklad 3 Vypište stáří studentů s počtem studentů u každého věku

Slučování záznamů do skupin (4) Příklad 4 Zadání jako příklad 3, ale vypište jen věk, který mají alespoň 2 studenti Příklad 5 Zadání stejné jako příklad 4, ale místo věku použijte rok narození (sloupec vypočtený jako (2010 - vek)). Pozor v klauzuli HAVING a GROUP BY se nedají použít nové názvy sloupců, celý výraz se tam musí zopakovat.

Spojení více tabulek (1) Chceme získat informaci rozloženou ve více tabulkách (Např. seznam studentů s názvy a čísly semestrálních prací) Tabulky, ze kterých chceme informaci získat, by spolu měli souviset (měla by mezi nimi existovat vazba v obou tabulkách jsou související záznamy) Spojení se dělá přes rovnost primárního a odpovídajícího cizího klíče

Spojení více tabulek (2) Spojení je více typů podle toho, jak se přistupuje k záznamům, které nemají odpovídající záznam v druhé tabulce (např. student bez semestrální práce) Přirozené spojení (natural join) do výsledku dotazu zahrnuty jen záznamy vyskytující se v obou tabulkách (tj. cizí klíč je nastaven). Záznamy (řádky) z pravé i levé tabulky, které nemají odpovídající záznam v druhé tabulce nejsou do dotazu zahrnuty

Spojení více tabulek (3) Levé spojení (left join) Do výsledku dotazu jsou zahrnuty i řádky z levé tabulky, které nemají odpovídající záznam v pravé tabulce Pravé spojení (right join) Do výsledku dotazu jsou zahrnuty i řádky z pravé tabulky, které nemají odpovídající záznam v levé tabulce

Přirozené spojení (1) Příklad 6 Vypište studenty (jméno, příjmení, os. číslo) společně s rozvrhovou akcí, kterou navštěvují (den, týden, od, do) SELECT jmeno, prijmeni, os_cislo, den, tyden, od, do FROM student, rozvrhova_akce WHERE rozvrhova_akce_id = rozvrhova_akce.id; Příklad 7 Jako příklad 6, ale vypište jen studenty starší 21 let chodící na pondělní rozvrhové akce

Přirozené spojení (2) Místo plně kvalifikovaných názvů (viz předchozí dva příklady) lze použít aliasy zkrácení zápisu Nezaměňovat s novým pojmenováním sloupce (klauzule AS)! Příklad 8 Jako příklad 6 s aliasy SELECT jmeno, prijmeni, os_cislo, den, tyden, od, do FROM student s, rozvrhova_akce r WHERE s.rozvrhova_akce_id = r.id;

Přirozené spojení (3) Příklad 9 Vypište studenty (jméno, příjmení, os_číslo) společně s jejich semestrální prací (číslo, název) Příklad 10 Vypište seznam semestrálních prací (číslo, název) s počtem studentů, kteří si tyto práce vybrali Příklad 11 Vypište seznam studentů společně s počtem cvičení, které navštívili

Přirozené spojení (4) Příklad 12 Vypište studenty (jméno, příjmení, os. číslo) společně s cvičeními, které navštívili (pořadí, název) Příklad 13 Vytvořte dotaz, který vypíše všechny studenty, kteří byli alespoň na dvou cvičení s počtem návštěv cvičení Příklad 14 Vypište studenty starší 20ti let s počtem návštěv cvičení, kteří byli alespoň na dvou cvičeních

Přirozené spojení (5) Jak se vyhodnocuje dotaz z příkladu 14

Přirozené spojení (6) Pro přirozené spojení existuje i alternativní zápis, který používá MS Access Příklad 15 Vypište studenty (jméno, příjmení, věk) starší 20ti let společně s jejich semestrální prací (číslo, název) SELECT jmeno, prijmeni, vek, cislo, nazev FROM student s INNER JOIN semestralni_prace sp ON s.semestralni_prace_id = sp.id WHERE vek > 20;

Levé (pravé) spojení (1) Příklad 16 Vypište úplný seznam semestrálních prací s počtem studentů, kteří si je vybrali SELECT cislo, nazev, COUNT(semestralni_prace_id) AS Pocet_studentu FROM semestralni_prace sp LEFT JOIN student s ON s.semestralni_prace_id = sp.id GROUP BY cislo, nazev;

Levé (pravé) spojení (2) Příklad 17 Vypište seznam všech studentů s počtem návštěv cvičení, kteří byli maximálně na jednom cvičení. Použijte pravé spojení. Aby ve sloupci cizího klíče v jedné tabulce mohlo být NULL: U cizího klíče musí být Je nutno vyplnit NE U vazby mezi tabulkami nesmí být zaškrtnuto Zajistit referenční integritu

DML další dotazy Kromě příkazu SELECT jsou součástí DML příkazy pro manipulaci se záznamy v tabulce Přidání záznamu INSERT Úprava záznamu UPDATE Smazání záznamu DELETE V MS Access většinou nejsou potřeba, úpravy záznamů se provádí interaktivně v tabulkách/formulářích

Příkaz INSERT INSERT INTO tabulka VALUES (hodn1, hodn2, ); INSERT INTO tabulka (sloupec1, sloupec2, ) VALUES (hodn1, hodn2, ) Příklad 18 Vložte novou semestrální práci do tabulky semestrální práce INSERT INTO semestralni_prace (cislo, nazev, popis) VALUES (9, Zaměstnanci, Databáze zaměstnanců firmy );

Příkaz UPDATE UPDATE tabulka SET sloupec1 = hodn1, sloupec2 = hodn2, WHERE podmínka; Příklad 19 Změňte název a popis semestrální práce číslo 9 na Hotel a Databáze hostů hotelu UPDATE semestralni_prace SET nazev = Hotel, popis = Databáze hostů hotelu WHERE cislo = 9;

Příkaz DELETE DELETE FROM tabulka WHERE podmínka; Příklad 20 Smažte semestrální práci číslo 9 z tabulky semestrální práce DELETE FROM semestralni_prace WHERE cislo = 9;

Nastavení přístupových práv U databáze lze nastavit přístupové heslo Musí být otevřena ve výhradním režimu Lze vytvářet nové uživatele, skupiny uživatelů Uživatele lze přidávat/odebírat ze skupin Uživatelů či skupinám lze přiřadit práva k jednotlivým objektům tabulkám, dotazům, atd.