SQL Structured Query Language

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

Download "SQL Structured Query Language"

Transkript

1 SQL Structured Query Language Referenční příručka Zdeněk Šerý

2 OBSAH 1. Základní informace SQL Proč používat SQL Relační operátory Rekurze Propojení (relace) Prvky SQL Definice dat ALTER TABLE CREATE INDEX CREATE TABLE CREATE VIEW DROP Editace dat DELETE INSERT UPDATE Dotazování dat SELECT Řízení transakcí COMMIT ROLLBACK SAVEPOINT Administrace dat ALTER PASSWORD GRANT REVOKE

3 1. Základní informace Úvodem bych rád poznamenal, že tato kniha není určena pro specifický okruh lidí jako jsou pokročilí programátoři. Jejím úkolem je být pomocníkem každému, kdo používá nebo teprve chce používat SQL na LAN, WAN, internetu či intranetu. V rukou máte vynikajícího rádce pro přechod z databází Foxpro, Dbase, Microsoft Access a jim podobných na databázové servery. Zkušení programátoři a databázový nadšenci, kterým tato příručka nebude stačiti mohou detailní nebo specifické informace získat z materiálů dodaných k databázovému serveru. Při psaní této knihy jsem se snažil sladit obsah předkládané problematiky se stávajícím standardem SQL a SQL Anywhere professional. Pro většinu srovnávacích příkladů jsem použil databázi Foxpro 2.5, jelikož je tato databáze jednoznačně nejrozšířenější. Syntaktický diagram bude v grafické podobě ukazovat definici vysvětlovaného výrazu : 2. SQL SQL (Structured Query Language strukturovaný dotazovací jazyk) je používán na řízení relačních databází. Jeho počátek bychom nalezli v roce 1970 v kalifornii v IBM Research Laboratory v San Jose. SQL je určen pro programovací jazyk neboť neobsahuje formátovací příkazy pro reporty ani pro výstup na interaktivní konzoli. SQL je neprocedurální což znamená, že váš požadavek určuje co chcete dostat zpět za data, ale ne jak je získat. Řada z vás se jistě podiví proč používat databázový server, když stávající databáze Foxpro nebo obdobná jiná je zcela vyhovující. Použiji celkem vyhovující analogii s používáním automobilu. Pokud jste dosud neseděli v jaguáru tak nevíte jaká vlastně může jízda být a nešvary z provozu stávajícího trabanta považujete za běžné. Jako každá analogie i tato trochu pokulhává za skutečností v tom, že nepostihuje výhodu chráněného současného víceuživatelského přístupu. Databáze Foxpro vlastně není databází, ale pouze databázovou tabulkou. 2

4 Databáze je soubor dat spravovaný databázovým serverem. Je realizován jako jeden, dva, vyjímečně několik málo souborů což je odvislé od verze a druhu databázového serveru. Obr. 3.I. Kategorie SQL příkazů SQL obsahuje řadu příkazů pro operace seskupené do těchto kategorií : a) Definice dat vytváření databázových objektů jako jsou databáze, tabulky, indexy nebo pohledy Databáze obsahuje jednu nebo více tabulek, a ty obsahují sloupce a řádky : 3

5 ALTER TABLE CREATE INDEX CREATE TABLE CREATE VIEW DROP b) Editace dat aktualizace, přidávání mazání dat v databázi DELETE INSERT UPDATE c) Dotazování dat dotazy na data v databázi SELECT d) Řízení transakcí zajišťování integrity, když jsou prováděny změny dat v databázi COMMIT ROLLBACK SAVEPOINT e) Administrace dat řízení přístupu a ochrany databáze ALTER PASSWORD GRANT REVOKE 2.1. Proč používat SQL Seznam SQL příkazů : ALTER PASSWORD Dovolí uživateli změnit heslo ALTER TABLE Mění popis tabulky CHECK DATABASE Kontroluje integritu databáze COMMENT ON Nahradí nebo přidá komentář do popisu tabulky, pohledu nebo sloupce v systémovém katalogu COMMIT Zakončí logickou jednotku práce a přenese do databáze vámi provedené změny CREATE INDEX Vytváří index k tabulce CREATE SYNONYM Vytváří alternativní jméno pro tabulku nebo pohled CREATE TABLE Definuje tabulku CREATE VIEW Definuje pohled na jednu nebo více tabulek nebo pohledů DELETE Maže jeden nebo více sloupců v tabulce DROP Vyjme objekt ze systémového katalogu GRANT Přidělí databázovou autorizaci nebo práva na tabulky a pohledy INSERT Vloží jeden nebo více sloupců do existující tabulky LABEL Přidá nebo změní popisku v katalogu popisek REVOKE Vyjme databázovou autorizaci nebo privilegia z tabulek nebo pohledů ROLLBACK Zakončí logickou jednotku práce a vrátí zpět změny provedené od poslední transakce SELECT Dotazuje se na data v tabulkách nebo pohledech SAVEPOINT Přiřadí (spojí) kontrolní bod k transakci UNION Spojí výsledky ze dvou nebo více SELECTů UPDATE Nastaví sloupce v tabulkách nebo pohledech současnými hodnotami UPDATE STATISTIC Aktualizuje statistiky pro index dané tabulky 4

6 SQL je velmi silný nástroj pro práci s daty viz předešlých 5 bodů. Je snadný na používání a to velmi. Nyní vám představím 3 hlavní důvody proč používat databázový server : 1) z více aplikací a z více počítačů najednou, a to jak pro zápis tak pro čtení 2) množství dat svojí kvantitou nebo strukturou je již tak velké, že původní databázový prostředek (Foxpro) již řeší tento stav s problémy nebo vůbec sklady, fakturace 3) bezpečnost a integrita dat je natolik důležitá což je vlastně vždy, i když si to uživatel uvědomí až v případě jejich ztráty nebo zničení -, že databázový server je nutností. ad 1. chráněný síťový přístup ke sdíleným datům tento přístup k datům je již aplikační samozřejmostí. Uveďme si příklad : nadstavbový software pro management vytvořený v aplikaci MS Excel uživatel 1 přistupuje k datům databázového serveru k databázi Protect k tabulkám faktury, fakturydetail, uhrady, odberatele ; aplikační software sklad uživatel 2 z jiného počítače a z jiného místa ve stejnou dobu ke stejné databázi k tabulkám hlavnisklad, mezisklad, zbozi, odberatele; uživatel 3 ze vzdálené sítě obchodní ředitel napojený přes svého laptopa a internet k databázovému serveru ke stejné databázi k tabulce odberatele. Všichni tito uživatelé mohou díky databázovému serveru provádět jakékoliv operace s daty jim přístupnými. Jak vidíte na obrázku 3.I. lze s výhodou podpory produktu NetImpact Dynamo komunikovat s dnes velmi atraktivní a perspektivní oblastí s internetem. Vyvíjení aplikací pro internet je již nutností a databázový server na internetu je řešení pro větší množství dat např. pro prezentaci zboží a služeb určité firmy, jenž tímto způsobem nabízí k obchodování po internetu. Složitost a hlavně počet uživatelů je ve skutečnosti mnohem větší a to je hlavní důvod proč používat SQL. Jak již z názvu vyplívá je SQL standard a proto je nezávislý na použitém prostředku pro zpřístupnění dat. Jak aplikace MS Excel tak nezávislé programovací prostředky Delphi, Centura atd. tak vývojové prostředí různých databázových firem a řada dalších prostředků standard SQL podporují a lze všemi těmito prostředky nezávisle na sobě či databázovém serveru přistupovat k databázím tímto serverem spravovaným. Ve své podstatě je SQL jednoduchý programovací jazyk, kterým lze přistupovat k jakékoliv relační databázi a lze jej použít i v interaktivním režimu z konzolové aplikace, která je u Foxpro RQBE nástroj a u Anywhere je to ISQL. Jsme-li připojeni k jakékoliv databázi přes ODBC lze jako konzolovou aplikaci použít MSQRY32. ad. 2. Databáze stylu Foxpro nejsou navrženy pro větší počet vět, proto jsou také nazývány právem lokální. Při nárůstu velikosti těchto databází nad určitou hranici dochází k výraznému snížení rychlosti těchto databází nebo dokonce je tato velikost limitní a nesmí býti překročena. A zde nastupuje nutnost použít databázi vytvořenou pro práci s velkým množstvím dat. ad. 3. Bezpečnost a integrita dat je zajišťována na několika úrovních. Už samotné použití databázového serveru snižuje programovou náročnost vlastní aplikace, která musí zajistit operace a funkce zajišťované databázovým serverem. DB server je velmi dobře napsaná aplikace, která je také odladěná a vyzkoušená což je další faktor zvýšení bezpečnosti dat. Jak užívat SQL : SQL můžete používat dvěma způsoby : 1) Interaktivně skrze zprostředkovatelský program (interaktivní konzole) 2) Pomocí programovacího jazyka C, Delphi a jiných, kterými vytvoříte klientskou aplikaci, tiskovou sestavu nebo např. eventuelně service na Windows NT server. 5

7 Kdo používá SQL : 1) Koncoví uživatelé 2) Databázoví programátoři 3) Databázoví správci S rozdílem v přidělených právech počínaje uživateli konče správci. K datům spravovaným databázovým serverem nelze jinak přistoupit než přes tento databázový server (pokud je spuštěn) a při přístupu k databázovému souboru jinými prostředky a jinými způsoby je nemožný jsou vracena hlášení přístup odepřen, narušeno sdílení, Soubor nemůže být otevřen atd. což u lokáních databází neplatí. Pokud tyto databáze umístíme na Souborový server Novell, pak můžeme např. u Foxpro použít Novell modul pro řízení transakcí, ale databázový soubor není na tomto serveru (ani na jiném) spravován, udržován ani chráněn. Tabulky Paradoxu si vytvářejí na serveru zámky (soubory LCK), ale při pádu klientské stanice zůstane tento zámek na serveru a indikuje uzamčená data. V těchto příkladech bych mohl pokračovat ještě dosti dlouho a je jasné, že se tyto lokální databáze snaží všemi prostředky napodobovat databázové servery, ale pokud to budou činit pouze lokálními prostředky pak bude účinek nedokonalý a pokud to budou prostředky serverové pak se nejedná o nic jiného než o databázový server. Databázové servery mají řadu utilit pro zachování dat jako např. zálohování, obnovování dat z log. souborů log. soubory jsou soubory změn provedené v dané databázi od zapnutí logu či poslední obnovy, zrcadlení databází, konverze databáze do různých formátů a naopak. Pro přístup k databázi poskytují ochranu pomocí jména a hesla připojujícího se uživatele a následná získaná práva jsou na úrovni aplikace databázového serveru. Tyto práva spolu s právy na síťovém operačním systému tvoří téměř nepřekonatelnou ochranu dat. Bohužel se někteří programátoři snaží nahrazovat ochranu na úrovni databázového serveru vlastními programátorskými dialogy s vlastním rádoby dobře promyšleným systémem práv. SQL umožňuje uživateli vybudovat komplex dotazů. To je umožněno pomocí : relační operátory rekurze propojení (joins) Relační operátory ( >,<,=,>=,<>,!= ) dovolují uživateli vyjádřit prohledávací podmínku pro dotaz. Např. jestliže tabulka ZAMEST obsahuje zaměstnanecké informace (položky = sloupce - jmeno, adresa, telefon, vek, plat, oddeleni) pak následující dva dotazy mohou být zodpovězeny pomocí relačních operátorů. příklady : Dej mi (vyber) telefonní číslo slečny Hájkové : SELECT JMENO, TELEFON FROM ZAMEST WHERE JMENO= Hájková Dej mi seznam všech zaměstnanců, kteří mají plat větší než : SELECT JMENO, PLAT FROM ZAMEST WHERE PLAT> Rekurze v praxi znamená, že výstup jednoho SQL dotazu (poddotazu) je použit jako vstup do dotazu jiného. Tato technika je nazývána zahnízděním a je používána i v klasických programovacích jazycích. Hlavní select dotaz a subselect poddotaz se mohou odkazovat na stejnou tabulku. Použití poddotazu je v některých logických podmínkách pro výběr nevyhnutelné, ale musíte být opatrní při konstrukci tohoto dotazu. Poddotaz značně zpomaluje činnost dotazu neboť 6

8 zu. Poddotaz značně zpomaluje činnost dotazu neboť z matematického hlediska je počet zpracovávaných vět roven součinu počtu vět tabulky z prvního dotazu a tabulky z poddotazu. Příklad : Vyber jmeno z tabulky Zamest kde plat je větší nebo roven a musí mít samostatný telefon SELECT JMENO AS JMENO1 FROM ZAMEST WHERE PLAT>=12500 AND NOT TELEFON IN (SELECT TELEFON, JMENO FROM ZAMEST WHERE JMENO<>JMENO1) Druhý SELECT uvedený v příkladu je volán jako poddotaz a celý výraz by mohl být vyřešen mnohem pohodlněji, ale pouze z toho důvodu, že se jedná o poddotaz na stejnou tabulku. Tento postup se používá pokud nelze stejný problém vyřešit pomocí propojení neboť tento způsob je značně pomalejší Propojení (joins) slouží k přinesení dat (řádků) z rozdílných tabulek a spojení do řádku jednoho. Tyto propojení lze získat v poměru 1:1, 1:M, N:M, M:1. To v praxi znamená : pro jeden řádek (větu) tabulky první existuje pouze jeden řádek v tabulce druhé, např. pro každou fakturu v tabulce faktur existuje pouze jeden zaměstnanec, který ji vystavil v tabulce Zamest SELECT FAKTURY.CFAKT, ZAMEST.JMENO FROM FAKTURY, ZAMEST WHERE FAKTURY.KODZAM =ZAMEST.KODZAM pro jeden řádek (větu) tabulky první existuje 0 až bůhvíkolik řádků v tabulce druhé, např. pro každou fakturu v tabulce faktur existuje 0 až hodně úhrad v tabulce Uhrady (faktura nebyla uhrazena, nebo byla uhrazena několika platbami atd.) SELECT FAKTURY.CFAKT FROM FAKTURY, UHRADY WHERE UHRA- DY.CFAKT = FAKTURY.CFAKT - pro několik řádek (vět) tabulky první existuje 0 až bůhvíkolik řádků v tabulce druhé platných podle propojovacího výrazu. Toto propojení je dosti specifické a znamená, že v první tabulce jsou věty se stejnými daty, která jsou na výstupu a v tabulce druhé jsou věty k nim přiřazené dle propojení. Výsledkem může a nemusí být množina vět s duplicitními daty. Problematika propojení je rozsáhlejší a pokud začínáte s SQL jistě mnohokrát nastavíte špatně propojení mezi databázovými objekty. S propojením úzce souvisí problematika indexů a jedinečnosti, což probereme v oddíle vysvětlujícím syntaxi příkazů pro práci s INDEXI. Příklad : První tabulka 7

9 Druhá tabulka Příklad : SELECT NAME, ORDERNO FROM CUSTOMER, ORDERS WHERE CUSTOMER.CUSTNO = ORDERS.CUSTNO AND SALES REP = Tom Výsledek předešlého selectu : 8

10 Typy propojení : Rovné - příklad : SELECT NAME, ORDERNO FROM CUSTOMER, ORDERS WHE- RE CUSTOMER.CUSTNO = ORDERS.CUSTNO Vnější příklad : SELECT t1.col1, t2.col1, t1.col2, t2.col2 FROM t1, t2 WHERE t1.col1 = t2.col1 (+) AND t1.col2 = t2.col2 (+) Vlastní příklad : SELECT A.ORDERNO, A.ORDERDATE FROM ORDERS A, ORDERS B WHERE A.ORDERDATE = B.ORDERDATE AND A.ORDERDATE <> B.ORDERNO Nerovné příklad : SELECT NAME, ORDERNO, ORDERDATE FROM CUSTOMER, ORDERS WHERE CUSTOMER.CUSTNO = ORDERS.CUSTNO AND ORDERDATE BETWEEN 01-JUL-94 AND 30-SEP-94; Prvky SQL Toto jsou základní prvky používané v SQL : - Jména (názvy) - Datové typy - Konstanty - Systémová klíčová slova - Funkce - Výrazy - Přísudky - Vyhledávací výrazy - Svázané proměnné Názvy jména jsou používána k identifikaci SQL objektů jako jsou jména uživatelů, tabulek, sloupců, indexů atd. Tyto identifikátory mohou být ordinální nebo oddělovací. Ordinální identifikátor začíná písmenem nebo speciálním znakem (#,@ nebo $) a obsahuje písmena, číslice a podtržítko. Identifikátory mají 2 délky : krátké a dlouhé. Krátké mají délku max.8 a dlouhé max. 18 znaků. Příklady názvů : CHYBY SCHRANKA_Z_WGPO :KONTROLNISOUCET $54844 JMENO A ID #UZIVATEL :9 9

11 Názvy jsou dlouhé nebo krátké identifikátory nebo identifikátory kvalifikující jiné identifikátory. Následující objekty mají jména. Autorizační identifikace např. tabulka SKLAD vytvořená uživatelem NOVOTNY má explicitně jméno NOVOTNY.SKLAD. Příklad autorizační identifikace je NOVOTNY a také např. SYSADM. Název sloupce - Název korelační dlouhý identifikátor popisující tabulku nebo pohled s příkazem Název databáze krátký identifikátor označující databázi Název indexu kvalifikující nebo nekvalifikující dlouhý identifikátor Heslo dlouhý identifikátor Jméno svázané proměnné tomuto jménu vždy musí předcházet dvojtečka Název příkazu dlouhý identifikátor Název synonymu dlouhý identifikátor označující tabulku nebo pohled Název tabulky dlouhý identifikátor Název pohledu dlouhý identifikátor Datové typy obecné datové typy používané na ukládání dat jsou : 10

12 - Znakové - Číselné - Datumové a časové Tyto datové typy jsou určeny délkou dat tak jak jsou uloženy v databázi a zobrazovacím formátem tak jak se zobrazují. Null hodnota indikuje absenci dat. Nějaké datové typy mohou obsahovat Null hodnotu. Null hodnota není ekvivalentní 0 nebo mezeře. Na tuto hodnotu si musíte dát pozor ve vyhledávacích výrazech neboť je rovna jakémukoliv výrazu a pokud ji nechceme musíme použít např. NOT NULL. Znakový datový typ řetězec znaků (písmen, číslic, speciálních znaků) CHAR pro tento typ musí být specifikována délka, která nemůže být větší než 254 a je pevně dodržována. U typu VARCHAR může být délka menší než deklarovaná. LONGVARCHAR tento typ může být delší než 254 znaků a pro detailní definici raději nahlédněte do manuálu vámi používaného DB serveru. Numerický datový typ DECIMAL rozsah hodnot až příklad DECIMAL (8,2) INTEGER rozsah hodnot až příklad INT SMALLINT rozsah hodnot až příklad SMALLINT NUMBER rozsah hodnot až 22 číslic příklad NUMBER DOUBLE PRECISION dvojnásobná přesnost čísla s plovoucí desetinnou čárkou (22 až 53) FLOAT číslo s plovoucí desetinnou čárkou s přesností 1 až 21 příklad FLOAT (9) REAL reálné číslo Poznámka : Pro přesné vymezení definicí těchto a i následujících typů musíte zkonzultovat s příslušným manuálem vašeho serveru. Date/Time datový typ DATETIME typ pro data s datovým i časovým údajem DATE - typ pro data s datovým údajem TIME - typ pro data s časovým údajem Konstanty řetězcové konstanty musíte uzavřít do uvozovek. Časové a datumové údaje jsou většinou ve formátu čísel oddělených pomlčkou nebo tečkou. Např Číselné konstanty mohou být v semilogaritmickém tvaru 1,24E4. Systémová klíčová slova jsou vázány na typ a verzi databázového serveru a proto zde nemohou být probírány detailně. Typický představitel je NULL. Dále to mohou být tato slova : USER, ROWID, SYSTIME, SYSDATE atd. Na výběr hodnot z vět databáze, které obsahují nulové hodnoty můžeme použít tuto klauzuli : 11

13 WHERE jméno_sloupce IS NULL Výrazy Schéma výrazu : Je-li ve výrazu položka s nulovou hodnotou (Null), potom vyhodnocení výrazu je null (neznámý nebo false). Vyhledávací výrazy WHERE výraz může být použit v těchto SQL příkazech : SELECT DELETE UPDATE Vyhledávací výraz obsahuje jeden nebo více přísudků spojených logickými operátory OR, AND a NOT. Předpokládejme, že P a Q jsou přísudky. První dva sloupce jsou kombinace hodnot, kterých mohou P a Q nabýt. Následné sloupce jsou hodnoty výrazů uvedených v záhlaví. 12

14 Vzhledem k předešlému celkem dosti suchému, ale nutnému výkladu vás musím upozornit, že výraznější změna nastane až při výkladu jednotlivých SQL příkazů. Pokud jste vydrželi až sem, pak jistě vydržíte i následující kapitoly. Pro oživení výuky můžete s klidným svědomým následující výklad přeskočit až ke kapitole 3.2, neboť jenom trochu složitější úkol vás donutí vrátit se zpět na tyto stránky a dobrat tyto vynechané kapitoly. Velmi častá chyba je použití vyhledávacího výrazu na sloupce s některými nulovými hodnotami. Hodnota Null není ekvivalentní s nebo 0 a proto musí klausule WHERE vypadat takto WHERE jméno-sloupce IS NULL. Přísudky přísudky ve WHERE nebo HAVING výrazu specifikují vyhledávací výraz, který je true, false nebo neznámý (unknown) se zřetelem na daný řádek nebo skupinu řádků v tabulce. Přísudky používají operátory, výrazy a konstanty na specifikování vyhodnocovaného výrazu. Následné typy přísudků jsou popsány v této sekci : Relační BETWEEN NULL EXISTS LIKE IN 13

15 Relační přísudky : Máme dva typy relačních podmínek (přísudků) : Srovnávací Množstevní Srovnávací : Příklad : SELECT JMENO FROM ZAKAZNICI WHERE ZAKAZNIKID=93571 Množstevní : Používá poddotaz nebo podvýběr (subselect, subquery). Příklad : WHERE X < ANY (SELECT Y) SELECT * FROM EMPSAL WHERE SALARY!= (SELECT AVG(SALARY) FROM EMPSAL); SELECT * FROM EMPSAL WHERE SALARY <> (SELECT AVG(SALARY) FROM EMPSAL); SELECT * FROM EMPSAL WHERE SALARY > (SELECT AVG(SALARY) FROM EMPSAL); SELECT * FROM EMPSAL WHERE SALARY < (SELECT AVG(SALARY) FROM EMPSAL); 14

16 SELECT * FROM EMPSAL WHERE SALARY >= ANY(SELECT SALARY FROM EMPSAL); Přísudek BETWEEN : srovnává hodnoty s rozmezím hodnot Příklad : SELECT * FROM EMPSAL WHERE SALARY BETWEEN AND NULL přísudek : testuje null hodnotu Příklad : SELECT * FROM EMP WHERE DEPTNO IS NULL EXISTS přísudek : testuje existenci nějakého řádku v tabulce Příklad : SELECT * FROM EMP WHERE EXISTS (SELECT * FROM EMPSAL WHERE SALARY= :1) LIKE přísudek : prohledává v řetězcích specifickou sekvenci znaků Znak podtržítko _ je zástupný znak pro jeden znak Znak procenta % je zástupný znak pro více znaků Příklad : SELECT * FROM EMP WHERE LNAME LIKE %son% ; 15

17 SELECT * FROM EMP WHERE JOB LIKE M_ ; SELECT * FROM EMP WHERE JOB LIKE A24\% ; SELECT * FROM EMP WHERE JOB LIKE A24\%% ; IN přísudek : porovnává hodnoty ve výběru hodnot Příklad : SELECT * FROM EMP WHERE DEPTNO IN (2500,2600,2700); SELECT * FROM EMP WHERE EMPNO NOT IN (SELECT EMPNO FROM EMPSAL WHERE SALARY< 40000); SELECT * FROM EMP (LNAME, 1) IN ( J, M, D ); SELECT * FROM EMP WHERE LNAME NOT IN (:1,:2, Jones ) Funkce : funkce vrací hodnotu, která je vyhodnocením funkce s argumentem. Členění funkcí je odvislé od typu použitého databázového serveru. Může vypadat např. takto : Agregační funkce Řetězcové funkce Datumové a časové funkce Logické funkce Speciální funkce Matematické funkce Finanční funkce Podselect : vyhledávací podmínka, která je zahnízděná v SELECT příkazu (jako volaný podselect). Příklad : SELECT ORDERNO, ORDERDATE FROM ORDERS WHERE ORDER DATE = (SELECT ORDERDATE FROM ORDERS WHERE CUSTNO = 2) SELECT * FROM EMPSAL WHERE 16

18 SALARY (SELECT AVG (SALARY) FROM EMPSAL) Svázané proměnné : svázaná (propojená) proměnná je předaná hodnota asociovaná s SQL příkazem. Mohou být použity v : WHERE klauzuli VALUESS klauzuli v INSERT příkazu SET klauzuli v UPDATE příkazu Svázané proměnné musí začínat dvojtečkou : Definice dat ALTER TABLE Tento příkaz se používá na následující funkce : Drop, Add a Modify pro sloupce Rename pro sloupce a tabulky Add přidá sloupec do tabulky Drop vyjme sloupec z tabulky Modify mění atributy pro sloupec Rename přejmenuje sloupec nebo tabulku Pro používání tohoto příkazu musí mít uživatel privilegia ALTER. Příklady : přidá nový sloupec JOB, který obsahuje max. 15 znaků do tabulky EMP : 17

19 ALTER TABLE EMP ADD JOB VARCHAR(15); Sníží velikost sloupce JOB na 40 znaků a nastaví NOT NULL podmínku : ALTER TABLE EMP MODIFY JOB VARCHAR(40) NOT NULL; Vyjme sloupec JOB a HIREDATE : ALTER TABLE EMP DROP JOB, HIREDATE; Změní jméno tabulky EMP na EMPLOYEE : ALTER TABLE EMP RENAME TABLE EMPLOYEE; Přidá NOT NULL atribut do sloupce HIREDATE : ALTER TABLE EMP MODIFY HIREDATE NOT NULL; Vyjme atribut NOT NULL : ALTER TABLE EMP MODIFY HIREDATE NULL; CREATE INDEX Tento příkaz vytváří index na jeden nebo více sloupců tabulky. Indexy optimalizují přenášení dat (vracení) bez nutnosti prohledávání celé tabulky. Pro metodiku obnovování statistik si prostudujte manuál vašeho databázového serveru. Může např. nastat případ, že vytvoříte prázdnou tabulku (empty) a index vytvořený na takové tabulce by mohl podle druhu použitého serveru vyžadovat ruční spuštění UPDATE STATISTIC. 18

20 Jestliže vytváříte tabulku s primárním klíčem příkazem CREATE TABLE, musíte vytvořit jedinečný index na primárním klíčovaném sloupci. Příklady : Vytvoří index se jménem HIRE_IDX na sloupec HIREDATE : CREATE INDEX HIRE_IDX ON EMP (HIREDATE); Vytvoří spojený index složený z LNAME a FNAME: CREATE INDEX NAME_IDX ON EMP (LNAME, FNAME); Vytvoří sestupný index na EMP_IDX sloupci EMP tabulky se zakázáním duplicity čísel : CREATE UNIQUE INDEX EMP_IDX ON EMP (EMPNO DESC); CREATE TABLE Tento příkaz vytváří tabulku se specifikovanými sloupci. Musíte mít patřičná práva pro tuto operaci. Plně kvalifikované SQL jméno tabulky je : Autorizační-identif.tabulky-jméno 19

21 Autorizační-id. popis stvořitele tabulky Jestliže vytvoříte tabulku bez specifikování autorizačního id. Je nadefinováno default autorizační id. Příklady : Vytvoří tabulku EMP a EMPSAL CREATE TABLE EMP (EMPNO INTEGER NOT NULL, LNAME VARCHAR(15), FNAME CHAR(10), DEPTNO SMALLINT, HIREDATE DATE, JOB VARCHAR (15)); CREATE TABLE EMPSAL (EMPNO INTEGER NOT NULL, SALARY DECIMAL(5,9,2), REVIEW LONGVARCHAR; Vytvoří tabulku, která dovoluje cizí klíč EMPNO v EMPSAL tabulce s odkazem EMP- NO v EMP tabulce CREATE TABLE EMP (EMPNO INT NOT NULL, LNAME VARCHAR(15), FNAME CHAR(10), DEPTNO SMALLINT, HIREDATE DATE, JOB VARCHAR (15) PRIMARY KEY (EMPNO)); CREATE UNIQUE INDEX EMP_IDX ON EMP (EMPNO); CREATE TABLE EMPSAL (EMPNO INTEGER, SALARY DECIMAL (9,2), REVIEW LONG VARCHAR, FOREIGN KEY (EMPNO) REFERENCES EMP ON DELETE CASCADE); Související příkazy : ALTER TABLE CREATE INDEX 20

22 CREATE VIEW Tento příkaz vytváří pohled na jednu nebo více tabulek. Jeho použití úzce souvisí s příkazem GRANT (privilegia) : CREATE VIEW A_PAYAS SELECT FNAME, LNAME, SALARY FROM EMP, EMPSAL... V definici pohledu není možné použít UNION ani ORDER BY. Pohled jak již z názvu vyplívá je pouze abstrakce a má tím pádem příznak read-only (mimo následující výjimky) a proto nemůže provádět update dat (s jedinou výjimkou, kdy je pouze nad jednou tabulkou a nepoužívá funkce). CREATE VIEW PAY AS SELECT FNAME, LNAME, SALARY FROM EMP, EMPSAL WHERE EMP.EMPNO = EMPSAL.EMPNO; Následující příklad pohledu ukazuje možnost změny jmen sloupců v pohledu : CREATE VIEW STARTDATES (FIRST, LAST, DOH) AS SELECT FNAME, LNAME, HIREDATE FROM EMP; Následující pohled obsahuje asloupec, který je vypočítávaný (je na něm použita funkce) a to činí z tohoto pohledu pohled pouze pro čtení : CREATE VIEW DEPT_SAL (DEPT, TOTSAL) AS SELECT DEPTNO, SUM(SALARY) FROM EMP, EMPSAL WHERE EMP.EMPNO = EMPSAL.EMPNO GROUP BY DEPTNO; Tento pohled používá WITH CHECK OPTION klauzuli : CREATE VIEW WEEK2 AS SELECT * FROM ORDERS 21

23 WHERE ORDERDATE > = 05-JUL-94 WITH CHECK OPTION; Následující pohled je vytvořen ze dvou základních tabulek : CREATE VIEW MYVIEW (POSITION, ARG1,ADESCRIPT, ARG2, BDESCRIPT) AS SELECT TABLE1.POSITION, TABLE1.ARG1,A.DESCRIPT AS ADESCRIPT, TABLE1.ARG2, B.DESCRIPT AS BDESCRIPT FROM TABLE1, TABLE2 A, TABLE2 B WHERE TABLE1.ARG1=A.CODE AND TABLE1.ARG2=B.CODE; Související příkazy : CREATE TABLE SELECT DROP Tento příkaz vyjme z databáze specifický objekt. Pro tento příkaz musíte mít patřičná práva DBA. DROP TABLE vyjme tabulku, všechna synonyma a indexy definované pro tuto tabulku a všechna práva přidělena k této tabulce. Systémové tabulky nemohou být vyjmuty. DROP INDEX vyjme index. Systémové indexy nemohou být vyjmuty. DROP VIEW vyjme pohled ze systémového katalogu. Všechny práva k tomuto pohledu jsou vyjmuta též. SYNONYM vyjme synonym. Pohledy založené na tomto synonymu jsou také vyjmuta. PUBLIC vyjme veřejné synonyma. Pohledy založené na tomto synonymu jsou také vyjmuta. Příklady : DROP INDEX CHKINDX; DROP VIEW MYEMP; DROP SYNONYM EASY_TO_REMEMBER; DROP PUBLIC SYNONYM EMP; DROP TABLE EMP; Související příkazy : CREATE INDEX; CREATE SYNONYM; CREATE TABLE; CREATE VIEW; 22

24 2.3. Editace dat DELETE Tento příkaz smaže jeden nebo více řádků z jedné tabulky nebo pohledu. WHERE vyhledávací výraz podmínka pro výběr řádků vybraných pro smazání. Příklady : Tento příkaz smaže zaměstnance číslo 1234 z tabulky EMP: DELETE FROM EMP WHERE EMPNO = 1234; Smaže zaměstnance v oddělení 2500 z tabulky EMPSAL: DELETE FROM EMPSAL WHERE EMPNO IN (SELECT EMPNO FROM EMP WHERE DEPTNO = 2500); Smaže všechny řádky z tabulky: DELETE FROM ORDERS; Související příkazy : CREATE TABLE SET CURSORNAME INSERT 23

25 Tento příkaz vkládá řádky dat do tabulky nebo pohledu. Příklady : Tento SQL příkaz vloží jeden kompletní řádek do EMP tabulky : INSERT INTO EMP VALUES (1001, Carver, Dan,2500,01- APR-1994, Manager ); Jestliže nejsou vkládány všechny sloupce musí být specifikována jejich jména : INSERT INTO EMP (EMPNO,LNAME,FNAME,HIREDATE) (1002, Murphy, Bill,17-APR-1994); Tento příkaz používá svázané proměnné na vložení více řádků dat : INSERT INTO EMP VALUES (:1,:2,:3,:4,:5,:6) 1004,Drape,Jane,2600,01-FEB-1994,Programator 1005,Foghorn,Ellen,2500,01-FEB-1994, Programator Použití poddotazu na odvození sloupců pro vkládání : CREATE TABLE RDEMP (RDNO INTEGER, RDLNAME CHAR(15), RDFNAME CHAR(10); INSERT INTO RDEMP (RDNO, RDLNAME, RDFNAME) SELECT EMPNO, LNAME,FNAME FROM EMP WHERE DEPTNO = 2500 ; Související příkazy : 24

26 SELECT SET CURSORNAME UPDATE Tento příkaz aktualizuje hodnotu jednoho nebo více sloupců tabulek nebo základních pohledů podle výběrové podmínky. Na tuto operaci musíte mít patřičná privilegia (UPDATE). UPDATE příkaz aktualizuje tabulky s primárními i cizími klíči. Příklady : Aktualizuje tabulku employee s podmínkou EMPNO=1004. UPDATE EMPSAL SET SALARY = WHERE EMPNO= 1004; Zvýší plat všem zaměstnancům v kanceláři 2500 o 10%. UPDATE EMPSAL SET SALARY = SALARY*1.10 WHERE EMPNO IN (SELECT EMPNO FROM EMP WHERE DEPTNO = 2500); Aktualizuje všechny zaměstnání s písmenem P. Související příkazy : CREATE TABLE SELECT CURSORNAME 2.4. Dotazování dat SELECT 25

27 Tento příkaz najde, získá a zobrazí data. SELECT příkaz je rekurzivní může být zahnízděn v hlavním SELECTu. Zapouzdřený SELECT příkaz je volán jako poddotaz. Pro příkaz SELECT musíte mít přidělena privilegia SELECT. Vysvětlivky graf. znázornění : ALL Default hodnota pro SELECT je získání všech řádků. DISTINCT Potlačí duplicitní řádky. SELECT TAB1.*, COL1 FROM TAB1, TAB2; Vrátí všechny sloupce z tabulky TAB1 a jeden sloupec COL1 z tabulky TAB2. WHERE klauzule specifikuje výběrovou podmínku pro základní tabulky nebo pohledy. GROUP BY seskupuje výsledné řádky dotazu. 26

28 Následující příklad najde celkový plat pro každé oddělení a seskupí dle kanceláře. SELECT DEPTNO, SUM(SALARY), AVG(SALARY), COUNT(SALARY) FROM EMP, EMPSAL WHERE EMP.EMPNO = EMPSAL.EMPNO GROUP BY DEPTNO; HAVING dovoluje výběrovou podmínku pro skupinu řádků výsledků z GROUP BY nebo seskupuje sloupce. SELECT DEPTNO, SUM(SALARY), AVG(SALARY), COUNT(SALARY) FROM EMP, EMPSAL WHERE EMP.EMPNO = EMPSAL.EMPNO GROUP BY DEPTNO HAVING AVG(SALARY) > 30000; ORDER BY setřídí řádky ve výskedové tabulce. ORDER BY nelze použít v poddotazu. Příklady : Vybere všechny řádky z CUSTOMER tabulky. SELECT * FROM CUSTOMER; Vytvoří seznam zaměstnání. SELECT DISTINCT JOB FROM EMP; Zobrazí číslo zaměstnance a měsíční plat lidí, kteří mají roční plat větší než SELECT EMPNO,SALARY/12 FROM EMPSAL WHERE SALARY > 40000; Najde minimum a průměr platů v každém oddělení. SELECT DEPTNO, MIN(SALARY), AVG(SALARY) FROM EMP, EMPSAL WHERE EMP.EMPNO=EMPSAL.EMPNO GROUP BY DEPTNO; SELECT * FROM EMP WHERE JOB IN (SELECT JOB FROM EMP WHERE LNAME = Drape ); SELECT * FROM ORDERS X WHERE PRICE = (SELECT LISTPRICE FROM PARTS WHERE PARTS.PNUM = X.PNUM); SELECT * FROM ORDERS 27

29 WHERE CUSTNO=2 ORDER BY ORDERDATE; UNION Tento příkaz spojí výsledky dvou nebo více SLECTů. Duplicitní řádky budou eliminovány. ALL Jestliže specifikujete ALL pak duplicitní řádky nebudou eliminovány. Příklady : Tento příkaz najde zaměstnance z kanceláře 2500 a ty jejichž plat je větší než SELECT EMPNO FROM EMP WHERE DEPTNO = 2500 UNION SELECT EMPNO FROM EMPSAL WHERE SALARY> 50000; 2.5. Řízení transakcí Řízení transakcí lze postavit (principem) na dvou metodách : použitím zámků CS Cursor Stability RL Release Locks RO Read Only RR Read Repeatability (default) použitím ROWID časový údaj Použití první metody zamykání vět, tabulek či celé databáze má své opodstatnění, ale pro běžný přístup k datům se jeví vhodnější metoda ROWID. Metoda ROWID je založena na principu časové jednoznačnosti. Každá tabulka má vytvořený sloupec ROWID, který databázový server používá pro rychlý přístup k položkám této tabulky. V tomto sloupci je též informace o datu poslední změny patřičného řádku. Při Načtení tabulky z DB serveru do vašeho počítače a změny nějakých hodnot načtete i sloupec ROWID. Před ukládáním (aktualizací) těchto dat zkontroluje výskyt SQL chyby a dále už pouze dáte podmínku, že ROWID v tabulce na DB serveru je stejné jako ROWID ve vaší tabulce např. v tabulce v MS Excel. Jestliže UPDATE neproběhne nebo se vyskytne SQL chyba znamená to, že ve většině případů se ROWID v tabulce na DB serveru neshoduje s ROWID ve vaší tabulce někdo změnil data, která jste měnili vy (nebo jste chtěli, aby se data nezměnila některé operace pro účetnictví). Vám nezbývá než provést ROLLBACK a operaci opakovat 28

30 od začátku. Pokud k tomuto stavu nesmí dojí pak lze provést zámek, a to na různé úrovni (např. závěrkové operace v účetnictví) a pak vámi načtená (nebo zamčená) data nikdo nezmění. Metoda zámků je spíše na fyzické úrovni a také ji řada DB serverů řeší s různými odlišnostmi jak ve významu tak v syntaxi příkazu. Z toho vyplývá, že aplikace napsané tímto způsobem jsou na jiný DB server přenositelné s určitými problémy a potřebou programátorských zásahů. Zámky v nejužším pojetí se dělí na zámky pro čtení (sdílené) a zámky pro zápis (výhradní). Dále dle typu serveru existují i jiné typy zámků (např. kombinace předešlých, přírůstkový zámek ). Existují dva různé požadavky, které musí být splněny : Kriteria pro výběr isolation stupně : 1, Data zpřístupněná spoustě uživatelů musí být konzistentní. 2, Uživatelé musí mít možnost přistupovat ke stejným datům souběžně COMMIT Tento příkaz ukončí aktuální (řídící) transakci (logickou jednotku práce s daty). Transakce má jeden nebo více SQL příkazů Administrace dat Administrace dat je ve své podstatě správa uživatelů. Vytvoření uživatele standard SQL nepodporuje a provádí se prostředky, které jsou součástí DB serveru. Je-li uživatel již vytvořen má určitá práva a to obecná a systémová (u Oracle je jen systémových práv zhruba 80) jejichž rozsah závisí na kvalitě DB serveru. Rozsah těchto práv je nutno měnit, a to jak rozšiřovat tak naopak. Pro rozšíření dat slouží příkaz GRANT a pro vyjmutí práv příkaz REVOKE. Pro přihlášení uživatele k databázi je potřeba jeho jméno a heslo. Heslo je následně (po založení) uloženo do systémového katalogu, kde je zakódováno a přístup k němu je pouze přes funkci ALTER PASSWORD nebo s autorizací DBA. 29

31 ALTER PASSWORD Tento příkaz změní vaše heslo. Příklad : ALTER PASSWORD OLDPASSWORD TO NEWPASSWORD Související příkazy : GRANT, REVOKE GRANT REVOKE 30

32 Protect adm@telecom.cz Zpracoval : ing. Zdeněk Šerý 31

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

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

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

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

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

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

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Autor: Číslo: Anotace: Inovace a zkvalitnění výuky prostřednictvím ICT Databáze Základní seznámení s MySQL

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

Ú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

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é 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

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

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

DUM 12 téma: Příkazy pro tvorbu databáze DUM 12 téma: Příkazy pro tvorbu databáze ze sady: 3 tematický okruh sady: III. Databáze ze šablony: 7 Kancelářský software určeno pro: 4. ročník vzdělávací obor: 18-20-M/01 Informační technologie vzdělávací

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

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

SQL. strukturovaný dotazovací jazyk. Structured Query Language (SQL) SQL strukturovaný dotazovací jazyk Structured Query Language (SQL) SQL - historie 1974-75 - IBM - 1.prototyp - SEQUEL od 1979 - do praxe - ORACLE (1979) IBM - SQL/DS (1981), DB/2 (1983) postupně přijímán

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

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

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

Ú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

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

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

Použití databází na Webu

Použití databází na Webu 4IZ228 tvorba webových stránek a aplikací Jirka Kosek Poslední modifikace: $Date: 2010/11/18 11:33:52 $ Obsah Co nás čeká... 3 Architektura webových databázových aplikací... 4 K čemu se používají databázové

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

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

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

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

Kurz Databáze. Obsah. Návrh databáze E-R model. Datová analýza, tabulky a vazby. Doc. Ing. Radim Farana, CSc.

Kurz Databáze. Obsah. Návrh databáze E-R model. Datová analýza, tabulky a vazby. Doc. Ing. Radim Farana, CSc. Kurz Databáze Datová analýza, tabulky a vazby Doc. Ing. Radim Farana, CSc. Obsah Návrh databáze, E-R model, normalizace. Datové typy, formáty a rozsahy dat. Vytváření tabulek, polí, konvence pojmenování.

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

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

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

Text úlohy. Systémový katalog (DICTIONARY): Úloha 1 Částečně správně Bodů 050 / 100 Systémový katalog (DICTIONARY): a Se skládá z tablek a pohledů uložených v tabulkovém SYSTEM b Všechny tabulky vlastní uživatel SYS c Se skládá z tablek a pohledů

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

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

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

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

Operátory ROLLUP a CUBE

Operátory ROLLUP a CUBE Operátory ROLLUP a CUBE Dotazovací jazyky, 2009 Marek Polák Martin Chytil Osnova přednášky o Analýza dat o Agregační funkce o GROUP BY a jeho problémy o Speciální hodnotový typ ALL o Operátor CUBE o Operátor

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

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

Základy databází. O autorech 17 PRVNÍ ČÁST. KAPITOLA 1 Začínáme 19

Základy databází. O autorech 17 PRVNÍ ČÁST. KAPITOLA 1 Začínáme 19 3 Obsah Novinky v tomto vydání 10 Význam základních principů 11 Výuka principů nezávisle na databázových produktech 12 Klíčové pojmy, kontrolní otázky, cvičení, případové studie a projekty 12 Software,

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

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

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

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

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Autor: Číslo: Anotace: Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní

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

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

Administrace Oracle. Práva a role, audit

Administrace Oracle. Práva a role, audit Administrace Oracle Práva a role, audit Filip Řepka 2010 Práva (privileges) Objekty (tabulky, pohledy, procedury,...) jsou v databázi logicky rozděleny do schémat. Každý uživatel má přiděleno svoje schéma

Více

PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK

PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK listopad 2009 souhrn v1 Červené dobře (nejspíš), modré možná Oracle Internet Directory OID: Databáze nemůže z OID přebírat seznam uživatelů *Databáze může získat z OID seznam

Více

Access. Tabulky. Vytvoření tabulky

Access. Tabulky. Vytvoření tabulky Access správa databáze (tabulky, relace, omezující podmínky, data...) uživatelské prostředí pro práci s databází (formuláře, sestavy, datové stránky, makra...) ukázková aplikace Northwind hlavní okno databáze

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

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

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

Oracle XML DB. Tomáš Nykodým

Oracle XML DB. Tomáš Nykodým Oracle XML DB Tomáš Nykodým xnykodym@fi.muni.cz Osnova Oracle XML DB Architektura Oracle XML DB Hlavní rysy Oracle XML DB Hlavní rysy Oracle XML DB - pokračování XMLType XML Repository Využívání databázových

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

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky Otázka 20 A7B36DBS Zadání... 1 Slovníček pojmů... 1 Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky... 1 Zadání Relační DB struktury sloužící k optimalizaci

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

- 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

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áze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata Databáze Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu Bedřich Košata K čemu jsou databáze Ukládání dat ve strukturované podobě Možnost ukládat velké množství dat

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

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

Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou

Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou Administrace Oracle Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou zachyceny a uloženy lokálně před posláním

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

DUM 15 téma: Příkazy pro řízení přístupu

DUM 15 téma: Příkazy pro řízení přístupu DUM 15 téma: Příkazy pro řízení přístupu ze sady: 3 tematický okruh sady: III. Databáze ze šablony: 7 Kancelářský software určeno pro: 4. ročník vzdělávací obor: 18-20-M/01 Informační technologie vzdělávací

Více

Integritní omezení (IO)

Integritní omezení (IO) Integritní omezení (IO) IO jsou tvrzení vymezující korektnost DB, stupeň souladu datového obrazu s předlohou (jaká data v databází mohou být a jaká již ne). definují se na konceptuální i databázové úrovni

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

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

RELAČNÍ DATABÁZE ACCESS

RELAČNÍ DATABÁZE ACCESS RELAČNÍ DATABÁZE ACCESS 1. Úvod... 2 2. Základní pojmy... 3 3. Vytvoření databáze... 5 4. Základní objekty databáze... 6 5. Návrhové zobrazení tabulky... 7 6. Vytváření tabulek... 7 6.1. Vytvoření tabulky

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

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

Základy informatiky. 06 Databázové systémy. Kačmařík/Szturcová/Děrgel/Rapant Základy informatiky 06 Databázové systémy Kačmařík/Szturcová/Děrgel/Rapant Problém zpracování dat důvodem je potřeba zpracovat velké množství dat, evidovat údaje o nějaké skutečnosti: o skupině lidí (zaměstnanců,

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ÁZE MS ACCESS 2010

DATABÁZE MS ACCESS 2010 DATABÁZE MS ACCESS 2010 KAPITOLA 5 PRAKTICKÁ ČÁST TABULKY POPIS PROSTŘEDÍ Spuštění MS Access nadefinovat název databáze a cestu k uložení databáze POPIS PROSTŘEDÍ Nahoře záložky: Soubor (k uložení souboru,

Více

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

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/34.0333 Vzdělávání v informačních a komunikačních technologií VY_32_INOVACE_33_05 Škola Střední průmyslová škola Zlín Název projektu, reg. č. Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/34.0333 Vzdělávací oblast Vzdělávání v informačních a komunikačních

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

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

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

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

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ém označuje soubor programových prostředků, které umožňují přístup k datům uloženým v databázi. Databáze Základní pojmy Pojem databáze označuje obecně souhrn informací, údajů, dat o nějakých objektech. Úkolem databáze je hlídat dodržení všech omezení a dále poskytovat data při operacích. Objekty

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

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

Programovací jazyk Pascal

Programovací jazyk Pascal Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce

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

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

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

37. Indexování a optimalizace dotazů v relačních databázích, datové struktury, jejich výhody a nevýhody 37. Indexování a optimalizace dotazů v relačních databázích, datové struktury, jejich výhody a nevýhody Využití databázových indexů Databázové indexy slouží ke zrychlení přístupu k datům a měly by se používat

Více

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

5. POČÍTAČOVÉ CVIČENÍ 5. POČÍTAČOVÉ CVIČENÍ Databáze Databázi si můžeme představit jako místo, kam se ukládají všechny potřebné údaje. Přístup k údajům uloženým v databázi obstarává program, kterému se říká Systém Řízení Báze

Více

Administrace Oracle Práva a role, audit. Kukhar Maria 29.10.2012

Administrace Oracle Práva a role, audit. Kukhar Maria 29.10.2012 Administrace Oracle Práva a role, audit Kukhar Maria 29.10.2012 Ve výchozím nastavení, uživatel Oracle nemůže nic dělat, ani připojit se k databázi. Aby uživatele měli přistup k DB, je třeba vytvořit uživatelské

Více

Základy informatiky. 08 Databázové systémy. Daniela Szturcová

Základy informatiky. 08 Databázové systémy. Daniela Szturcová Základy informatiky 08 Databázové systémy Daniela Szturcová Problém zpracování dat Důvodem je potřeba zpracovat velké množství dat - evidovat údaje o nějaké skutečnosti. o skupině lidí (zaměstnanců, studentů,

Více

Microsoft Access. Úterý 26. února. Úterý 5. března. Typy objektů databáze: Vytvoření a návrh nové tabulky

Microsoft Access. Úterý 26. února. Úterý 5. března. Typy objektů databáze: Vytvoření a návrh nové tabulky Úterý 26. února Microsoft Access Databáze je seskupení většího množství údajů, které mají určitou logiku a lze je určitým způsobem vyhodnocovat, zpracovávat a analyzovat Access je jedním z programů určených

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

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných Tematický celek 03 3.1 Proměnné Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace. 3.1.1 Deklarace proměnných Dim jméno_proměnné [As typ] - deklarace uvnitř procedury platí pouze pro

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

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů - 1.1 - Kapitola 1: Úvod Účel databázových systémů Pohled na data Modely dat Jazyk pro definici dat (Data Definition Language; DDL) Jazyk pro manipulaci s daty (Data Manipulation Language; DML) Správa

Více

Kontingenční tabulky v MS Excel 2010

Kontingenční tabulky v MS Excel 2010 Kontingenční tabulky v MS Excel 2010 Autor: RNDr. Milan Myšák e-mail: milan.mysak@konero.cz Obsah 1 Vytvoření KT... 3 1.1 Data pro KT... 3 1.2 Tvorba KT... 3 2 Tvorba KT z dalších zdrojů dat... 5 2.1 Data

Více

Primární klíč (Primary Key - PK) Je právě jedna množina atributů patřící jednomu z kandidátů primárního klíče.

Primární klíč (Primary Key - PK) Je právě jedna množina atributů patřící jednomu z kandidátů primárního klíče. Primární a cizí klíč Kandidát primárního klíče (KPK) Je taková množina atributů, která splňuje podmínky: Unikátnosti Minimálnosti (neredukovatelnosti) Primární klíč (Primary Key - PK) Je právě jedna množina

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

B Organizace databáze na fyzické úrovni u serveru Oracle

B Organizace databáze na fyzické úrovni u serveru Oracle B Organizace databáze na fyzické úrovni u serveru Oracle B.1. Základní koncepty... 2 B.2. Možnosti rozšíření prostoru databáze... 9 B.3. Indexování a shlukování... 12 Literatura... 16 J. Zendulka: Databázové

Více

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

Informační systémy ve zdravotnictví. 6. cvičení Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Informační systémy ve zdravotnictví 6. cvičení Ing. Petr Lukáš petr.lukas@nativa.cz Ostrava, 2014 Opakování Relace

Více

Databázové systémy a SQL

Databázové systémy a SQL Databázové systémy a SQL Lekce 2 Daniel Klimeš Autor, Název akce 1 CREATE TABLE Vytvoření tabulky (ORACLE) DDL příkazem v grafickém prostředí CREATE TABLE jmeno ( text VARCHAR2(200), cislo NUMBER(9,1),

Více

Databázové a informační systémy Informační systém prodejny nábytku. Jakub Kamrla, KAM087

Databázové a informační systémy Informační systém prodejny nábytku. Jakub Kamrla, KAM087 Databázové a informační systémy Informační systém prodejny nábytku Jakub Kamrla, KAM087 1. část Funkční a nefunkční požadavky 1. K čemu má systém sloužit Jedná se o informační systém pro jednu nejmenovanou

Více

Základy jazyka SQL. 87 Jazyk SQL SQL je dotazovací jazyk, takže přes propojenou aplikaci se serveru odevzdá dotaz

Základy jazyka SQL. 87 Jazyk SQL SQL je dotazovací jazyk, takže přes propojenou aplikaci se serveru odevzdá dotaz Základy jazyka SQL 87 Jazyk SQL SQL je dotazovací jazyk, takže přes propojenou aplikaci se serveru odevzdá dotaz a databázový server na něj odpoví, obvykle tím, že vygeneruje nějakou množinu výstupních

Více