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

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

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

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

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

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

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

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

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

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

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

Databáze SQL SELECT. David Hoksza

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Databázové systémy I

Databázové systémy a SQL

2. přednáška. Databázový přístup k datům (SŘBD) Možnost počítání v dekadické aritmetice - potřeba přesných výpočtů, např.

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

Michal Krátký, Miroslav Beneš

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

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

Databázové systémy a SQL

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23

Databázové systémy a SQL

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

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

RELAČNÍ DATABÁZOVÉ SYSTÉMY

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

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

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

MS Access Dotazy SQL

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

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

Analýza a modelování dat. Přednáška 8

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

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

Databázové systémy úvod

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

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

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

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

Použití databází na Webu

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

MS Access Dotazy SQL

Datové modelování II

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

Databázové a informační systémy

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

Operátory ROLLUP a CUBE

PROCESOR RELAČNÍ ALGEBRY

OBJECT DEFINITION LANGUAGE. Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013

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

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

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

37. Indexování a optimalizace dotazů v relačních databázích, datové struktury, jejich výhody a nevýhody

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

Sada 1 - PHP. 15. Výběr dat z databáze. Příkaz SELECT

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

Dotazování v relačním modelu a SQL

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

DATABÁZE A SYSTÉMY PRO UCHOVÁNÍ DAT 61 DATABÁZE - ACCESS. (příprava k vykonání testu ECDL Modul 5 Databáze a systémy pro zpracování dat)

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

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

Analýza a modelování dat. Přednáška 9

5. blok Souhrnné a skupinové dotazy

Jazyk PL/SQL Úvod, blok

Dotazy tvorba nových polí (vypočítané pole)

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

Databázové systémy Tomáš Skopal

Popis ovládání. Po přihlášení do aplikace se objeví navigátor. Navigátor je stromově seřazen a slouží pro přístup ke všem oknům celé aplikace.

KIV/ZIS - SELECT, opakování

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

Databáze. Logický model DB. David Hoksza

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

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.

Databázové systémy trocha teorie

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

RELAČNÍ DATABÁZE ACCESS

SQL tříhodnotová logika

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

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

Databázové systémy úvod

Transkript:

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í databáze Rozdíl mezi konceptuálním a relačním modelem Primární klíč Cizí klíč Typy vztahů a jejich převod na relační model

Opakování 4 fáze vytváření databáze zadání, konceptuální model, relační datový model, implementace Rozdíl mezi konceptuálním a relačním modelem Konceptuální model neudává, jakým způsobem bude databáze řešena (zda použijeme tabulky, stromovou strukturu, objektově orientovanou databázi atd.) V konceptuální modelu neuvídáme cizí klíče. Primární klíč Atribut nebo více atributů, jejichž hodnota nebo kombinace hodnot je pro každý záznam v relaci jedinečná. Cizí klíč Atribut nebo více atributů, které se odkazují na primární klíč z jiné (cizí) tabulky. Typy vztahů a jejich převod na relační model 1:N převádíme přidáním cizího klíče na stranu N M:N řešíme vždy další vazební tabulkou

SQL SQL Structured Query Language

SQL 1. Rozdělení jazyků pro práci s daty 2. Klauzule příkazu SELECT 3. Příklad 1 výběr tabulky 4. Příklad 2 filtrování 5. Příklad 3 výběr sloupců 6. Příklad 4 třízení 7. Syntaxe SQL 8. Štábní kultura

SQL Standard pro komunikaci s relačními databázemi Podporován většinou moderních relačních SŘBD

SQL Standard pro komunikaci s relačními databázemi Podporován většinou moderních relačních SŘBD http://db-engines.com

Rozdělení jazyků pro práci s daty

Rozdělení jazyků pro práci s daty DDL (Data Definition Language) Vytváření datových struktur (prázdných tabulek) DML (Data Manipulation Language) Vkládání, úprava a mazání dat DQL (Data Query Language) Dotazování nad daty

Rozdělení jazyků pro práci s daty DDL (Data Definition Language) Vytváření datových struktur (prázdných tabulek) DML (Data Manipulation Language) Vkládání, úprava a mazání dat SQL DQL (Data Query Language) Dotazování nad daty

Rozdělení jazyků pro práci s daty DDL (Data Definition Language) Vytváření datových struktur (prázdných tabulek) DML (Data Manipulation Language) Vkládání, úprava a mazání dat SQL DQL (Data Query Language) Dotazování nad daty

Klauzule příkazu SELECT

Klauzule příkazu SELECT SELECT FROM WHERE GROUP BY HAVING ORDER BY seznam sloupců na výstupu vstupní tabulky podmínka seskupení podmínka skupiny seřazení výsledku Ne všechny klauzule jsou povinné, ale jejich pořadí je striktně dané!

Klauzule příkazu SELECT SELECT FROM WHERE GROUP BY HAVING ORDER BY seznam sloupců na výstupu vstupní tabulky podmínka seskupení podmínka skupiny seřazení výsledku Ne všechny klauzule jsou povinné, ale jejich pořadí je striktně dané!

1. příklad výběr všech dat z tabulky Student login jmeno prijmeni datum_narozeni nov078 Jan Novák 5.9.1987 luk194 Petr Lukáš 7.6.1988 lak065 Luboš Lakatoš 2.8.1991 Vyber vše z tabulky Student

1. příklad výběr všech dat z tabulky Student login jmeno prijmeni datum_narozeni nov078 Jan Novák 5.9.1987 luk194 Petr Lukáš 7.6.1988 lak065 Luboš Lakatoš 2.8.1991 Vyber vše z tabulky Student SELECT * FROM Student login jmeno prijmeni datum_narozeni nov078 Jan Novák 5.9.1987 luk194 Petr Lukáš 7.6.1988 lak065 Luboš Lakatoš 2.8.1991

2. příklad filtrování záznamů Student login jmeno prijmeni datum_narozeni nov078 Jan Novák 5.9.1987 luk194 Petr Lukáš 7.6.1988 lak065 Luboš Lakatoš 2.8.1991 Vyber všechny studenty, kteří se narodili po 1.1.1988

2. příklad filtrování záznamů Student login jmeno prijmeni datum_narozeni nov078 Jan Novák 5.9.1987 luk194 Petr Lukáš 7.6.1988 lak065 Luboš Lakatoš 2.8.1991 Vyber všechny studenty, kteří se narodili po 1.1.1988 SELECT * FROM Student WHERE datum_narozeni > 1.1.1988 login jmeno prijmeni datum_narozeni luk194 Petr Lukáš 7.6.1988 lak065 Luboš Lakatoš 2.8.1991

2. příklad filtrování záznamů vs. selekce Student login jmeno prijmeni datum_narozeni nov078 Jan Novák 5.9.1987 luk194 Petr Lukáš 7.6.1988 lak065 Luboš Lakatoš 2.8.1991 SELECT * FROM Student WHERE datum_narozeni > 1.1.1988 σ datum_narozeni >"1.1.1988" Student login jmeno prijmeni datum_narozeni luk194 Petr Lukáš 7.6.1988 lak065 Luboš Lakatoš 2.8.1991

3. příklad výběr sloupců Student login jmeno prijmeni datum_narozeni nov078 Jan Novák 5.9.1987 luk194 Petr Lukáš 7.6.1988 lak065 Luboš Lakatoš 2.8.1991 Vyber jména a příjmení všech studentů

3. příklad výběr sloupců Student login jmeno prijmeni datum_narozeni nov078 Jan Novák 5.9.1987 luk194 Petr Lukáš 7.6.1988 lak065 Luboš Lakatoš 2.8.1991 Vyber jména a příjmení všech studentů SELECT jmeno, prijmeni FROM Student jmeno Jan Petr Luboš prijmeni Novák Lukáš Lakatoš

4. příklad spojení tabulek Student login jmeno skola nov078 Jan 1 luk194 Petr 1 lak065 Luboš 2 Skola id nazev 1 VŠB TUO 2 Ostravská univerzita Vyber jména studentů a k nim názvy škol, ve kterých studují

4. příklad spojení tabulek Student login jmeno skola nov078 Jan 1 luk194 Petr 1 lak065 Luboš 2 Skola id nazev 1 VŠB TUO 2 Ostravská univerzita Vyber jména studentů a k nim názvy škol, ve kterých studují SELECT jmeno, nazev FROM Student, Skola WHERE Student.skola = Skola.id jmeno Jan Petr Luboš nazev VŠB TUO VŠB TUO Ostravská univerzita

4. příklad spojení tabulek vs. kart. součin Student login jmeno skola nov078 Jan 1 luk194 Petr 1 lak065 Luboš 2 Skola id nazev 1 VŠB TUO 2 Ostravská univerzita SELECT jmeno, nazev FROM Student, Skola WHERE Student.skola = Skola.id π jmeno,nazev σ skola=id Student Skola jmeno Jan Petr Luboš nazev VŠB TUO VŠB TUO Ostravská univerzita

5. příklad třízení Student login jmeno prijmeni datum_narozeni nov078 Jan Novák 5.9.1987 luk194 Petr Lukáš 7.6.1988 lak065 Luboš Lakatoš 2.8.1991 Vyber všechny studenty setřízené sestupně dle data narození

5. příklad třízení Student login jmeno prijmeni datum_narozeni nov078 Jan Novák 5.9.1987 luk194 Petr Lukáš 7.6.1988 lak065 Luboš Lakatoš 2.8.1991 Vyber všechny studenty setřízené sestupně dle data narození SELECT * FROM Student ORDER BY datum_narozeni DESC login jmeno prijmeni datum_narozeni lak065 Luboš Lakatoš 2.8.1991 luk194 Petr Lukáš 7.6.1988 nov078 Jan Novák 5.9.1987

Syntaxe SQL (1) Booleovské výrazy Používáme spojky AND, OR, NOT pro logický součin, součet a negaci. Operátory porovnání Porovnání na shodnost pomocí = (nepoužívá se == jako v C++). Dále obvyklý význam mají znaky <, >, <> nebo!=. Speciální význam má porovnání s tzv. NULL hodnotou výrazy IS NULL nebo IS NOT NULL.

Syntaxe SQL (2) Aritmetika Standardní význam mají operátory +, -, *, /, % (modulo). Pozor, u dělení celých čísel vychází opět celé číslo! + může sloužit také pro konkatenaci (spojení) řetězců. Textové řetězce Textové řetězce se zapisují mezi jednoduché apostrofy. Speciální operátor LIKE slouží k porovnání řetězce s regulárním výrazem, kde znak % zastupuje libovolný počet libovolných znaků. např. jmeno LIKE P% všechna jména začínající na P.

Syntaxe SQL (3) Klauzule SELECT Bezprostředně za klauzulí select se mohou nacházet (mimo jiné) následující modifikátory: DISTINCT omezení duplicit na výstupu. SELECT DISTINCT jmeno FROM Student Vrať všechna křestní jména studentů. TOP n zajímá nás jen prvních n výsledků. Používá se např. pokud chceme jen nahlédnout, jak data vypadají nebo velmi výhodně také v kombinaci s třízením. SELECT TOP 1 login FROM Student ORDER BY datum_narozeni Vrať login nejstaršího studenta.

Syntaxe SQL (4) select TOP 10 jmeno FROM STUDent, vyrobek where prijmeni = Lukáš ORDER BY rok_narozeni vs. SELECT TOP 10 jmeno FROM Student, Vyrobek WHERE prijmeni = Lukáš ORDER BY rok_narozeni Každá klauzule začíná na novém řádku. U složitých dotazů je vhodné psát klíčová slova klauzulí na zvláštní řádky. Klíčová slova píšeme velkými písmeny. Názvy tabulek a atributů píšeme stejně, jako byly definovány. Tzn. máme-li např. tabulku Student, nebudeme se na ni odvolávat pomocí STUDENT. Kdykoli si nejsme jisti prioritou operátorů, použijeme závorky.

Shrnutí Rozdělení jazyků Jazyky pro dotazování (DQL), jazyky pro modifikaci dat (DML), jazyky pro definici dat (DDL). 6 klauzulí příkazu SELECT SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY Syntaxe SQL Operátory, booleovské výrazy, práce s řetězci Štábní kultura Každá klauzule na novém řádku, klíčová slova velkými písmeny, tabulky a atributy pojmenováváme tak, jak byly definovány

Cvičení www.dbedu.cs.vsb.cz Přihlášení přes jednotný login a heslo Vpravo sloupec -> České kurzy -> UDBS