Vzorové příklady SQL. Tabulka: Kniha CREATE TABLE kniha (id INTEGER, název VARCHAR(50), PRIMARY KEY (id))



Podobné dokumenty
Jazyk S Q L základy, příkazy pro práci s daty

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

6. SQL složitější dotazy, QBE

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce

MS Access Dotazy SQL

Dotazy v SQL. Výraz relační algebry R1( )[A1,A2,...,Aj] lze zapsat takto: SELECT A1,A2,...,Aj FROM R1 WHERE. Výraz (R1, R2... Rk)( )[A1,A2,...

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

FAKULTA STAVEBNÍ STUDIJNÍ PROGRAM: GEODÉZIE A KARTOGRAFIE TYP PROGRAMU: MAGISTERSKÝ STUDIJNÍ OBOR: GEOMATIKA ÚVOD DO ZPRACOVÁNÍ PROSTOROVÝCH DAT

Databázové systémy I

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

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

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

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

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

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

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

Obsah. SQL konstrukce select join Rekurze (rekurzivní with) Analytické funkce, group by Pivoting

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

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

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

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

1. Relační databázový model

- sloupcové integritní omezení

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

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

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

Jazyk SQL slajdy k přednášce NDBI001

Tabulka fotbalové ligy

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

Semestrální práce z DAS2 a WWW

PG 9.5 novinky ve vývoji aplikací

Marian Kamenický. Syntea software group a.s. marian.kamenicky. MFFUK Praha 2012/13

Dotazovací jazyk SQL I

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

Analýzy v GIS. Co se nachází na tomto místě? Kde se nachází toto? Kolik tam toho je? Co se změnilo od? Co je příčinou? Co když?

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

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

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

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

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

Databázové systémy I

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

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

MySQL sežere vaše data

Měřící systém se vzdáleným přístupem. Databáze

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

DOKUMENTACE. Úvod do zpracování prostorových dat (153UZPD) PROJEKT

MS Access Dotazy SQL

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

Materiál ke cvičením - SQL

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

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

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

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

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

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

MANUÁL PRO HODNOCENÍ OTEVŘENÝCH TESTOVÝCH ÚLOH MATEMATIKA SADA B (TEST PRO PŘIJÍMACÍ ZKOUŠKY DO 8LETÉHO GYMNÁZIA)

Souvislost E-R schématu s relačním

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

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

Popis souboru pro generování reportů *.report

Databázové systémy a SQL

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

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

DUM 12 téma: Příkazy pro tvorbu 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 Cvičení 5.3

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):

Informační systémy 2008/2009. Radim Farana. Obsah. Skripty a dávky. Nastavení aktuální databáze. USE DatabaseName

Verzování a publikace dat na webu za pomoci PostgreSQL

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

U koly na procvic ení jazyka T-SQL

Kapitola 4: SQL. Základní struktura

Použití databází na Webu

KIV/ZIS - SELECT, opakování

Transformace ER SQL. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 9

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

DBS Transformace konceptuálního schématu na

Uložené procedury Úvod ulehčit správu zabezpečení rychleji

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

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

B2646 Informační technologie 1802R007 Informační technologie

IDS optimalizátor. Ing. Jan Musil, IBM ČR Community of Practice for

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

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

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

Databáze 2011/2012 SQL SELECT II. RNDr.David Hoksza, Ph.D.

Databázové systémy trocha teorie

Structured Query Language SQL

Databáze SQL SELECT. David Hoksza

RELAČNÍ DATABÁZOVÉ SYSTÉMY

Databázové systémy a SQL

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

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

Základy informatiky. 06 Databázové systémy. Kačmařík/Szturcová/Děrgel/Rapant

Univerzita Pardubice. Fakulta elektrotechniky a informatiky SEMESTRÁLNÍ PRÁCE PRO PŘEDMĚT IDAS2

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

MySQL manuál. Copyright: Adam Jun Stránky manuálu:

Transkript:

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, PRIMARY KEY (id Tabulka: Napsané_knihy CREATE TABLE napsané_knihy (publikace_id INTEGER, autor_id INTEGER, PRIMARY KEY (publikace_id, autor_id, FOREIGN KEY (publikace_id REFERENCES kniha (id, FOREIGN KEY (autor_id REFERENCES autoři (id Tato tabulka zprostředkovává vazbu mezi tabulkami KNIHA a AUTOŘI, typu M:N (jeden autor může napsat více knih, jedna kniha může být napsána více autory. Tabulka: Nakladatelství CREATE TABLE nakladatelství název VARCHAR(20, adr_ulice VARCHAR(20, adr_číslo INTEGER, adr_město VARCHAR(15, adr_psč NUMBER(5,0, telefon VARCHAR(15, email VARCHAR(40, web_stránka VARCHAR(60, PRIMARY KEY (id Tabulka: Výtisk

CREATE TABLE výtisk publikace_id INTEGER, nakladatel_id INTEGER, vazba VARCHAR(10 DEFAULT 'pevná', cena NUMBER(8,2 DEFAULT 0, počet_stran INTEGER, hmotnost NUMBER(6,1, vydání INTEGER, rok_vydání INTEGER, PRIMARY KEY (id, FOREIGN KEY (kniha_id REFERENCES kniha (id, FOREIGN KEY (nakladatel_id REFERENCES nakladatelství (id Jednoduchý výpis tabulky SELECT id, název FROM kniha SELECT * FROM autoři, adr_ulice, adr_číslo, email Příklady Názvy všech nakladatelství, která jsou z Brna: WHERE adr_město = Brno Název a e-mail všech nakladatelství, která mají svou webovskou stránku:, email WHERE web_stránka IS NOT NULL Příjmení všech autorů, jejichž křestní jména začínají na písmeno 'T', a kteří nemají žádný titul: SELECT příjmení FROM autoři WHERE jméno LIKE 'T%' AND titul IS NULL Seznam jmen všech brněnských nakladatelství s jejich kompletními adresami, tříděno dle názvů ulic (pakliže sídlí ve stejné ulici, dle jejich čísla:, adr_ulice, adr_číslo, adr_město, adr_psč

WHERE adr_město = Brno ORDER BY adr_ulice, adr_číslo Názvy všech knih, jejichž výtisky byly vydány v roce 1998: FROM kniha, výtisk AND rok_vydání = 1998 Kteří autoři napsali knihu "Jak publikovat články"? SELECT příjmení, jméno FROM autoři, kniha, napsané_knihy AND kniha.název LIKE 'Jak publikovat články' Názvy všech knih, které napsal Alois Jirásek: FROM kniha, autoři, napsané_knihy AND autoři.id = napsané_knihy.autor_id AND jméno = 'Alois' AND příjmení = 'Jirásek' Názvy všech děl, která vydalo nakladatelství 'Iota': SELECT kniha.název AND výtisk.nakladatel_id = nakladatelství.id AND nakladatelství.název = 'Iota' Ve kterých nakladatelstvích byla v roce 1996 vydána díla autora Robina Cooka? SELECT nakladatelství.název, výtisk, kniha, napsané_knihy, autoři WHERE nakladatelství.id = výtisk.nakladatel_id AND výtisk.kniha_id = kniha.id AND kniha.id = napsané_knihy.kniha_id AND nakladatelství.rok_vydání = 1996 AND autoři.jméno = 'Robin' AND autoři.příjmení = 'Cook' Vypište seznam měst, ve kterých sídlí naše nakladatelství, u každého města uveďte, kolik z nakladatelstvích má kontaktní e-mail nebo webovskou stránku: SELECT adr_město, COUNT(* WHERE web_stránka IS NOT NULL

OR email IS NOT NULL GROUP BY adr_město Seznam všech názvů knih a nakladatelství a pro každou dvojici kniha - nakladatelství součet cen výtisků daného díla v daném nakladatelství, napsali bychom následující příkaz: SELECT kniha.název, nakladatelství.název, SUM(cena AND výtisk.nakladatel_id = nakladatelství.id GROUP BY kniha.název, nakladatelství.název Pouze brněnská nakladatelství a pro všechny knihy, které byly těmito nakladatelstvími vydány, zjistěte průměrnou hmotnost: SELECT kniha.název, nakladatelství.název, AVG(hmotnost WHERE nakladatelství.id = výtisk.nakladatel_id AND výtisk.kniha_id = kniha.id AND adr_město = Brno GROUP BY kniha.název, nakladatelství.název Seznam všech knih a nakladatelství a pro každou dvojici kniha - nakladatel součet cen výtisků daného díla v daném nakladatelství. Do výpisu zahrneme ale jen ta nakladatelství, která vydala alespoň 3 různá výdání dané knihy. SELECT kniha.název, nakladatelství.název, SUM(cena AND výtisk.nakladatel_id = nakladatelství.id GROUP BY kniha.název, nakladatelství.název HAVING count(* >=3 Seznam všech děl, které napsal Alois Jirásek, nebo Vítězslav Nezval. AND ( (jméno = 'Alois' AND příjmení = 'Jirásek' OR (jméno = 'Vítězslav' AND příjmení = 'Nezval' Pomocí sjednocení předchozí dotaz lze přepsat následovně: AND jméno = 'Alois' AND příjmení = 'Jirásek'

UNION AND jméno = 'Vítězslav' AND příjmení = 'Nezval' Názvy všech knih, které napsal Jan Novák a zároveň Petr Nový AND jméno = 'Jan' AND příjmení = 'Novák' INTERSECT AND jméno = 'Petr' AND příjmení = 'Nový' Seznam všech knih, které napsal Jan Novák, ale zároveň které nenapsal Petr Nový AND jméno = 'Jan' AND příjmení = 'Novák' MINUS AND jméno = 'Petr' AND příjmení = 'Nový' Zjistěte název a cenu nejlevnější knihy., cena FROM kniha, výtisk WHERE kniha.id = výtisk.publikace_id AND cena = (SELECT MIN(cena FROM výtisk Vypište jména všech autorů, kteří se podíleli při psaní nejdelší knihy (=s největším počtem stran SELECT jméno, příjmení FROM autoři, napsané_knihy, výtisk WHERE autoři.id = napsané_knihy.autor_id AND napsané_knihy.publikace_id = výtisk.publikace_id AND počet_stran = (SELECT MAX(počet_stran FROM výtisk

Názvy knih vydané v letech 1997 až 2000, mohli bychom takový dotaz pomocí operátoru IN zapsat takto: FROM kniha, výtisk WHERE kniha.id = výtisk.publikace_id AND rok IN (1997, 1998, 1999, 2000 Názvy knih vydaných v týchž letech, jako díla Aloise Jiráska: FROM kniha, autoři, napsané_knihy, výtisk WHERE kniha.id = napsané_knihy.publikace_id AND kniha.id = výtisk.publikace_id AND rok IN ( SELECT rok FROM autoři a, výtisk v, napsané_knihy n WHERE a.id = n.autor_id AND n.publikace_id = v.publikace_id AND a.jméno LIKE 'Alois' AND a.příjmení LIKE 'Jirásek' Seznam takových knih od Vítězslava Nezvala, jejichž výtisky nebyly nikdy dražší, než kterýkoliv výtisk díla Aloise Jiráska. FROM kniha, výtisk, napsané_knihy, autoři WHERE autoři.id = napsané_knihy.autor_id AND napsané_knihy.publikace_id = kniha.id AND kniha.id = výtisk.publikace_id AND jméno LIKE 'Vítězslav' AND příjmení LIKE 'Nezval' AND cena < ALL (SELECT cena FROM napsané_knihy n, výtisk v, autoři a WHERE v.publikace_id = n.publikace_id AND n.autor_id = a.id AND a.jméno LIKE 'Alois' AND a.příjmení LIKE 'Jirásek' Chceme tedy dotaz na seznam knih, u kterých nemáme zadaného žádného autora: FROM kniha WHERE NOT EXISTS ( SELECT autor_id FROM napsané_knihy WHERE kniha.id = napsané_knihy.publikace_id

Vypište jména autorů, kteří samostatně (bez pomocí jiných napsali alespoň 5 knih: SELECT jméno, příjmení FROM autoři, napsané_knihy WHERE napsané_knihy.autor_id = autoři.id AND NOT EXISTS ( SELECT 1 FROM napsané_knihy x WHERE x.publikace_id = napsané_knihy.publikace_id AND x.autor_id!= napsané_knihy.autor_id GROUP BY jméno, příjmení HAVING COUNT(* >= 5