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

Rozměr: px
Začít zobrazení ze stránky:

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

Transkript

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

2 SQL - historie IBM - 1.prototyp - SEQUEL od do praxe - ORACLE (1979) IBM - SQL/DS (1981), DB/2 (1983) postupně přijímán jako standard pro přístup k datům v relačních databázích Pozn. - QBE = QUERY BY EXAMPLE

3 SQL - normy SQL 86 - DDL, DML, DCL schválena ANSI norma SQL, základem dialekt DB2, přijato mezinárodní standardizační organizací ISO SQL 89 - revize rozšíření o specifikaci IO SQL2 - r revize, SQL3 - nyní snaha po standardizaci - možnost kompatibility,přenositelnost - SAG konsorcium

4 Standardizace SQL Od r hlavní edice standardů - SQL 86, SQL92, SQL99 Menší edice SQL89 Pozn. :» po přijetí standardu SQL 92 se mluvilo o SQL jako o SQL3 od roku 1999 mají být standardy označovány : SQL: rrrr - (SQL:1999) SQL3 - přestává se používat, nyní SQL4» SQL4 chápána jako kontejner, kde všechny budoucí standardy standard 92 je implementován pouze částečně

5 SQL je neprocedurální jazyk specifikuje CO požadujeme nikoli jak toho dosáhneme. DATA DEFINITION LANGUAGE - DDL DATA MANIPULATION LANGUAGE - DML DATA CONTROL LANGUAGE - DCL

6 DATA DEFINITION LANGUAGE - DDL vytváření databáze a relační struktury vytváření, rušení a aktualizace relací (tabulek) vytváření a rušení indexů vytváření a rušení pohledů - (ne alter) Integritní omezení a DDL (create domain, check, Primary key ) Datové typy podporované SQL-92

7 DATA MANIPULATION LANGUAGE - DML příkazy k provádění základní manipulace s daty : vkládání, modifikace, rušení dat z relací INSERT UPDATE DELETE k výběru dat z databáze - jednoduché i složité dotazy: SELECT

8 DATA CONTROL LANGUAGE - DCL příkazy GRANT, REVOKE Přikazy pro tvorbu aplikací pro spolupráci SQL s hostitelským jazykem -- příkazy DECLARE CURSOR OPEN CURSOR - před 1. z množiny FETCH CURSOR - přesun o 1 CLOSE CURSOR příkazy pro uživatelskou transakci - ROLLBACK, COMMIT

9 SQL příkazy z rezervovaných (klíčových) slov a uživatelem definovaných slov. Rezervovaná slova jsou nedílnou součástí příkazů SQL uživatelem definovaná slova jsou slova používaná pro pojmenování databázových relací, sloupců, pohledů 14

10 Psaní SQL příkazů Klíčová slova příkazu - velkými písmeny Uživatelem definovaná slova - malými písmeny Každá klauzule příkazu začíná na novém řádku [text] - volitelnáčást příkazu [,...] - možné opak. předchozíčásti uzavřené v { } [text text] možný výběr některé z variant {text text} nutný výběr některé z variant ( ) součást příkazu 15

11 DATA MANIPULATION LANGUAGE

12 INSERT - vstup dat INSERT INTO název relace [(výčet atributů)] {VALUES( výčet hodnot atributů) SELECT-příkaz} kde: VALUES -pro vstup právě jednohořádku relace - pokud všech atributů, pak nemusí být uveden výčet atributů specifikovaných ve výčtu SELECT - pro vstup více řádků najednou ( z 1 či více relací) struktura řádků vrácených vnořeným příkazem SELECT musí být kompatibilní se strukturou naplňované relace. 128

13 výčet atributů- nepovinné - pokud jsou vkládány hodnoty atributů v tom pořadí, v jakém byly definovány a zároveň budu vkládat hodnoty všech atributů výčet hodnot atributů - je oddělen čárkou, pořadí hodnot atributů a datový typ souhlasí s definicí relace, resp. s pořadím uvedeným ve výčtu atributů; u atributu typu CHAR je hodnota v pro neznámou hodnotu - použití NULL

14 Není-li do atributu relace vložena hodnota při INSERTu - pak bude obsahovat : DEFAULT -hodnotu- pokud je určena při definici atributu NULL - není-li určena DEFAULT hodnota signalizace chyby : pokud u atributu určeno NOT NULL, zároveň není určena DEFAULT hodnota a nebyla-li vložena hodnota byla-li vložena hodnota, která porušuje definovanou jedinečnost hodnoty atributu.

15 INSERT Př. INSERT INTO sql-sport.zakaznik (adresa, discount, mesto, czak) VALUES(" Horní ulice 777", 9, "Brno", 1). INSERT INTO sql-sport.zakaznik (adresa,discount, mesto, czak) SELECT Address, Discount, City,Cust-Num FROM sport19.customer.

16 UPDATE - aktualizace dat UPDATE název relace SET jméno atributu= {NULL výraz} [, jméno atributu = {NULL výraz}]... [WHERE podmínky] Jedním příkazem lze měnit hodnotu jednoho či více atributů v rámci jedné relace

17 SET - přiřazuje atributu / ům novou hodnotu ( konstanta, NULL, název atributu či proměnné, aritmetický výraz) WHERE -nepovinné, aktualizuje všechny řádky, které vyhovují podmínce pokud není uvedeno WHERE -aktualizuje dané atributy ve všech řádcích Systém m odmítne aktualizaci, pokud nová hodnota nebude respektovat některn která z def. omezení atributu

18 UPDATE Př. UPDATE zakaznik SET zeme = zeme + "/EU UPDATE radek-obj SET qty = gty + qty/12, cena = cena * 2 WHERE c-pol = 125.

19 DELETE - rušení dat DELETE FROM název relace [WHERE podmínky] Jedním příkazem lze zrušit jeden či více řádků jedné relace WHERE - vymaže z relace všechny řádky, které vyhovují podmínce Pokud nebude uvedena podmínka, zruší se všechny řádky relace - ale nezruší se definice relace

20 příkaz SELECT - použití pro výběr dat z jedné relace pro výběr dat z více relací vnější spojení, vnitřní spojení, samospojení provádění operací (UNION, INTERSECT, EXCEPT). Hnízdění ( nesting) dotazů - do příkazu SELECT, INSERT, UPDATE, DELETE strukturované dotazy jednoduché a souvztažné 3

21 SELECT příkaz SELECT klauzule FROM klauzule [WHERE klauzule ] [GROUP BY klauzule] [HAVING klauzule ] [ORDER BY klauzule] 17

22 SELECT příkaz SELECT- povinné, specifikuje sloupce výstupu - atributy, konstanty, aritmetické výrazy, agregační funkce FROM - povinné, uvádí relace, z nichž data vybírána WHERE - nepovinné, uvádí podmínky výběru GROUP BY - nepovinné, vytváří skupiny řádků, z jejichž hodnot jsou odvozeny souhrnné hodnoty - s agr.funkcemi HAVING - nepovinné, uvádí výběrové podmínky, vztahuje se ke GROUP BY ORDER BY - nepovinné, k uspořádánířádků výstupní tabulky ( je ve většině implementací, není ve výchozí normě)

23 SELECT příkaz Pořadí klauzulí nemůže být měněno. Postup při vyhodnocování : FROM WHERE GROUP BY HAVING ORDER BY 19

24 SELECT příkaz SELECT - FROM SELECT [ALL DISTINCT] {* jméno atributu výraz}[,...] FROM { jméno relace1 [alias].. alias (correlation-name)-pokud se budu chtít na danou relaci v příkazu SELECT odvolávat jiným jménem než je jméno tabulky (důvod- např.dlouhé jméno tabulky), nebo při self-join (samospojení)

25 SELECT klauzule SELECT ALL DISTINCT ALL znamená všechny - i opakující se řádky, je to defaultní zadání * DISTINCT» pokud nechci opakovánířádků se stejnými hodnotami ( = duplicitních řádků)» potlačuje duplicitnířádky -až při zobrazení výsledné relace pokud chci zobrazit všechny atributy z relace/relací

26 SELECT příkaz SELECT jméno atributu - jednoznačný název - v rámci databáze : jméno relace.jméno atributu Výraz - konstanty, numerické, znakové, datumové, logické, funkce aritmetické výrazy +, -, *, /, ( ) Pozn.: mezi operátory minimálně 1 mezera, ve výrazech kombinace atributů, konstant

27 SELECT příkaz SELECT.. {jméno atributu výraz } FORMAT " " AS ", atribut1... od SQL2 lze přejmenovat názvy sloupců ( u atributů), či u výrazů pojmenovat - jméno atributu výraz AS název sloupce FORMAT - pokud chci jiný než definovaný v DDL

28 SELECT příkaz WHERE ke spojení více relací ( implicitní ) ( porovnání atributů, podle kterých se mají spojit pro podmíněný výběr prvků pozn: z hlediska relační algebry SELEKCE je-li více podmínek výběru spojení AND, OR

29 SELECT příkaz WHERE podmínky výběru: klasicky - pomocí NOT, AND, OR, >, <, <=, >=,<> výraz1 relační_operátor výraz2 výrazem může být : konstanta, atribut, funkce, aritmetický výraz

30 SELECT -WHERE BETWEEN /NOT BETWEEN pro spojitý interval, výraz1 -dolní, výraz2 - horní hranice intervalu, - za výrazx lze uvést konstantu, atribut, aritmetický výraz...- WHERE výraz [ NOT] BETWEEN výraz1 AND výraz2 Př.: czak BETWEEN 1 AND C-zak >= 1 AND c-zak <= 5 name BETWEEN "a" AND "dz" odmena NOT BETWEEN plat AND plat +1400

31 SELECT -WHERE IN /NOT IN pro nespojité hodnoty zjednodušuje zápis výběrových podmínek (OR) výběr ze seznamu hodnot, výčet hodnot -nelze uvádět jména atributů, výrazy WHERE výraz [ NOT] IN (výčet hodnot) Př.: c-zak IN (1,2,3,4,5)...c-zak = 1 OR c-zak = 2 OR...

32 SELECT - WHERE NULL / NOT NULL pouze pro atribut relace WHERE jméno atributu IS [ NOT] NULL Př.: všechny, které nemají uveden údaj - dat-odesl IS NULL Pozn.: není pravda, že NULL hodnota je rovna jiné NULL hodnotě (t.j. neurčené nemohou být rovny navzájem ale při potlačení hodnotě), NULL hodnoty si výstupníchřádků s duplicitními hodnotami jsou NULL hodnoty v rámci atributu považovány výjimečně za duplicitní

33 SELECT -WHERE LIKE /NOT LIKE porovnává se vzorovou hodnotou lze jím testovat jen atributy pro řešení dotazů, které nelze řešit přímým srovnáváním WHERE jméno atributu [ NOT] LIKE "vzor" [ ESCAPE "oddělovač"] kde: % - více znaků _ - jeden znak Př.: atribut LIKE " % OV" atribut LIKE " 13 / %" ESCAPE "/" vyhledá hodnoty atributu 13%

34 SELECT * FROM zakaznik WHERE mesto LIKE '%dec%';

35 SELECT ORDER BY klauzule implicitně : výstup podle PK tabulky uvedené první za FROM, hodnoty jsou uvedeny vzestupně. ORDER BY slouží ke změně implicitních podmínek: ORDER BY {{ jméno atributu n } ASC DESC} [,..] n -číslo pořadí sloupce za SELECT klauzulí - výhoda pro odvozené hodnoty ASC - vzestupně - standardně DESC - sestupně

36 ORDER BY Kriteria oddělena čárkou, prvně uvedený je nadřazený následujícím Některé implementace jazyka vyžadují, aby atribut použitý jako kriterium třídění byl obsažen v klauzuli SELECT.

37 BOOLEOVSKÉ OPERÁTORY AND, OR - užití při více výběrových podmínkách AND - musí být pravdivé všechny uvedené podmínky OR - alespoň jedna z podmínek pravdivá Relační operátory : <, >, <=, >=, <> Pořadí vyhodnocování závorky násobení, dělení odčítání, sčítání NOT AND OR

38 SQL SELECT DML - agregační funkce klauzule GROUP BY, HAVING spojení vnitřní spojení vnější spojení Samospojení strukturované příkazy jednoduché souvztažné operace UNION, INTERSECT, EXCEPT dynamické a statické relace

39 SELECT příkaz a agregace SELECT klauzule FROM klauzule [WHERE klauzule ] [GROUP BY klauzule] [HAVING klauzule ] [ORDER BY klauzule] 17

40 SELECT příkaz AGREGAČNÍ FUNKCE = aggregate functions, column functions SUM AVG MIN MAX COUNT použití v klauzuli SELECT umožní z hodnot atributů v databázi odvodit souhrnné, agregované údaje

41 SELECT příkaz AGREGAČNÍ FUNKCE Rozdíl agregačních funkcí a aritmetických výrazů aritmetické výrazy za klauzulí SELECT vypočítávají nové údaje z hodnot v rámci jednotlivých řádků agregační funkce - souhrnná hodnota je odvozena z hodnot určitého atributu relace: - ze všech řádků relace - z konkrétních řádků určených podmínkami za WHERE - ze skupin řádků definovaných klauzulí GROUP BY

42 SELECT příkaz AGREGAČNÍ FUNKCE agregace bez klíče (agregačního) ze všech řádků původní relace či z řádků vyhovujících podmínkám za WHERE se vytvoří jeden agregát. Výsledkem je jeden řádek. agregace s klíčem častěji, vyplývá z požadavku zjištění hodnot agregovaných funkcí za menší shluky (seskupení). Výsledkem je více řádků - a to tolik řádků, kolik různých hodnot bude obsaženo ve sloupci (sloupcích) podle kterých chceme agregovat.

43 SELECT příkaz AGREGAČNÍ FUNKCE Specifikace agregačního klíče v klauzuli GROUP BY jednoduchý klíč ( 1 atribut), složený klíč (více atributový)

44 SELECT příkaz AGREGAČNÍ FUNKCE DISTINCT u agregační funkce potlačuje duplicitní hodnoty argumentu funkce při výběru dat z databáze před vlastním provedením výpočtu ( při použití v klauzuli SELECT potlačuje duplicitní řádky až při zobrazení výsledné relace). NULL - neznámé, nedefinované hodnoty se nezapočítávají do počtu, součtu, průměru, max, min Výjimka COUNT( * ) - zjistí počet řádků bez ohledu na nedefinovanost obsahu.

45 SELECT příkaz AGREGAČNÍ FUNKCE - SUM SUM ( [ DISTINCT ] argument) - vrací součet hodnot argumentu - argument: - numerický atribut - aritmetický výraz vracející numerickou hodnotu

46 SELECT příkaz AGREGAČNÍ FUNKCE - AVG AVG ( [ DISTINCT ] argument) Vrací průměrnou hodnotu z určených ( NOT NULL) hodnot argumentu argument: - numerický atribut - aritmetický výraz vracející numerickou hodnotu

47 SELECT příkaz AGREGAČNÍ FUNKCE - MAX, MIN MIN ( [ DISTINCT ] argument) MAX ( [ DISTINCT ] argument) vrací minimální, resp. maximální hodnotu argumentu argument: atribut aritmetický výraz neobsahující znakovou konstantu

48 SELECT příkaz AGREGAČNÍ FUNKCE - COUNT COUNT ( * ) Vrací počet hodnot v rámci atributů relace, tedy početřádků relační tabulky. COUNT ( [ DISTINCT ] atribut) Funkce COUNT s argumentem je v různých systémech implementována odlišně. Standardně vrací počet určených hodnot daného atributu- t.j. počet hodnot atributu různých od NULL ( = NOT NULL). Některé implementace připouští pouze syntaxi s povinným užitím DISTINCT: COUNT ( DISTINCT atribut).

49 SELECT příkaz AGREGAČNÍ FUNKCE - COUNT Rozdíl COUNT ( * ) a COUNT ( DISTINCT atribut) je-li atribut povinný a neobsahuje duplicitní údaje» výsledky obou jsou totožné. Je-li atribut povinný a obsahuje duplicitní údaje» pak odlišný výsledek není-li atribut povinný - budou -li nedefinované (NULL) hodnoty atributu v některých prvcích relace» pak nejsou shodné.

50 SELECT příkaz AGREGAČNÍ FUNKCE - COUNT PŘ. SELECT COUNT(*),COUNT(DISTINCTc-obj), COUNT( DISTINCT c-zak), COUNT(DISTINCT d- exp) FROM objednavky výsledek: 214, 214, 71, 53 Jak byste interpretovali tento výsledek, co z toho vyplývá

51 SELECT příkaz- AGREGAČNÍ FUNKCE - určení atributů a funkcí za SELECT Není možné za SELECT uvádět atributy / výrazy, jejichž hodnoty jsou vztaženy k prvkům relace a uvádět agregační funkce, které jsou vztaženy buď k celé relaci, či pouze k některým řádkům dané relace. Při agregaci není nutné se omezit jen na jednotlivé atributy, lze je použít na jakýkoli výraz, v němž se budeme odkazovat na více atributů původní relace příkaz GROUP BY slouží k vytváření dílčích shluků, neuvedu-li GROUP BY pak se jedná o agregaci bez klíče výběru, potom je nutné se zamyslet nad poli uvedenými za select - např. budu chtít objem zboží celkem, ale uvedu ještě atr. objednávka, či zákazník. Toto je nepřípustn pustné.

52 SELECT příkaz GROUP BY, HAVING HAVING - pouze užití s klauzulí GROUP BY omezuje výstup agregovaných skupin obdoba WHERE, ale WHERE filtruje řádky jména atributů za HAVING musí být obsaženy v GROUP BY nebo musí být obsaženy v agregované funkci. Použití [NOT]BETWEEN, [NOT]IN,... viz WHERE 61

53 Druhy spojení

54 SPOJENÍ (join ) je-li třeba pracovat s daty z více relací - zřetězenířádků relací dle určité podmínky. Mluvíme o všeobecném joinu Nejčastější spojení dle shody hodnot atributů tzv. ekvivalentní join explicitně spojení v SQL neexistuje, vyjadřuje se pomocí SELECT příkazu: ve FROM - uvedením spojovaných relací za WHERE uvedením podmínky spojení ale jen vnitřní spojení (atributy relací musí být kompatibilní)

55 SPOJENÍ (join ) od standardu SQL2 kromě operátorů <, >, >=, <= lze použít pro spojení join operátory: pro vnější spojení - outer join LEFT JOIN, RIGHT JOIN, FULL JOIN (ve většině současných relací zatím není) spojení přes rovnost (ekvivalentní join ), přirozený join (pojení max množiny shodných atributů)

56 SPOJENÍ (join ) druhy join : vnitřní inner join zobrazí jen ty řádky dvou či více relací, které splňují podmínky spojení vnitřní spojení lze specifikovat 2 způsoby:» implicitně : pomocí klauzule FROM (uvedení tabulek) a WHERE (uvedení podmínek spojení)» explicitně: specifikací v klauzuli FROM ( uvedením tabulek včetně typu a podmínek spojení) :

57 SPOJENÍ (join ) inner join - explicitně jméno relace1[inner] JOIN jméno relace2 ON podmínky spojení [[INNER] JOIN jméno relace3 ON podmínky spojení...] ON klauzule může specifikovat více podmínek -pak spojení logickými operátory AND, OR, NOT lze kombinovat LEFT JOIN a INNER JOIN je-li spojeno více tabulek- vyhodnocování spojení se provádí zleva doprava pokud za FROM bude uvedeno více tabulek bez podmínek spojení - pak výstup odpovídá kartézskému součinu

58 SPOJENÍ (join ) SELECT zakaznik.c-zak, zakaznik.jmeno, objednavka.c-obj, objednavka.d-obj FROM zakaznik, objednavka WHERE zakaznik.c-zak = objednavka.c-zak. SELECT zakaznik.c-zak, zakaznik.jmeno, objednavka.c-obj, objednavka.d-obj FROM zakaznik INNER JOIN objednavka ON zakaznik.c-zak = objednavka.c-zak

59 SPOJENÍ (join ) vnější outer join u vnějšího spojení je důležité, zda se jedná o levéči pravé vnější spojení - není symetrické levé vnější spojení lze uvést pomocí LEFT, event. LEFT OUTER JOIN SELECT zakaznik.c-zak,zakaznik.jmeno, objednavka.c-obj, objednavka.d-obj FROM zakaznik LEFT JOIN objednavka ON zakaznik.c-zak = objednavka.c-zak.

60 SPOJENÍ (join ) levé vnější spojení: jméno relace1[alias ] [INNER LEFT[OUTER]] JOIN jméno relace2 [alias] ON podmínky spojení [INNER LEFT[OUTER]] JOIN jméno relace3 [alias] ON podmínky spojení... pravé vnější spojení: jméno relace1[alias ] RIGHT[OUTER] JOIN jméno relace2 [alias] ON podmínky spojení

61 SPOJENÍ (join ) SELECT klauzule FROM { jméno relace [correlation-name] implicit-join explicit-join } [WHERE klauzule] [GROUP BY atribut [,atribut2]...] [HAVING klauzule] [ORDER BY klauzule]

62 Vyjádření různých spojení SQL92 - rozšíření o spojení křížem» FROM r CROSS JOIN s ( totéž jako FROM a,b) přirozené spojení» FROM r NATURAL JOIN s spojení přes rovnost hodnot zadaných stejnojmenných sloupců»...from r JOIN s USING (a,b) spojení přes obecnou spojovací podmínku» FROM r JOIN s ON a<=b» Tendence = oddělit SELEKCI a SPOJENÍ LZE POUŽÍT PRO VNITŘNÍ I VNĚJŠÍ SPOJENÍ ( INNER, OUTER - LEFT, RIGHT, FULL)

63 SPOJENÍ (join ) - vlastní self join užití, pokud budu potřebovat vícekrát do téže relace je možné uvést tuto relaci (za FROM ) vícekrát - avšak s použitím alias

64 Strukturované dotazy

65 STRUKTUROVANÉ DOTAZY Jazyk SQL je označován jako strukturovaný právě proto, že je možné vnořovat SELECT příkazy Vnořování se užívá pro složitější dotazy, vyhodnocování probíhá postupně po jednotlivých subdotazech

66 STRUKTUROVANÉ DOTAZY Subdotaz ( = vnitřní dotaz, vnitřní příkaz ) je příkaz SELECT vnořený do výběrové podmínky WHERE SQL příkazu, může být i za HAVING Vnitřní příkaz dodává hodnoty pro vyhodnocení podmínky Vnější příkaz je příkaz, do kterého je příkaz SELECT vnořen. vnější příkaz - je zejména SELECT, užívá se pro INSERT, UPDATE, DELETE

67 STRUKTUROVANÉ DOTAZY vzájemné vztahy vnějších a vnitřních dotazů jednoduché souvztažné» vyhodnocování dotazů zevnitř ven: vnitřní příkaz je vyhodnocen jako první, nezávisle na vnějším příkazu vnější příkaz následně využívá výsledků vnořeného dotazu» vyhodnocování dotazů složitější: vnitřní příkaz pracuje na základě hodnot dodaných vnějším příkazem vnitřní dotaz využívá a tedy závisí na hodnotách dodávaných do subdotazu vnějším dotazem

68 STRUKTUROVANÉ DOTAZY - vnitřní dotaz Podle typů výsledků, které vrací lze rozlišit subdotazy: vracející množinu hodnot - vždy jim předchází IN nebo relační operátor s ALL, ANY nebo SOME vracející maximálně jednu hodnotu - uvozené relačním operátorem bez modifikace subdotazy fungující jako test existence - uvozené klíčovým slovem EXISTS

69 STRUKTUROVANÉ DOTAZY - syntaxe příkazu: SELECT {název atributu výraz * } [,...] FROM název relace [,...] WHERE výraz { [ NOT ] IN relační operátor [ ALL ANY SOME ] [ NOT] EXISTS } ( SELECT {název atributu výraz * } [,...] FROM název relace [,...] WHERE výběrové podmínky] )

70 STRUKTUROVANÉ DOTAZY omezení pro subdotazy vnořený SELECT je uzavřený v ( ) v klauzuli WHERE vnějšího příkazu musí platit kompatibilita mezi hodnotou výrazu a hodnotou vrácenou subdotazem klauzule SELECT vnořeného subdotazu, které předchází IN, nebo pouze relační operátor může obsahovat maximálně jeden atribut nebo výraz subdotaz, kterému předchází ALL, ANY, SOME může obsahovat klauzule GROUP BY a HAVING v subdotazu obsahujícím klauzuli GROUP BY nelze použít klíčového slova DISTINCT subdotaz nemůže obsahovat klauzuli ORDER BY

71 STRUKTUROVANÉ DOTAZY subdotazy uvozené [ NOT ] IN WHERE výraz [ NOT ] IN ( SELECT příkaz) výsledkem subdotazu může být množina hodnot ve vnějším dotazu tato množina hodnot nahrazuje výčet hodnot v seznamu, se kterým pracuje IN. Vyhodnocení podmínky vnějšího dotazu: použití IN - pravdivá, je-li zjištěna shoda hodnoty výrazu z WHERE klauzule alespoň s jednou hodnotou z množiny hodnot vrácených subdotazem použit ití NOT IN - pravdivá, pokud nebude rovna žádné z vrácené množiny hodnot

72 STRUKTUROVANÉ DOTAZY uvozené operátory : <, >, =, < >, < =, > = WHERE výraz relační operátor [ ALL ANY SOME ] ( SELECT příkaz) bez ALL, ANY, SOME smí vrátit maximálně jednu hodnotu použit ití v dotazech, kdy s jistotou víme, že dotaz nemůže vrátit více hodnot. ( v případě vrácení více hodnot - chyba) s ALL, ANY, SOME smí vrátit více jak jednu hodnotu ALL, ANY, SOME přesněji specifikují způsob porovnání vrácené množiny hodnot s hodnotou výrazu v klauzuli WHERE

73 STRUKTUROVANÉ DOTAZY uvozené operátory : <, >, =, < >, < =, > = ALL výběrová podmínka vnějšího příkazu bude pravdivá, pokud je výsledek srovnání pravdivý pro všechny hodnoty vrácené vnořeným subdotazem. 4 > ALL (1, 2,3 )...pravda 2 > ALL (1,2,3 )...nepravda

74 STRUKTUROVANÉ DOTAZY uvozené operátory : <, >, =, < >, < =, > = ANY, SOME SOME je pouze ekvivalentem ANY (zavedení SOME vychází ze standardu ANSI / ISO SQL) výběrová podmínka vnějšího příkazu bude pravdivá, pokud je výsledek srovnání pravdivý pro alespoň pro jednu z hodnot vrácených vnořeným subdotazem 4 > ANY (1, 2, 3 )...pravda 2 > ANY (1,2,3 )...pravda

75 STRUKTUROVANÉ DOTAZY subdotazy uvozené [ NOT ] EXISTS WHERE [ NOT ] EXISTS ( SELECT příkaz) výsledkem subdotazu existence či neexistence hodnot u EXISTS podmínka pravdivá - je-li výsledkem subdotazu alespoň 1 řádek př.: SELECT jmeno-zak, kontakt FROM zakaznik WHERE EXISTS(SELECT * FROM objednavky WHERE objednavky.c-zak = zakaznik.c-zak )

76 SQL - strukturovaný dotazovací jazyk DML - operace INTERSECTION UNION EXCEPT DML - dynamické a statické relace DCL ochrana před neautorizovaným přístupem (GRANT, REVOKE) SQL a tvorba aplikací

77 Union, Intersect, and Difference (Except) 114

78 SQL - DML ke zpracování dotazů z více relací operace spojení JOIN strukturované příkazy množinové operace - od verze SQL2» sjednocení ( UNION)» průnik ( INTERSECT)» rozdíl ( EXCEPT )» tyto operace nejsou součástí všech implementací» použití spolu s příkazem SELECT» Za oběma klauzulemi SELECT musí být navzájem kompatibilní atributy

79 SQL -DML operace UNION SELECT. UNION SELECT.. př. SELECT c-pol, nazev, cena-j FROM katalog UNION SELECT c-pol, nazev, cena-j FROM novy-katalog

80 SQL -DML operace INTERSECT SELECT. INTERSECT SELECT.. př. SELECT c-pol, nazev, cena-j FROM katalog INTERSECT SELECT c-pol, nazev, cena-j FROM novy-katalog

81 SQL -DML operace INTERSECT pokud není operátor INTERSECT řešení pomocí struktur. dotazu: př. SELECT c-pol, nazev, cena-j FROM katalog WHERE EXISTS ( SELECT * FROM novy-katalog WHERE katalog.c-pol = novy-katalog.c-pol ) SELECT k.c-pol, k.nazev, k.cena-j FROM katalog k, novy-katalog n WHERE k.c-pol = n.c-pol

82 SQL -DML operace EXCEPT SELECT. EXCEPT SELECT.. př. SELECT c-pol, nazev, cena-j FROM katalog EXCEPT SELECT c-pol, nazev, cena-j FROM novy-katalog

83 SQL -DML operace EXCEPT pokud není operátor EXCEPT řešení pomocí struktur. dotazu: př. SELECT c-pol, nazev, cena-j FROM katalog WHERE NOT EXISTS ( SELECT * FROM novy-katalog WHERE katalog.c-pol = novy-katalog.c-pol )

84 SQL A RELACE relace definované CREATE TABLE jsou považovány za základní, fyzické relace( base tables). odvozené relace dynamické odvozené relace = view statické odvozené relace = snap-shots

85 DATA DEFINITION LANGUAGE

86 DATA DEFINITION LANGUAGE - DDL vytváření databáze a relační struktury vytváření, rušení a aktualizace relací (tabulek) vytváření a rušení indexů vytváření a rušení pohledů - (ne alter) Integritní omezení a DDL (create domain, check, Primary key ) Datové typy podporované SQL-92.

87 DDL vytvoření struktury databaze CREATE DATABASE či CREATE SCHEMA, DROP DATABASE vytvoření struktury databáze CREATE TABLE, CREATE VIEW předefinování a rušení databáze ALTER TABLE, DROP TABLE, DROP VIEW indexace - od SQL89 CREATE INDEX, DROP INDEX

88 DDL - CREATE CREATE TABLE jmeno-relace ({ nazev-atributu datovy-typ [NOT NULL [UNIQUE]] [ DEFAULT hodnota ] [ [NOT] CASE-SENSITIVE] [ FORMAT řetězec ] [ LABEL řetězec ] [ COLUMN-LABEL řetězec ]} [,...] [, { UNIQUE ( {nazev-atributu } [,...] }] )

89 CREATE TABLE CREATE TABLE název ( jméno atr. datový typ [CONSTRAINT název] {[NULL NOT NULL] [PRIMARY KEY UNIQUE} [FOREIGN KEY] REFERENCES jm tab. (jméno sloupce) ON DELETE CASCADE. [, ] [,[CONSTRAINT název] PRIMARY KEY (výčet jmen atributů odděl. čárkou)..,] [,[CONSTRAINT název] FOREIGN KEY.] [, [CONSTRAINT název] CHECK ) OMEZENÍ SLOUPCE OMEZENÍ TABULKY

90 datový typ CHARACTER, NUMERIC DECIMAL - pro numerické s des. mistem INTEGER, SMALLINT - celáčísla FLOAT, REAL, DOUBLE PRECISION od SQL 92 - DATE, TIME, YEAR, MONTH, DAY, HOUR, SECOND LOGICAL

91 Ochrana integrity databáze Integritní omezení (integrity constraints, integrity rules) Specifikace IO musí být podle teorie relačního modelu součástí definice databáze, uloženy v DD (Data Dictionary = slovníku dat =katalogu dat) Integritu rozlišujeme : - doménovou (domain integrity) - Entitní integrita (entity integrity) - Referenční ( referential integrity )

92 Ochrana integrity databáze doménová integrita (domain integrity) - každá hodnota musí být z hodnot pro atribut přípustných - DBS by měl poskytovat prostředky pro definici omezení v Data Dictionary, - v okamžiku definice relace - třeba zabudovat Entitní integrita (entity integrity) - požadavek na zajištění identifikace každého prvku relace (řádek = konkrétní výskyt entity či vztahu) = PK

93 DDL doménová integrita Pomocí klauzule CHECK CREATE TABLE jm (... Mesto CHAR(15) CHECK mesto IN ( Praha, Liberec ), c-pol INTEGER CHECK c-pol > 5 AND c-pol <11)

94 DDL doménová integrita Pomocí CREATE DOMAIN (od SQL2) CREATE DOMAIN pocet INTEGER CHECK VALUE >0 AND VALUE < = 5 CREATE TABLE katalog (..., qty pocet,...

95 DDL entitní integrita PRIMARY KEY(od SQL89) CREATE TABLE katalog (..., c-pol INTEGER PRIMARY KEY,... Pozn. pokud není tato klauzule - pak: klíčové atributy musí být definovány pomocí NOT NULL UNIQUE

96 Ochrana integrity databáze Referenční ( referential integrity ) - řeší logické vztahy mezi více relacemi - logická konzistence obsahu databáze - pomocí FK - řešení logické integrity databáze - 1. Restriktivnířešení - 2. kaskádovitéřešení - 3. Nullifyřešení

97 1. Restriktivnířešení - není dovoleno zrušit řádek, pokud existují v jiných relacích řádky logicky související - hodnotu PK nadřízené tabulky -není možné aktualizovat - do podřízené relace nelze uložit řádek, u něhož hodnota FK neodpovídářádku v nadřízene tabulce

98 2. kaskádovitéřešení - v případě rušenířádku v nadřazené tabulce -ruší se řádky v podřízené relaci se stejnou hodnotou FK - hodnotu PK možné aktualizovat - ale aktualizují se i FK v souvisejících řádcích - v případě ukládánířádku, u něhož hodnota FK neodpovídářádku v nadřízené tabulce - se doplní řádek v nadřízené tabulce

99 3. Nullify řešení - při rušenířádků dochází ke změně hodnot všech souvisejících klíčů na neurčené - tedy NULL hodnoty - v případě ukládánířádku, u něhož hodnota FK neodpovídářádku v nadřízené tabulce - se naplní FK hodnotou neurčenou

100 DDL referenční integrita klauzule REFERENCES (od SQL89)..restriktivnířešení ON DELETE CASCADE, ON UPDATE CASCADE ON DELETE SET NULL, ON UPDATE SET NULL ( od SQL2 ) implementace výjimečně

101 DDL referenční integrita CREATE TABLE zakaznici ( c-zak INTEGER PRIMARY KEY,......) CREATE TABLE objednavky (... c-zak INTEGER REFERENCES zakaznici(czak) CREATE TABLE objednavky (... c-zak INTEGER REFERENCES zakaznici(czak) ON DELETE CASCADE

102 DDL pokud SQL jediný jazyk pro práci s daty (ORACLE, SYBASE) - pak i jinářešení - např. triggery CREATE TRIGGER jmeno-trig ON nazev relace FOR {INSERT DELETE UPDATE[výčet atributů]} [,...] AS výčet SQL příkazů

103 DDL - ALTER TABLE ALTER TABLE jmeno-relace {ADD COLUMN nazev-atributu datovy-typ [NOT NULL [UNIQUE]] [ DEFAULT hodnota ] [ [NOT] CASE-SENSITIVE] [ FORMAT řetězec ] DROP COLUMN nazev-atributu ALTER COLUMN nazev-atributu [ DEFAULT hodnota ] [ {NOT] CASE-SENSITIVE] [ FORMAT řetězec ] [ LABEL řetězec ] [ COLUMN-LABEL řetězec ] }

104 DDL - ALTER TABLE ADD část má-li již relace záznamy DROP část» neurčená hodnota, či hodnota DEFAULT» není -li DEFAULT, pak nelze NOT NULL» nelze UNIQUE zruší atribut včetně hodnot pokud se na něj odkazuje některá z odvozených relací - pak chybové hlášení ALTER část DEFAULT- vliv až na dodatečně vkládanéřádky nelze NOT NULL a UNIQUE

105 DDL - DROP TABLE DROP TABLE nazev relace ruší definici relace včetně obsahu Po zrušení relace budou nepřístupné všechny odvozené relace definované nad zrušenou relací změna definice relace i její zrušení vede k aktualizaci v systémových relacích

106 DDL - indexy ovlivňuje rychlost práce s daty při aktualizaci dat - doba odezvy (souvisí s počtem řádků relace)

107 DDL - indexy z hlediska potřebnosti: pro klíčové atributy atributy, které jsou při výstupu dat používány jako třídící kriterium atributy vystupující při join operacích jako spojovací atributy s vysokou frekvencí přístupu atributy, které jsou častým předmětem dotazů na četnost

108 DDL - indexy indexy - jednoduché, skupinové, unikátní CREATE [ UNIQUE] INDEX nazev-indexu ON nazev-relace ( {nazev-atr} [,...]) DROP INDEX nazev-indexu

109 SQL a relace ZÁKLADNÍ (BÁZICKÉ) STATICKÉ DYNAMICKÉ

110 DYNAMICKÉ A STATICKÉ ODVOZENÉ RELACE DYNAMICKÉ ODVOZENÉ RELACE = VIEW fyzicky neexistují s každou aktualizací obsahu výchozích relací se mění i hodnoty relací odvozených smyslem zjednodušení práce s daty, zajištění nezávislosti na logické struktuře databáze STATICKÉ ODVOZENÉ RELACE = SNAP- SHOTS fyzicky existují

111 SQL DYNAMICKÉ ODVOZENÉ RELACE (virtuální relace, pohledy, viewed tables) Představuji jiný pohled na uložená data, vytvořeny z jednéči více základních relací z hlediska relační algebry: projekce, restrikce (selekce), join mohou být vytvořeny i z jiných VIEW nejsou naplněny daty (fyzicky neexistují), jsou uloženy pouze ve formě definice v DATA DICTIONARY Nad odvozenou relací nelze vytvářet indexy definici nelze modifikovat ( ALTER )

112 SQL ODVOZENÉ RELACE - DDL VYTVOŘENÍ ODVOZENÉ RELACE CREATE VIEW název odvozené relace [ (názvy atributů odvozené relace) ] AS vnořený příkaz SELECT [ WITH CHECK OPTION ] kde: WITH CHECK OPTION verifikuje případné aktualizace obsahu prostřednictvím odvozené relace (v některých implementacích chybí ) RUŠENÍ ODVOZENÉ RELACE DROP VIEW název odvozené relace

113 SQL ODVOZENÉ RELACE použití SELECTu celý vyjma ORDER BY v klauzuli SELECT - atributy relace, aritmetické výrazy, agregační funkce názvy atributů odvozené relace se uvedou, pokud nebudou totožné s názvy uvedenými za klauzulí SELECT Pokud bude daný pohled výchozí pro jiná VIEW nesmíme daný pohled rušit (abychom se nepřipravili o přístup k odvozeným relacím vyšší úrovně) - nemusí být vždy ochrana proti zrušení

114 SQL - ODVOZENÉ RELACE práce s odvozenými relacemi výběr dat z odvozených relací obdoba práce s relacemi základními aktualizace dat - INSERT, UPDATE, DELETE přípustná pouze v některých implementacích jazyka za splnění určitých podmínek (mohou se lišit) aktualizací pohledu - dochází k aktualizaci původních relací

115 SQL ODVOZENÉ RELACE aktualizace dat Standard SQL pro aktualizaci: SELECT ve VIEW nesmí obsahovat GROUP BY, HAVING v klauzuli SELECT nesmí být DISTINCT, agregační funkce, aritmetický výraz klauzule FROM nesmí obsahovat více jak jednu výchozí relaci (pokud touto relací je VIEW, musí být opět aktualizovatelné) za WHERE klauzulí nesmí být vnořený SELECT

116 SQL ODVOZENÉ RELACE Př. CREATE VIEW obj-kat AS SELECT katalog.c-pol, katalog.jmeno, c-obj, qty FROM katalog, r-obj WHERE katalog.c-pol = r-obj.c-pol SELECT * FROM obj-kat WHERE katalog.jmeno = bunda ADIDAS.

117 STATICKÉ ODVOZENÉ RELACE = SNAP-SHOTS pouze v některých implementacích SQL v databázi fyzicky existují jsou naplněny vybranými daty jsou vždy aktualizovatelné, jsou na výchozích relacích nezávislé ( jejich obsah se při aktualizaci výchozích relací nemění) vytvoří se příkazem SELECT klauzuli INTO

118 statické odvozené relace = snap-shots SELECT výčet atributů INTO název odvozené relace FROM název relací [WHERE výběrové podmínky ] struktura relace dána klauzulí SELECT, jednotlivé prvky výsledné relace vyhovují podmínkám za WHERE. Podle standardu SQL není možné uvést GROUP BY a HAVING některé implementace tato omezení nemají (SYBASE )

119 statické odvozené relace = snap-shots v momentě svého vytvoření je jejich obsah totožný s obsahem relací, z nichž je tato relace odvozena vypovídají o stavu databáze v daném okamžiku mohou sloužit jako časový snímek obsahu databáze použití pro testování, zálohování k definici relace s obdobnou strukturou pokud za WHERE dám podmínky, které nevyberou ani jeden řádek (např. 1 = 3 ) pokud příkaz neobsahuje klauzuli INTO - lze obejít» pomocí CREATE TABLE a INSERT s vnořeným SELECT příkazem

120 statické odvozené relace = snap-shots Př. SELECT katalog.c-pol, katalog.jmeno, c-obj, qty INTO obj-kat FROM katalog, r-obj WHERE katalog.c-pol = r-obj.c-pol

121 Data Control Language

122 Přístupová privilegia příkazy GRANT a REVOKE vlastník relace - považován její tvůrce- t.j. uživatelské jméno, pod kterým byla relace definována GRANT k přidělení přístupových privilegií REVOKE k odebrání přístupových privilegií

123 GRANT GRANT {ALL [PRIVILEGES] {SELECT INSERT DELETE UPDATE [(výčet atributů)]} [,...]} ON název relace TO { seznam uživatelů PUBLIC} [ WITH GRANT OPTION ]

124 REVOKE REVOKE {ALL [PRIVILEGES ] {SELECT INSERT DELETE UPDATE [(výčet atributů)]} [,...]} ON název relace FROM { seznam uživatelů PUBLIC}

125 GRANT, REVOKE Příkazy se vztahují pouze k jedné relaci (klauzule ON) lze přiřadit, či odvolat najednou všechna privilegia - ALL nebo explicitně vyjmenovaná pro UPDATE lze udělit privilegia až na hodnotu atributu PUBLIC - v GRANT přiděluje privilegia všem současným i budoucím uživatelům PUBLIC v REVOKE - odjímá privilegia udělená pomocí PUBLIC

126 GRANT, REVOKE WITH GRANT OPTION u příkazu GRANT povoluje uživatelům převádět příslušná privilegia (i část) na další uživatele může odejímat privilegia těm uživatelům, kterým je sám přidělil pokud jsou odejmuta privilegia uživateli s oprávněním GRANT OPTION - jsou odejmuta automaticky i těm, kterým je přidělil Vlastníkovi relace nelze přístupová privilegia odejmout

127 GRANT, REVOKE Privilegia lze udělovat i odebírat i odvozeným relacím při užití příkazů GRANT, REVOKE se účinky kumulují Př. GRANT INSERT, UPDATE ON zakaznik TO referent GRANT SELECT ON zakaznik TO referent REVOKE UPDATE ON zakaznik TO referent uživatel referent má možnosti INSERT, UPDATE a SELECT v relaci zakaznik uživatel referent má možnosti INSERT a SELECT v relaci zakaznik

128 SQL a tvorba aplikací SQL - pracuje s celou množinou řádků relací Χ 4GL (příkazy hostitelských jazyků pracují s jedním řádkem relace pomocí principu cursoru kurzor určuje běžný řádek záznamy jsou zpřístupňovány hostitelským jazykům postupně

129 SQL a tvorba aplikací DECLARE CURSOR, FETCH, OPEN, CLOSE DECLARE název-kurzoru CURSOR FOR příkaz SELECT definuje kurzor OPEN název-kurzoru nastavuje ukazovátko před první z množiny vybraných řádků FETCH název-kurzoru INTO {nazev parametru nazev-promenne}[,...]} zpřístupněnířádků dané množiny, příkaz vždy přesune ukazovátko na další řádek hodnotami řádku naplní předem definované proměnné.. (klauzule INTO) CLOSE název-kurzoru ukončení práce kurzoru

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

Informač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

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

Kurz 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íce

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

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE 2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE Studijní cíl Tento blok je věnován základní syntaxi příkazu SELECT, pojmům projekce a restrikce. Stručně zde budou představeny příkazy

Více

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

6. 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íce

Databáze SQL SELECT. David Hoksza http://siret.cz/hoksza

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

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

Databá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íce

Jazyk SQL 3 - DML, DDL, TCL, DCL

Jazyk SQL 3 - DML, DDL, TCL, DCL Jazyk SQL 3 - DML, DDL, TCL, DCL Michal Valenta Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2012/13 https://edux.fit.cvut.cz/courses/bi-dbs/

Více

RELAČNÍ DATABÁZOVÉ SYSTÉMY

RELAČNÍ DATABÁZOVÉ SYSTÉMY RELAČNÍ DATABÁZOVÉ SYSTÉMY VÝPIS KONTROLNÍCH OTÁZEK S ODPOVĚDMI: Základní pojmy databázové technologie: 1. Uveďte základní aspekty pro vymezení jednotlivých přístupů ke zpracování hromadných dat: Pro vymezení

Více

Jazyk SQL slajdy k přednášce NDBI001

Jazyk SQL slajdy k přednášce NDBI001 Jazyk SQL slajdy k přednášce NDBI001 Jaroslav Pokorný MFF UK, Praha pokorny@ksi.mff.cuni.cz Dotazovací jazyky 1 Přehled SQL92 1) jazyk pro definici dat, 2) interaktivní jazyk pro manipulaci dat, 3) jazyk

Více

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

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íce

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

Databá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íce

1. Relační databázový model

1. Relační databázový model 1. Relační databázový model Poprvé představen 1969 (Dr. Edgar F. Codd) IBM Založeno na Teorii množin Predikátové logice prvního řádu Umožňuje vysoký stupeň nezávislosti dat základ pro zvládnutí sémantiky

Více

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

Databáze I. Přednáška 4 Databáze I Přednáška 4 Definice dat v SQL Definice tabulek CREATE TABLE jméno_tab (jm_atributu typ [integr. omez.], jm_atributu typ [integr. omez.], ); integritní omezení lze dodefinovat později Definice

Více

Kapitola 4: SQL. Základní struktura

Kapitola 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íce

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

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,... Jazyk SQL 1 Přehled SQL 1) jazyk pro definici dat (DDL), 2) jazyk pro manipulaci dat (DML), 3) jazyk pro definice pohledů 4) jazyk pro definice IO 5) jazyk pro přiřazení přístupových práv (DCL) 6) řízení

Více

Databázové systémy trocha teorie

Databázové systémy trocha teorie Databázové systémy trocha teorie Základní pojmy Historie vývoje zpracování dat: 50. Léta vše v programu nevýhody poměrně jasné Aplikace1 alg.1 Aplikace2 alg.2 typy1 data1 typy2 data2 vytvoření systémů

Více

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

B0M33BDT 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íce

- sloupcové integritní omezení

- 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íce

PL/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. 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íce

4IT218 Databáze. 4IT218 Databáze

4IT218 Databáze. 4IT218 Databáze 4IT218 Databáze Pátá přednáška Dušan Chlapek (katedra informačních technologií, VŠE Praha) 4IT218 Databáze Pátá přednáška SQL - DDL - dokončení SQL - DCL Vlastnosti relačních databázových systémů. Princip

Více

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

Jaký 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íce

Jazyk 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 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íce

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS 7. Integrita a bezpečnost dat v DBS 7.1. Implementace integritních omezení... 2 7.1.1. Databázové triggery... 5 7.2. Zajištění bezpečnosti dat... 12 7.2.1. Bezpečnostní mechanismy poskytované SŘBD... 13

Více

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS 7. Integrita a bezpečnost dat v DBS 7.1. Implementace integritních omezení... 2 7.1.1. Databázové triggery... 5 7.2. Zajištění bezpečnosti dat... 12 7.2.1. Bezpečnostní mechanismy poskytované SŘBD... 13

Více

Materiál ke cvičením - SQL

Materiál ke cvičením - SQL Materiál ke cvičením - 1. Stručná syntaxe vybraných příkazů jazyka (detailní syntaxe příkazů je uvedena on-line manuálech přístupných z prostředí sítě VŠE) SELECT výběr a zobrazení hodnot z databáze: SELECT

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 Ú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íce

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

Jazyk SQL databáze SQLite. připravil ing. petr polách Jazyk SQL databáze SQLite připravil ing. petr polách SQL - úvod Structured Query Language (strukturovaný dotazovací jazyk 70. léta min. století) Standardizovaný dotazovací jazyk používaný pro práci s daty

Více

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

Databá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íce

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

KIV/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

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

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava Šablona 32 VY_32_INOVACE_038.ICT.34 Tvorba webových stránek SQL stručné minimum OA a JŠ Jihlava, VY_32_INOVACE_038.ICT.34 Číslo

Více

Konceptuální modelování a SQL

Konceptuální modelování a SQL Konceptuální modelování a SQL přednáška č.? 1/90 Vytváření IS Analýza Návrh Implementace Testování Předání SW Jednotlivé fáze mezi sebou iterují 2/90 Proč modelovat/analyzovat? Standardizované pracovní

Více

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

Databáze 2011/2012 SQL DDL (CREATE/ALTER/DROP TABLE), DML (INSERT/UPDATE/DELETE) RNDr.David Hoksza, Ph.D. http://siret.cz/hoksza Databáze 2011/2012 SQL DDL (CREATE/ALTER/DROP TABLE), DML (INSERT/UPDATE/DELETE) RNDr.David Hksza, Ph.D. http://siret.cz/hksza Osnva Seznámení s SQL Server Management Studiem (SSMS) Základní architektura

Více

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

Databá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íce

Databázové systémy. Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz

Databázové systémy. Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz Databázové systémy Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz Vývoj databázových systémů Ukládání dat Aktualizace dat Vyhledávání dat Třídění dat Výpočty a agregace 60.-70. léta Program Komunikace Výpočty

Více

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

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 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íce

Databázové systémy I

Databá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íce

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

Databázové systémy Cvičení 5.2 Databázové systémy Cvičení 5.2 SQL jako jazyk pro definici dat Detaily zápisu integritních omezení tabulek Integritní omezení tabulek kromě integritních omezení sloupců lze zadat integritní omezení jako

Více

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

Optimalizace dotazů a databázové transakce v Oracle

Optimalizace dotazů a databázové transakce v Oracle Optimalizace dotazů a databázové transakce v Oracle Marek Rychlý Vysoké učení technické v Brně Fakulta informačních technologií Ústav informačních systémů Demo-cvičení pro IDS 22. dubna 2015 Marek Rychlý

Více

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

Návrh a tvorba WWW stránek 1/14. PHP a databáze Návrh a tvorba WWW stránek 1/14 PHP a databáze nejčastěji MySQL součástí balíčků PHP navíc podporuje standard ODBC PHP nemá žádné šablony pro práci s databází princip práce s databází je stále stejný opakované

Více

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

Marian 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íce

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

Databáze I. 5. přednáška. Helena Palovská Databáze I 5. přednáška Helena Palovská palovska@vse.cz SQL jazyk definice dat - - DDL (data definition language) Základní databáze, schemata, tabulky, indexy, constraints, views DATA Databáze/schéma

Více

Dotazovací jazyk SQL I

Dotazovací jazyk SQL I Dotazovací jazyk SQL I Historický vývoj I IBM - 70. léta - prototyp relačního DBMS - System R 80. léta - základ 2 komerčních DBMS: SQL/DS, DB2 SQL jako standard Standardizační instituce ANSI: American

Více

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

SQL v14. 4D Developer konference. 4D Developer conference 2015 Prague, CZ Celebrating 30 years SQL v14 4D Developer konference Obsah části SQL Porovnání 4D a SQL Nové příkazy SQL Upravené příkazy SQL Optimalizace SQL SQL v14 porovnání Definice dat - struktury Manipulace s daty Definice dat Vytvoření

Více

Structured Query Language SQL

Structured Query Language SQL Structured Query Language SQL Spouště DML Řízení transakcí Vložené a dynamické SQL SQL DDL Spouště Integritní omezení Bezpečnost Přístupová práva SQL SEQUEL-XRM, IBM v roce 1974 Neprocedurální jazyk říkáme

Více

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

Databáze I. Přednáška 6 Databáze I Přednáška 6 SQL aritmetika v dotazech SQL lze přímo uvádět aritmetické výrazy násobení, dělení, sčítání, odčítání příklad z minulé přednášky: zdvojnásobení platu všem zaměstnancům UPDATE ZAMESTNANEC

Více

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

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce Databázové systémy 2 Jméno a příjmení: Jan Tichava Osobní číslo: Studijní skupina: čtvrtek, 4 5 Obor: ININ SWIN E-mail: jtichava@students.zcu.cz Databázové systémy II. KIV/DB2 LS 2007/2008 Zadání semestrální

Více

Stručný obsah. část III Aktualizace dat Kapitola 10: Aktualizace databáze 257 Kapitola 11: Integrita dat 275 Kapitola 12: Zpracování transakcí 307

Stručný obsah. část III Aktualizace dat Kapitola 10: Aktualizace databáze 257 Kapitola 11: Integrita dat 275 Kapitola 12: Zpracování transakcí 307 Stručný obsah část I Přehled jazyka SQL Kapitola 1: Úvod 27 Kapitola 2: Stručný úvod do jazyka SQL 37 Kapitola 3: Jazyk SQL z širšího pohledu 45 Kapitola 4: Relační databáze 69 Část II Získávání dat Kapitola

Více

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

SPŠS Č.Budějovice Obor Geodézie a Katastr nemovitostí 3.ročník ATRIBUTY ZÁKLADN POJMY VÝBĚR PRVKŮ DLE ATRIBUTŮ SPŠS Č.Budějovice Obor Geodézie a Katastr nemovitostí 3.ročník ATRIBUTY ZÁKLADN POJMY VÝBĚR PRVKŮ DLE ATRIBUTŮ GIS jako obraz reálného světa Reálný svět je pozorován pozorovatelem. Ten vytváří na základě

Více

Vzorové 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 (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íce

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

Databá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íce

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

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

3. Jazyky relačních databázových systémů

3. Jazyky relačních databázových systémů 3. Jazyky relačních databázových systémů 3.1. Tabulky ilustračního příkladu - Spořitelna... 3 3.2. Jazyk SQL... 5 3.2.1. Úvod... 5 3.2.2. Definice dat... 7 3.2.3. Manipulace s daty... 14 3.2.4. Pohledy...

Více

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

Ú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í 8 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování Entita Entitní typ

Více

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

Databáze I. 1. přednáška. Helena Palovská Databáze I 1. přednáška Helena Palovská palovska@vse.cz Co je databáze Mnoho dat Organizovaných používá se model uspořádání Řízený přístup k datům přijímá požadavky v jazyce modelu umožňuje sdílení dat

Více

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

XMW4 / 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

Transformace konceptuálního modelu na relační

Transformace konceptuálního modelu na relační Transformace konceptuálního modelu na relační Michal Valenta Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze c Michal Valenta, 2016 BI-DBS, LS 2015/16

Více

Databázové systémy Tomáš Skopal

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

PG 9.5 novinky ve vývoji aplikací

PG 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íce

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

Ú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íce

KIV/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. 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íce

Relační databázový model. Vladimíra Zádová, KIN, EF, TUL- DBS

Relační databázový model. Vladimíra Zádová, KIN, EF, TUL- DBS Relační databázový model Databázové (datové) modely základní dělení klasické databázové modely relační databázový model relační databázový model Základní konstrukt - relace relace, schéma relace atribut,

Více

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

Ú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íce

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

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ř. 2 přednáška 2 října 2012 10:32 Souborově orientované uchování dat Slabý HW Není možné uchovávat "velká data" - maximálně řádově jednotky MB Na každou úlohu samostatná aplikace, která má samostatná data

Více

Co 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 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íce

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

Databázové systémy. Dotazovací jazyk SQL - II Databázové systémy Dotazovací jazyk SQL - II SELECT I SELECT FROM WHERE GROUP BY HAVING

Více

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

DJ2 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íce

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

KIV/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

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

Dotazová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íce

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

Ú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íce

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

InnoDB 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

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

FAKULTA STAVEBNÍ STUDIJNÍ PROGRAM: GEODÉZIE A KARTOGRAFIE TYP PROGRAMU: MAGISTERSKÝ STUDIJNÍ OBOR: GEOMATIKA ÚVOD DO ZPRACOVÁNÍ PROSTOROVÝCH DAT FAKULTA STAVEBNÍ STUDIJNÍ PROGRAM: GEODÉZIE A KARTOGRAFIE TYP PROGRAMU: MAGISTERSKÝ STUDIJNÍ OBOR: GEOMATIKA ÚVOD DO ZPRACOVÁNÍ PROSTOROVÝCH DAT SEMESTRÁLNÍ PROJEKT Josef Gruber Pavel Kopecký Akademický

Více

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

Vkládání, aktualizace, mazání Kapitola 4 Vkládání, aktualizace, mazání Tématem několika předchozích kapitol byly základní techniky pokládání dotazů, které se všechny zaměřovaly na zisk dat z databáze. V kapitole čtvrté půjde o něco

Více

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

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 1 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 nepracovala. 2 3 4 5 6 7 8 9 10 11 12 Autor zadání je doc.

Více

UNIVERZITA PALACKÉHO V OLOMOUCI

UNIVERZITA PALACKÉHO V OLOMOUCI UNIVERZITA PALACKÉHO V OLOMOUCI PEDAGOGICKÁ FAKULTA Bakalářská práce 2014 Lenka Koutná UNIVERZITA PALACKÉHO V OLOMOUCI PEDAGOGICKÁ FAKULTA Katedra technické a informační výchovy Bakalářská práce Lenka

Více

Materializované pohledy

Materializované pohledy Materializované pohledy Pavel Baroš, 2010 Obsah Materializované pohledy Co přináší? Řešení ostatních DBS syntaxe a semantika pro: Oracle, MS SQL, DB2 ostatní Možné řešení pro PostgreSQL PostgreSQL 2 Materializované

Více

Kapitola 6: Omezení integrity. Omezení domény

Kapitola 6: Omezení integrity. Omezení domény - 6.1 - Omezení domény Referenční integrita Aserce Spouštěče (Triggers) Funkční závislosti Kapitola 6: Omezení integrity Omezení domény Omezení integrity zabraňují poškození databáze; zajišťují, že autorizované

Více

Databázové systémy I

Databá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íce

Jazyk PL/SQL Úvod, blok

Jazyk PL/SQL Úvod, blok Jazyk PL/SQL Úvod, blok 1 Bc. Tomáš Romanovský Procedural Language for Structured Query Language Součást systému Oracle, rozšíření SQL o procedurální rysy Prostředky pro vytváření a spouštění programových

Více

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

6. 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íce

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

Fakulta 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íce

MySQL manuál. Copyright: Adam Jun 2003 E-mail: jun@gene.cz Stránky manuálu: http://mm.gene.cz/

MySQL manuál. Copyright: Adam Jun 2003 E-mail: jun@gene.cz Stránky manuálu: http://mm.gene.cz/ MySQL manuál Copyright: Adam Jun 2003 E-mail: jun@gene.cz Stránky manuálu: http://mm.gene.cz/ 1. ÚVOD - MySQL je relační databázový systém skládající se z jedné nebo více databází - databáze je tvořena

Více

3. Jazyky relačních databázových systémů

3. Jazyky relačních databázových systémů 3. Jazyky relačních databázových systémů 3.1. Tabulky ilustračního příkladu - Spořitelna... 3 3.2. Jazyk SQL... 5 3.2.1. Úvod... 5 3.2.2. Definice dat... 7 3.2.3. Manipulace s daty... 14 3.2.4. Pohledy...

Více

Databázové systémy. Integritní omezení. Vilém Vychodil. V. Vychodil (KMI/DATA1, Přednáška 9) Integritní omezení Databázové systémy 1 / 33

Databázové systémy. Integritní omezení. Vilém Vychodil. V. Vychodil (KMI/DATA1, Přednáška 9) Integritní omezení Databázové systémy 1 / 33 Databázové systémy Integritní omezení Vilém Vychodil KMI/DATA1, Přednáška 9 Databázové systémy V. Vychodil (KMI/DATA1, Přednáška 9) Integritní omezení Databázové systémy 1 / 33 Přednáška 9: Přehled 1 Relační

Více

Databázové systémy a SQL

Databázové systémy a SQL Databázové systémy a SQL Daniel Klimeš Autor, Název akce 1 About me Daniel Klimeš Vzdělání: Obecná biologie PGS: onkologie Specializace: klinické databáze Databáze ORACLE klimes@iba.muni.cz Kotlářská 2,

Více

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

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 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íce

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

Informač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íce

2. blok část A Jazyk SQL, datové typy

2. blok část A Jazyk SQL, datové typy 2. blok část A Jazyk SQL, datové typy Studijní cíl Tento blok je věnován jazyku SQL, jeho vývoji, standardizaci a problémy s přenositelností. Dále je zde uveden přehled datových typů dle standardu SQL

Více

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

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23 Stručný obsah 1. Stručný úvod do relačních databází 13 2. Platforma 10g 23 3. Instalace, první přihlášení, start a zastavení databázového serveru 33 4. Nástroje pro administraci a práci s daty 69 5. Úvod

Více

Maturitní témata z předmětu PROGRAMOVÉ VYBAVENÍ pro šk. rok 2012/2013

Maturitní témata z předmětu PROGRAMOVÉ VYBAVENÍ pro šk. rok 2012/2013 Maturitní témata z předmětu PROGRAMOVÉ VYBAVENÍ pro šk. rok 2012/2013 1. Nástroje programu MS Word a) vysvětlete pojmy šablona, styl (druhy stylů) význam a užití, b) vysvětlete pojem oddíl (druhy oddílů),

Více

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

8.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íce

Databázové systémy úvod

Databázové systémy úvod Databázové systémy úvod Michal Valenta Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze c Michal Valenta, 2016 BI-DBS, LS 2015/16 https://edux.fit.cvut.cz/courses/bi-dbs/

Více

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 Čí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íce

Práva a role. Martin Polák. NDBI013 Administrace Oracle

Práva a role. Martin Polák. NDBI013 Administrace Oracle Práva a role Martin Polák NDBI013 Administrace Oracle Práva a role Práva slouží k omezení možností uživatele právě tak, aby mohl provádět úkoly jemu svěřené. Role jsou pojmenované skupiny práv a slouží

Více

Databáze II. 1. přednáška. Helena Palovská palovska@vse.cz

Databáze II. 1. přednáška. Helena Palovská palovska@vse.cz Databáze II 1. přednáška Helena Palovská palovska@vse.cz Program přednášky Úvod Třívrstvá architektura a O-R mapování Zabezpečení dat Role a přístupová práva Úvod Co je databáze Mnoho dat Organizovaných

Více

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

OBJECT DEFINITION LANGUAGE. Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013 OBJECT DEFINITION LANGUAGE Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013 ODL a OQL ODL Objektové Object Definition Language popis objektového schéma SQL DDL Relační Data Definition Language příkazy CREATE,

Více

Temporální databáze. Jan Kolárik Miroslav Macík

Temporální databáze. Jan Kolárik Miroslav Macík Temporální databáze Jan Kolárik Miroslav Macík 2012 Úvod jak zachytit časově proměnnou povahu jevů konvenční databáze stav pouze v jednom bodě časové linie aktuální obsah ~ statický snímek (snapshot) temporální

Více

Tabulka fotbalové ligy

Tabulka fotbalové ligy Semestrální práce na X36DB2 Michal Rezler Jan Zmátlík Tabulka fotbalové ligy a tabulka střelců 8. prosinec 2011 Obsah 1 Zadání....................................................... 3 1.1 Stručný popis.............................................

Více

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

Ú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íce

Jazyk SQL. Jaroslav Pokorný MFF UK, Praha J. Pokorný 1

Jazyk SQL. Jaroslav Pokorný MFF UK, Praha J. Pokorný 1 Jazyk SQL Jaroslav Pokorný MFF UK, Praha pokorny@ksi.ms.mff.cuni.cz J. Pokorný 1 Přehled SQL92 1) jazyk pro definici dat, 2) interaktivní jazyk pro manipulaci dat, 3) jazyk pro manipulaci dat v hostitelské

Více