Dotazovací jazyk SQL
|
|
- Marek Čermák
- před 6 lety
- Počet zobrazení:
Transkript
1 Dotazovací jazyk SQL
2 Historický vývoj I IBM 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 National Standards Institute ISO: International Organization for Standardization IEC: International Electrotechnical Commission SQL86 (někdy též SQL87) - SQL ANSI X Database language SQL 1987 ISO Database language SQL Stále nebyla standardizována referenční integrita, ta přišla až 1989 ANSI X Database Language SQL With Integrity Enhancement 1989 ISO Database language SQL
3 Historický vývoj II Embedded SQL 1989 ANSI X Database Language Embedded SQL neexistuje ISO standard pro embedde SQL Embedded SQL umožňuje klást SQL dotazy z prostředí hostitelského programovacího jazyka, typicky jazyka C Umožňuje zapisovat dotazy přímo do zdrojového kódu v jazyce C. Speciální preprocesor pak tyto dotazy nahradí voláním příslušných knihovních procedur. Počátkem 90. let hojně využíváno při vývoji databázových aplikací v jazyce C.
4 Historický vývoj III SQL92 známý jako SQL2: 1992 ANSI X Database language SQL 1992 ISO/IEC Database language SQL Dnes nejběžněji používaný standard jazyka SQL Hlavně tomuto standardu se budeme na přednáškách věnovat
5 Další vývoj SQL99 známý jako SQL3 Regulární výrazy Rekurzivní dotazy Non-scalar datové typy a další 2003: SQL2003 Podpora XML Standardizované sekvence a automaticky generované hodnoty : SQL2006 Rozšířená podpora XML (XQuery) Převody XML SQL Export/import XML
6 SQL datové typy I Numerické datové typy ukládané přesně INTEGER Celá čísla Rozsah implementačně závislý, obvykle až SMALLINT Celá čísla Rozsah implementačně závislý, obvykle až Definice: rozsah není větší než u typu INTEGER. NUMERIC NUMERIC(p) NUMERIC(p,s) Číslo - může mít desetinnou část, ale uložené přesně. Dekadické číslo o p cifrách, z toho s za desetinnou čárkou. Např. DECIMAL(5,2) má 3 pozice před čárkou, 2 pozice za čárkou. Pokud p nebo s nevyjádřeno, vezme se implementačně závislý default. Číslo vždy uloženo v předepsané přesnosti (ledaže by se narazilo na implementačně dané maximum). DECIMAL DECIMAL(p) DECIMAL(p,s) Obdoba jako NUMERIC, avšak číslo může být ukládáno přesněji než je požadavek (ledaže by se narazilo na implementačně dané maximum). Poznámka: NUMERIC zřejmě vždy ukládáno jako řetězec cifer - znaků, zatímco DECIMAL ve vnitřním formátu, pro repúrezentaci se použije tolik bytů, aby bylo dosaženo (alespoň) požadované přesnosti.
7 SQL datové typy II Numerické datové typy ukládané nepřesně REAL DOUBLE PRECISON plovoucí řádová čárka jednoduchá přesnost plovoucí řádová čárka v dvojnás. přesnosti přesnost implementačně závislá, obvykle defaultní přesnost pro data s plovoucí řádovou čárku v jednoduché přesnosti pro danou hardwarovou platformu přesnost implementačně závislá, obvykle defaultní přesnost pro data s plovoucí řádovou čárku v dvojnásobné přesnosti pro danou hardwarovou platformu. Definice: přesnost větší než u typu REAL. FLOAT FLOAT(p) Dovoluje definovat požadovanou přesnost. Přesnost uložení může být větší než požadovaná. Požadovaná přesnost p může být na jedné platformě realizována jednoduchou přesností, zatímco na jiné platformě dvojnásobnou přesností. Poznámka: Nepřesnost uložení je dána tím, že se jedná o plovoucí řádovou čárku. Číslo je vyjádřeno dvojicí <mantisa, exponent>
8 SQL datové typy III Znakové řetězce CHARACTER CHARACTER(x) CHARACTER VARYING VARCHAR CHARACTER VARYING(x) VARCHAR(x) NATIONAL CHARACTER NCHAR NVARCHAR Znakový řetězec o definované délce. Není-li x vyjádřeno, jedná se o CHAR(1). Znakové řetězce s proměnnou délkou (alokováno tolik byte, kolik je potřeba) maximální délka stringu (počet znaků v řetězci) omezena číslem x. Maximální hodnota x stringu implementačně závislá. Pro potřeby národních abeced. UNICODE
9 SQL datové typy IV Datum a čas DATE TIME TIME(p) Datum: rok 4 cifry, měsíc 2 cifry, den 2 cifry Délka definována na 10 znaků včetně oddělovačů YYYY-MM-DD Čas: hodiny(2 cifry), minuty(2 cifry), vteřiny (2 cifry, navíc možno p desetinných míst) Délka 8 cifer pokud p=0, jinak 9+p Default 0 desetinných míst HH:MM:SS TIMESTAMP TIMESTAMP(p) Datum + čas. Délka 19 cifer pokud p=0, jinak 20+p Default 6 desetinných míst YYYY-MM-DD HH:MM:SS
10 CREATE TABLE PACKAGE ( PACKID CHAR(4), PACKNAME CHAR(20), PACKVER DECIMAL(3,2), PACKTYPE CHAR(15), PACKCOST DECIMAL(5,2) ) CREATE TABLE I Jméno tabulky, která má být vytvořena Jmeno atributu Typ atributu Vytvoří prázdnou tabulku s 5 definovanými sloupci příslušných typů. DROP TABLE Computer Zruší existující tabulku daného jména. Jméno tabulky, která má být zrušena
11 CREATE TABLE II (integritní omezení atributu) CREATE TABLE COMPUTER ( COMPID DECIMAL(2) NOT NULL, MFGNAME CHAR(15) NOT NULL, MFGMODEL CHAR(25), PROCTYPE DECIMAL(7,2) ) Integritní omezení (atributu), specifikující, že daný atribut musí mít povinně vyplněnou hodnotu Vkládáme-li do tabulky nový řádek, nemusíme v obecném případě specifikovat hodnoty všech atributů (sloupců). Takový řádek pak bude mít ve sloupcích, pro něž jsme nezadali hodnotu, hodnotu uvedenu NULL. Pokud ovšem při vkládání řádku do tabulky neuvedeme hodnotu takového atributu, který má specifikováno integritní omezení NOT NULL, databázový engine odmítne takový řádek do tabulky vložit (chybová hláška nebo výjimka), protože by došlo k porušení příslušného integritního omezení.
12 CREATE TABLE III (integritní omezení atributu) CREATE TABLE Films ( CODE CHAR(5) CONSTRAINT Firstkey PRIMARY KEY TITLE VARCHAR(40) NOT NULL, DateProd DATE, KIND VARCHAR(10), LEN INTERVAL HOUR TO MINUTE ) Integritní omezení může být (ale nemusí a obvykle nebývá) pojmenováno. Šedivý text tedy může být vynechán. Toto integritní omezení říká, že atribut CODE je primárním klíčem. Musí mít tudíž povinně zadanou hodnotu a tato hodnota musí být unikátní přes všechny řádky dané tabulky.
13 CREATE TABLE IV (integritní omezení tabulky) CREATE TABLE Films ( TITLE VARCHAR(40) NOT NULL, ) DateProd DATE, KIND VARCHAR(10), LEN INTERVAL HOUR TO MINUTE ), CONSTRAINT pk_const PRIMARY KEY (TITLE, DateProd) Integritní omezení tabulky Nepovinné jméno integritního omezení tabulky. Integritní omezení je vhodné pojmenovávat, abychom je mohli popřípadě odtsranit, pokud nevyhovují: V případě, že je primární klíč tvořen dvojicí, trojicí,... atributů, nemůžeme tuto skutečnost vyjádřit integritním ALTER omezením TABLE Films atributu. DROP Žádný CONSTRAINT z atributů podílejících pk_const; se na primárním klíči totiž není sám o sobě primárním klíčem. V uvedeném příkladu je primárním klíčem dvojice atributů (TITLE, DateProd), což vyjádříme uvedeným integritním omezením tabulky. Unikátní přes všechny řádky nemá být hodnota každého z atributů TITLE, DateProd, ale jejich kombinace. PRIMARY KEY je jedním z možných integritních omezení tabulky.
14 CREATE TABLE V (integritní omezení) CREATE TABLE osoby ( os_cislo NUMBER(5) NOT NULL, 1 rod_cis VARCHAR2(30) NOT NULL UNIQUE, jmeno VARCHAR2(30) NOT NULL, prijmeni VARCHAR2(30) NOT NULL, plat NUMBER(5) CHECK ( plat > 5000 AND plat < ), cislo_prac NUMBER(5) NOT NULL, CONSTRAINT pk_osoby PRIMARY KEY ( os_cislo ), CONSTRAINT fk_prac FOREIGN KEY ( cislo_prac ) REFERENCES pracoviste ( cislo_prac ) ON UPDATE CASCADE ON DELETE CASCADE ) Atribut může mít zadáno více integritních omezení současně v tomto případě je hodnota atributu povinná (NOT NULL) a unikátní (UNIQUE) přes všechny řádky. 2. Integritní omezení může být zadáno i obecnou podmínkou, která musí být pro vkládaný řádek TRUE, jinak chyba. 3. Libovolné integritní omezení atributu může být rovněž vyjádřeno jako integritní omezení tabulky. V tomto případě jsme mohli skutečnost, že os_cislo je primárním klíčem, rovnocenně vyjádřit integritním omezením atributu rod_cis. 4. Toto je tzv. referenční integrita bude probrána na samostatném slajdu.
15 CREATE TABLE VI (integritní omezení) CREATE TABLE PREDMETY ( zkratka VARCHAR2(10) PRIMARY KEY, nazev VARCHAR2(30) NOT NULL, kredity NUMBER(2) DEFAULT 2, ); Pomocí svého druhu integritního omezení můžeme definovat i defaultní hodnotu atributu. Budeme-li vkládat řádek do tabulky vytvořené výše uvedeným příkazem a neuvedeme-li přitom hodnotu sloupce kredity, nezústane tento sloupec nevyplněn (NULL), ale bude mít hodnotu 2.
16 CREATE TABLE VII (generování hodnot) CREATE SEQUENCE distrib_prim; 1 CREATE TABLE distributors ( did integer PRIMARY KEY DEFAULT nextval('distrib_prim'), name varchar(40) NOT NULL CHECK (name <> '') ) 1 1. Nejprve definujeme tzv. sekvenci. V daném případě jsme ji pojmenovali distrib_prim. 2. Při vkládání nového řádku bude chtít integritní omezení DEFAULT přiřadit sloupci did vkládaného řádku hodnotu. Tuto hodnotu zjistí vyhodnocením funkce nextval(), jež ovšem vygeneruje nový (ještě neexistující) prvek sekvence distrib_prim. Jako výsledek bude mít každý řádek vygenerovanou unikátní hodnotu sloupce did. Toto není SQL standard, ale syntax DB systému ProgreSQL. Generování hodnot bylo standardizováno až v SQL2006.
17 REFERENČNÍ INTEGRITA I CREATE TABLE osoby ( os_cislo NUMBER(5) PRIMARY KEY, rod_cis VARCHAR2(30) NOT NULL UNIQUE, cislo_prac NUMBER(5) NOT NULL, CONSTRAINT fk_prac FOREIGN KEY ( cislo_prac ) REFERENCES pracoviste ( cislo_prac ) ON UPDATE CASCADE ON DELETE CASCADE ) 1. Integritní omezení fk_prac říká, že atribut cislo_prac je cizím klíčem, jehož hodnota odkazuje na takový řádek tabulky pracoviste, jehož hodnota primárního klíče se shoduje s hodnotou atributu cislo_prac. 2. Znamená to tedy, že řádky reprezentující všechny osoby z daného pracoviště se prostřednictvím atributu cislo_prac odkazují na stejnou řádku tabulky pracoviste, jež odpovídá jejich společnému pracovišti. 3. Co se stane, když někdo změní hodnotu primárního klíče jejich společného pracoviště? To řeší sekce ON UPDATE... V žádném případě by nemělo dojít k tomu, že nějaký řádek tabulky osoby bude odkazovat na neexistující řádek tabulky pracoviste. V daném případě je specifikováno ON UPDATE CASCADE. To znamená, že příkaz modifikující hodnotu primárního klíče bude proveden, ale současně budou změněny příslušným způsobem hodnoty cizího klíče (atributu cislo_prac) u všech řádků tabulky osoby, jež reprezentují osoby zařazené na pracoviště, jehož primární klíč jsme změnili.
18 REFERENČNÍ INTEGRITA II CREATE TABLE osoby ( os_cislo NUMBER(5) PRIMARY KEY, rod_cis VARCHAR2(30) NOT NULL UNIQUE, cislo_prac NUMBER(5) NOT NULL, CONSTRAINT fk_prac FOREIGN KEY ( cislo_prac ) REFERENCES pracoviste ( cislo_prac ) ON UPDATE CASCADE ON DELETE CASCADE ) 4. Co se stane, když někdo zruší řádek tabulky pracoviště, který reprezentuje jejich společné pracoviště? To řeší sekce ON DELETE... Opět by v žádném případě nemělo dojít k tomu, že nějaký řádek tabulky osoby bude odkazovat na neexistující řádek tabulky pracoviste. V daném případě je specifikováno ON DELETE CASCADE. To znamená, že příkaz rušící jejich společné pracoviště bude proveden, ale současně budou smazány i všechny řádky tabulky osoby, jež odpovídaly odsobám pracujícím na zrušeném pracovišti.
19 REFERENČNÍ INTEGRITA III CREATE TABLE osoby ( os_cislo NUMBER(5) PRIMARY KEY, rod_cis VARCHAR2(30) NOT NULL UNIQUE, cislo_prac NUMBER(5) NOT NULL, CONSTRAINT fk_prac FOREIGN KEY ( cislo_prac ) REFERENCES pracoviste ( cislo_prac ) ON UPDATE CASCADE ON DELETE CASCADE ) Jaké jsou jiné možnosti než CASCADE? 1. RESTRICT změna, která by porušila referenční integritu se neprovede. DB systém odmítne změnu primárního klíče (ON UPDATE) nebo rušení řádku (ON DELETE) provést chybová hláška, výjimka. 2. SET NULL změna se provede, ale řádky tabulky osoby odkazující svým cizím klíčem na modifikovaný (změna primárního klíče nebo zrušení řádku) řádek tabulky pracoviste dostanou ve sloupci cislo_prac hodnotu NULL (Nebudou tedy odkazovat na neexistující řádek). 3. SET DEFAULT obdoba jako SET NULL určená pro případ, že cizí klíč má definovanou defaultní hodnotu. Modifikátory CASCADE, RSTRICT, SET NULL, SET DEFAULT se v sekcích ON UPDATE a ON DELETE nastavují nezávisle.
20 SELECT VIII Vestavěné (BUILT-IN) agregační funkce COUNT( sloupec ) COUNT(*) Počet řádků vyhovujících podmínce WHERE. Protože výsledek nezávisí na jménu sloupce uvedeného v argumentu, lze místo sloupce uvést znak *. COUNT( DISTINCT sloupec ) Počet různých hodnot uvedeného sloupce vyskytujících se ve všech řádcích vyhovujících podmínce WHERE. SUM( sloupec ) AVG( sloupec ) MAX( sloupec ) MIN( sloupec ) Součet hodnot ve sloupci přes všechny řádky vyhovující podmínce WHERE. Sloupec musí být některého numericko typu. Průměr hodnot ve sloupci přes všechny řádky splňující WHERE. Sloupec musí být některého numerického typu. Největší hodnota ve sloupci přes všechny řádky splňující WHERE. U numerických číselně, u stringu podle abecedy,... Nejmenší hodnota ve sloupci přes všechny řádky splňující WHERE. U numerických číselně, u stringu podle abecedy,...
21 SELECT IX Tabulka PACKAGE PACKID PACKNAME PACKVER PACKTYPE PACKCOST AC01 Boise Accounting 3.00 Accounting DB32 Manta 1.50 Database DB33 Manta 2.10 Database SS11 Limitless View 5.30 Spreadsheet WP08 Words & More 2.00 Word Processing WP09 Freeware Processing 4.27 Word Processing Count: Počet řádků nezávisí na atributu uvedeném v argumentu funkce COUNT. Stejného výsledku tedy dosáhneme, uvedeme-li na místě argumentu jméno libovolného sloupce nebo znak *. SELECT COUNT(*) FROM PACKAGE WHERE PACKTYPE = 'Database' SELECT COUNT(PACKID) FROM PACKAGE WHERE PACKTYPE = 'Database' Výsledek: COUNT1 2 Název sloupce zvolil databázový systém sám.
22 Tabulka PACKAGE SELECT X PACKID PACKNAME PACKVER PACKTYPE PACKCOST AC01 Boise Accounting 3.00 Accounting DB32 Manta 1.50 Database DB33 Manta 2.10 Database SS11 Limitless View 5.30 Spreadsheet WP08 Words & More 2.00 Word Processing WP09 Freeware Processing 4.27 Word Processing SELECT COUNT( DISTINCT PACKNAME ) FROM PACKAGE WHERE PACKTYPE = 'Database' Výsledek: COUNT1 1 Podmínce WHERE vyhovují dva řádky. Oba však mají atribut PACKNAME roven řetězci Manta. Výsledkem je tudíž číslo 1, neboť ve všech řádcích vyhovujících podmínce WHERE je pouze jedna rozdílná hodnota.
23 Tabulka PACKAGE SELECT XI PACKID PACKNAME PACKVER PACKTYPE PACKCOST AC01 Boise Accounting 3.00 Accounting DB32 Manta 1.50 Database DB33 Manta 2.10 Database SS11 Limitless View 5.30 Spreadsheet WP08 Words & More 2.00 Word Processing WP09 Freeware Processing 4.27 Word Processing SELECT COUNT( PACKID ), SUM( PACKCOST ) FROM PACKAGE Výsledek: COUNT1 SUM
24 Tabulka PACKAGE SELECT XII PACKID PACKNAME PACKVER PACKTYPE PACKCOST AC01 Boise Accounting 3.00 Accounting DB32 Manta 1.50 Database DB33 Manta 2.10 Database SS11 Limitless View 5.30 Spreadsheet WP08 Words & More 2.00 Word Processing WP09 Freeware Processing 4.27 Word Processing SELECT COUNT( PACKID ), AVG( PACKCOST ) FROM PACKAGE Výsledek: COUNT1 AVG
25 Tabulka PACKAGE SELECT XIII PACKID PACKNAME PACKVER PACKTYPE PACKCOST AC01 Boise Accounting 3.00 Accounting DB32 Manta 1.50 Database DB33 Manta 2.10 Database SS11 Limitless View 5.30 Spreadsheet WP08 Words & More 2.00 Word Processing WP09 Freeware Processing 4.27 Word Processing SELECT COUNT( PACKID ), MAX( PACKCOST ) FROM PACKAGE Výsledek: COUNT1 MAX
26 SELECT XIV Tabulka PACKAGE PACKID PACKNAME PACKVER PACKTYPE PACKCOST AC01 Boise Accounting 3.00 Accounting DB32 Manta 1.50 Database DB33 Manta 2.10 Database SS11 Limitless View 5.30 Spreadsheet WP08 Words & More 2.00 Word Processing WP09 Freeware Processing 4.27 Word Processing SELECT COUNT( PACKID ), MIN( PACKCOST ) FROM PACKAGE Výsledek: COUNT1 MIN Poznámka: 1. Věty s NULL value v příslušném sloupci jsou u SUM, AVG, MAX, MIN ignorovány 2. Může nastat situace, kdy COUNT(*) a COUNT(atribut) vrátí rozdílné hodnoty a to tehdy, když pro některé věty má atribut atribut nepřiřazené hodnoty (NULL).
27 Tabulka PC SELECT XV TAGNUM COMPID EMPNUM LOCATION M Accounting B Sales C I Info Systems B Home M Home Použitím klíčového slova DISTINCT v sekci SELECT zabráníme vícenásobnému uvedení téže věty ve výsledku dotazu. SELECT EMPNUM FROM PC SELECT DISTINCT EMPNUM FROM PC Výsledek: Výsledek: EMPNUM EMPNUM
28 GROUP BY I Tabulka SOFTWARE PACKID TAGNUM INSTDATE SOFTCOST AC /13/ DB /03/ DB /15/ DB /27/ WP /12/ WP /15/ WP /27/ WP /30/ WP /27/ Věty, které projdou případnou podmínkou WHERE, se seskupí do skupin se stejnou hodnotou atributu TAGNUM. Pro každou takovou skupinu se určí suma hodnot atributu SOFTCOST, která se objeví ve výsledku viz sloupec SUM1 výsledku dotazu. Bez uvedení sekce ORDER BY by nebylo pořadí skupin ve výsledku definováno. Podmínka HAVING se vztahuje na celou skupinu a pomocí ní lze některé skupiny z výsledku dotazu vyfiltrovat. SELECT TAGNUM, SUM( SOFTCOST ) FROM SOFTWARE GROUP BY TAGNUM ORDER BY TAGNUM SELECT TAGNUM, SUM( SOFTCOST ) FROM SOFTWARE GROUP BY TAGNUM HAVING SUM( SOFTCOST ) > 600 ORDER BY TAGNUM Výsledek: Výsledek: G_TAGNUM SUM1 G_TAGNUM SUM
29 Tabulka SOFTWARE PACKID TAGNUM INSTDATE SOFTCOST AC /13/ DB /03/ DB /15/ DB /27/ WP /12/ WP /15/ WP /27/ WP /30/ WP /27/ GROUP BY II SELECT TAGNUM, SUM( SOFTCOST ) FROM SOFTWARE GROUP BY TAGNUM ORDER BY TAGNUM SELECT TAGNUM, SUM( SOFTCOST ) FROM SOFTWARE GROUP BY TAGNUM HAVING SUM( SOFTCOST ) > 600 ORDER BY TAGNUM Výsledek: Výsledek: G_TAGNUM SUM1 G_TAGNUM SUM Další tři skupiny se do výsledku (narozdíl od příkladu vlevo) nedostaly, neboť v jejich případě nebyla hodnota sloupce SUM1 větší než 600, jak požaduje podmínka HAVING.
30 HAVING versus WHERE Podmínka WHERE se vyhodnocuje pro jednotlivou větu a buď pro danou hodnotu nabývá hodnoty true nebo false. Věty, pro něž podmínka WHERE jsou vybrány do výstupu dotazu. Podmínka WHERE se tedy vyhodnocuje pro jednu větu a postupně se aplikuje na všechny věty vstupní tabulky (nebo joinu vstupních tabulek). V podmínce WHERE se tedy nemohou vyskytnout agregační funkce, protože aplikace agregační funkce na jedinou větu nemá smysl. Podmínka HAVING se vyhodnocuje pro všechny věty dané skupiny najednou. Pro danou skupinu vět nabývá hodnody true nabo false. Neaplikuje se tedy větu po větě, ale na všechny věty dané skupiny najednou. Skupiny s podmínkaou HAVING vyhodnocenou jako true jsou vybrány do výsledku dotazu. Protože se podmínka HAVING vyhodnocuje nad několika větami současně, má smysl, aby (narozdíl od podmínky WHERE) obsahovala agregační funkce. Kromě agregačních funkcí může obsahovat i atributy vyjmenované v sekci GROUP BY. Jiné atributy než ty, které jsou vyjmenovány v sekci GROUP BY, se nemouhou v podmínce HAVING vyskytnout (s výjimkou výskytu na místě argumentu nějaké agregační funkce), protože mohou mít pro různé věty téže skupiny různé hodnoty a nebylo by tudíž možné určit jednoznačnou hodnotu takového atributu pro celou skupinu.
31 JOIN I Tabulka EMPLOYEE EMPNUM EMPNAME EMPPHONE 124 Alvarez Feinstein Dinh 2963 Tabulka PC TAGNUM COMPID EMPNUM LOCATION M Accounting B Sales C I Info Systems B Home M Home Rádi bychom se dotazovali na relaci, jež vznikne spojením těchto dvou tabulek.
32 JOIN II SELECT * FROM PC, EMPLOYEE Join je spojení tabulek metodou každý s každým, t.j. každá věta z levé tabulky se spáří s každou větou z pravé tabulky. To znamená, má-li tabulka PC 5 řádků a tabulka EMPLOYEE 3 řádky, má JOIN obou tabulek 15 řádků viz níže. Výsledek: TAGNUM COMPID EMPNUM LOCATION EMPNUM EMPNAME EMPPHONE M Accounting 124 Alvarez M Accounting 567 Feinstein M Accounting 611 Dinh B Sales 124 Alvarez B Sales 567 Feinstein B Sales 611 Dinh C Info Systems 124 Alvarez C Info Systems 567 Feinstein C Info Systems 611 Dinh B Home 124 Alvarez B Home 567 Feinstein B Home 611 Dinh M Home 124 Alvarez M Home 567 Feinstein M Home 611 Dinh 2963
33 JOIN III (equijoin) Častější operací je tzv. equijoin, t.j. výsledkem je join pouze těch řádků z levé a pravé tabulky, které se shodují v některém sloupci. Například equijoin tabulek PC a EMPLOYEE, který je definován shodou hodnoty sloupce EMPNUM tabulky PC se sloupcem EMPNUM tabulky EMPLOYEE, se realizuje příkazem: SELECT TAGNUM, COMPID, EMPLOYEE.EMPNUM, EMPNAME FROM PC, EMPLOYEE WHERE PC.EMPNUM = EMPLOYEE.EMPNUM Výsledek: TAGNUM COMPID EMPLOYEE.EMPNUM EMPNAME M Dinh B Alvarez C Feinstein B Alvarez M Feinstein
34 JOIN IV (equijoin) Další příklad: SELECT TAGNUM, COMPID, EMPLOYEE.EMPNUM, EMPNAME FROM PC, EMPLOYEE WHERE PC.EMPNUM = EMPLOYEE.EMPNUM AND LOCATION = 'Home' Podmínka pro equijoin může být doplněna v sekci WHERE o další selekční podmínky. Výsledek: TAGNUM COMPID EMPLOYEE.EMPNUM EMPNAME B Alvarez M Feinstein
35 JOIN V (equijoin) V sekci USING je seznam atributů (musí mít stejná jména v obou tabulkách), přes které se provádí equi-join. SELECT TAGNUM, COMPID, EMPNUM, EMPNAME FROM PC INNER JOIN EMPLOYEES USING (EMPNUM) INNER JOIN (vnitřní join) - když se k větě z první tabulky nenajde v druhé tabulce věta splňující podmínku joinu, ona věta z první tabulky se do výsledku nepromítne. Slovo INNER se může vynechat, je default. Opakem je OUTER JOIN.
36 JOIN VI (equijoin) SELECT TAGNUM, COMPID, EMPNUM, EMPNAME FROM PC NATURAL JOIN EMPLOYEES Klíčové slovo NATURAL znamená, že se equ-join provádí přes všechny stejnojmenné atributy v obou tabulkách. Pak se nemusí uvádět sekce USING.
37 JOIN VII (equijoin) SELECT TAGNUM, COMPID, EMPNUM, EMPNAME FROM PC JOIN EMPLOYEES ON PC.EMPNUM = EMPLOYEES.EMPNUM Pokud nemají atributy, přes které se dělá equi-join, v obou tabulkách stejná jména, mohu podmínku equi-joinu vyjádřit v sekci ON.
38 JOIN VIII (OUTER JOIN ) Narozdíl od INNER JOIN se v případě OUTER JOIN do výsledku promítne věta z levé ( LEFT OUTER JOIN ), respektive z pravé ( RIGHT OUTER JOIN ), respektive z obou tabulek ( FULL OUTER JOIN ), i v případě, že nemá v druhé tabulce partnerskou větu. Atributy odpovídající chybějící partnerské větě dostanou hodnotu NULL. SELECT TAGNUM, COMPID, EMPNUM, EMPNAME FROM PC LEFT OUTER JOIN EMPLOYEES Namísto LEFT zde může být RIGHT nebo FULL
39 UNION SELECT COMPID, MFGNAME FROM COMPUTER WHERE PROCTYPE = '486DX' UNION SELECT COMPUTER.COMPID, MFGNAME FROM COMPUTER, PC WHERE COMPUTER.COMPID = PC.COMPID AND LOCATION = 'Home'
40 INTERSECTION SELECT COMPID, MFGNAME FROM COMPUTER WHERE PROCTYPE = '486DX' INTERSECT SELECT COMPUTER.COMPID, MFGNAME FROM COMPUTER, PC WHERE COMPUTER.COMPID = PC.COMPID AND LOCATION = 'Home'
41 DIFFERENCE SELECT COMPID, MFGNAME FROM COMPUTER WHERE PROCTYPE = '486DX' EXCEPT SELECT COMPUTER.COMPID, MFGNAME FROM COMPUTER, PC WHERE COMPUTER.COMPID = PC.COMPID AND LOCATION = 'Home'
42 Integritní omezení I Povinný údaj Unikátnost hodnoty NOT NULL UNIQUE Přípustné hodnoty: CHECK (PC.LOCATION IN ( 'Accounting', 'Sales', 'Info Systems', 'Home') ) nebo ekvivalentně CHECK ( PC.LOCATION = 'Accounting' OR PC.LOCATION = 'Sales' OR PC.LOCATION = 'Info Systems' OR PC.LOCATIONS = 'Home' ) Primární klíče: Cizí klíče: PRIMARY KEY (TAGNUM) PRIMARY KEY (PACKID, TAGNUM) FOREIGN KEY (COMPID) REFERENCES COMPUTER
43 Integritní omezení II Příklad: CREATE TABLE PC ( TAGNUM CHAR(5), COMPID CHAR(4), EMPNUM DECIMAL(3), LOCATION CHAR(12) CHECK ( PC.LOCATION IN ('Accounting', 'Sales','Info Systems', 'Home') ) PRIMARY KEY (TAGNUM) FOREIGN KEY (COMPID) REFERENCES COMPUTER FOREIGN KEY (EMPNUM) REFERENCES EMPLOYEE )
44 Integritní omezení III CREATE ASSERTION A1 CHECK ( NOT EXISTS ( SELECT * FROM PACKAGE WHERE PACKCOST < ( SELECT MAX (SOFTCOST) FROM SOFTWARE WHERE PACKAGE.PACKID = SOFTWARE.PACKID ) ) ) ztratilo-li toto integritní omezení smysl, lze je odstranit: DROP ASSERTION A1
45 Domény uživatelsky definované datové typy CREATE DOMAIN LOCATIONS CHAR(12) CHECK ( VALUE = 'Accounting' OR VALUE = 'Sales' OR VALUE = 'Info Systems' OR VALUE = 'Home' )... potom použiji takto: CREATE TABLE PC ( LOCATION LOCATIONS ) Deklarace atributu LOCATION pomocí domény LOCATIONS.
46 Vnořené dotazy, subquery I SELECT PACKID, PACKNAME FROM PACKAGE WHERE PACKCOST > ( SELECT AVG( PACKCOST ) FROM PACKAGE WHERE PACKTYPE = 'Database' ) Komentář: Nejprve se vyhodnotí subquery, její výsledek se uloží do dočasné tabulky (v tomto případě 1 sloupec, 1 řádek), pak se vyhodnotí vnější query. Výsledek vnořeného dotazu byl: AVG Výsledek celého dotazu: PACKID AC01 DB33 PACKNAME Boise Accounting Manta
47 Vnořené dotazy, subquery II Stejného výsledku, jako dává equijoin, lze dosáhnout i jinými prostředky viz níže. Měla by se však dávat přednost equijoinu před použitím zanořených dotazů. SELECT PACKNAME FROM PACKAGE WHERE PACKID IN ( SELECT PACKID FROM SOFTWARE WHERE TAGNUM = '32808') SELECT PACKNAME FROM SOFTWARE JOIN PACKAGE WHERE TAGNUM = '32808' Výsledek: PACKNAME Boise Accounting Manta Výsledek: PACKNAME Boise Accounting Manta
48 Vnořené dotazy, subquery III IN versus EXISTS SELECT TAGNUM, COMPID FROM PC WHERE EXISTS ( SELECT * FROM SOFTWARE WHERE PC.TAGNUM = SOFTWARE.TAGNUM AND PACKID = 'WP08') SELECT TAGNUM, COMPID FROM PC WHERE TAGNUM IN ( SELECT TAGNUM FROM SOFTWARE WHERE PACKID = 'WP08') Korelovaný poddotaz (correlated subquery): Vnořený dotaz se vyhodnocuje (provádí) pro každou řádku vnějšího dotazu znovu, neboť hodnota atributu PC.TAGNUM pro momentálně vyhodnocovaný daný řádek vnějšího dotazu je vlastně parametrem dotazu vnořeného. Použití korelovaných poddotazů bychom se měli vyhnout, neboť je mimořádně neefektivní. Výsledek: Výsledek: TAGNUM COMPID TAGNUM COMPID M M B B C C007
49 Vnořený select: kam všude SELECT (SELECT...) FROM (SELECT...) tname WHERE abc > (SELECT...) or abc IN (SELECT...) GROUP BY... HAVING... (SELECT...) často musí vracet jeden sloupec někdy i jedinou řádku (u aritmetického porovnávání)
50 Vnořený select: kam všude Vybrané názory z diskusních fór: Has anyone ever used a statement like this: Select column1, column 2, (select columna from table2) from table1 where...? This is contrary to anything I have ever seen in SQL (especially ANSI/ISO SQL), and I would appreciate your comments. Thanks SK No I haven't, not once in in 17 years. More to the point I have no intention of ever doing so. That would give you a cartesian product if tyhe parse didn't get really upset. Table1 * Table2 records. Same as Select Column1,Column2,ColumnA From Table1,Table2
51 Kvantifikátor ALL Slovní formulace dotazu: Najdi instalaci software, jejíž pořizovací cena byla větší než současná katalogová cena libovolného produktu. SOFTWARE PACKID TAGNUM INSTDATE SOFTCOST AC /13/ DB /03/ DB /15/ DB /27/ WP /12/ WP /15/ WP /27/ WP /30/ WP /27/ SELECT PACKID, TAGNUM, INSTDATE, SOFTCOST FROM SOFTWARE WHERE SOFTCOST > ALL ( SELECT PACKCOST FROM PACKAGE ) Výsledek: PACKID TAGNUM INSTDATE SOFTCOST AC /13/
52 Kvantifikátor ANY Slovní formulace dotazu: Najdi instalaci software, jejíž pořizovací cena byla větší než současná katalogová cena některého produktu. SOFTWARE PACKID TAGNUM INST DATE SOFT COST AC /13/ DB /03/ DB /15/ DB /27/ WP /12/ WP /15/ WP /27/ WP /30/ WP /27/ SELECT PACKID, TAGNUM, INSTDATE, SOFTCOST FROM SOFTWARE WHERE SOFTCOST > ANY ( SELECT PACKCOST FROM PACKAGE ) Výsledek: PACKID TAGNUM INSTDATE SOFTCOST AC /13/ DB /03/ DB /15/ DB /27/ WP /12/ WP /15/ WP /27/ WP /30/ WP /27/
53 Význam použití ALIASu Slovní formulace dotazu: Najdi všechny dvojice produktů mající tentýž název. PACKAGE PACKID PACKNAME PACKVER PACKTYPE PACKCOST AC01 Boise Accounting 3.00 Accounting DB32 Manta 1.50 Database DB33 Manta 2.10 Database SS11 Limitless View 5.30 Spreadsheet WP08 Words & More 2.00 Word Processing WP09 Freeware Processing 4.27 Word Processing Tabulku PACKAGE otevírám 2x jednou k ní budu přistupovat pod jménem FIRST, podruhé pod jménem SECOND. Zajímají mne tedy všechny kombinace vět z tabulek FIRST a SECOND, které se shodují v hodnotě atributu PACKNAME. SELECT FIRST.PACKID, FIRST.PACKNAME, SECOND.PACKID, SECOND.PACKNAME FROM PACKAGE FIRST, PACKAGE SECOND WHERE FIRST.PACKNAME = SECOND.PACKNAME AND FIRST.PACKID < SECOND.PACKID Výsledek: PACKID PACKNAME PACKID PACKANME DB32 Manta DB33 Manta
54 Vytvoření kopie existující tabulky I CREATE TABLE DBPACK ( PACKID CHAR(4), PACKNAME CHAR(20), PACKVER NUMERIC(4,2), PACKCOST NUMERIC(5,2) ) INSERT INTO DBPACK SELECT * FROM PACKAGE WHERE PACKTYPE = 'Database' V tomto případě má cílová tabulka DBPACK stejnou strukturu jako vzorová tabulka PACKAGE,
55 Vytvoření kopie existující tabulky II CREATE TABLE WPPACK ( PACKID CHAR(4), PACKNAME CHAR(20), PACKTYPE CHAR(15) ) INSERT INTO DBPACK SELECT PACKID, PACKNAME, PACKTYPE FROM PACKAGE WHERE PACKTYPE = 'Word Processing' ORDER BY PACKNAME V tomto případě bude množina atributů cílové tabulky podmnožinou atributů vzorové tabulky. Stejně tak množina řádků cílové tabulky bude podmnožinou množiny řádků vzorové tabulky.
56 VIEW I View lze chápat jako tabulku, jež neobsahuje explicitně zadaná data. Tato tabulka je pohledem na jinou tabulku nebo join tabulek. View přitom slouží nejen k získání dat z databáze ale i k jejich modifikaci. CREATE VIEW DATABASE AS SELECT PACKID, PACKNAME, PACKCOST FROM PACKAGE WHERE PACKTYPE = 'Database' VIEW nemusí být materializováno zaniká spolu s databázovým spojením (session). Materializované VIEW existuje nezávisle na databázovém spojení (session).
57 VIEW II PACKAGE PACKID PACKNAME PACKVER PACKTYPE PACKCOST AC01 Boise Accounting 3.00 Accounting DB32 Manta 1.50 Database DB33 Manta 2.10 Database SS11 Limitless View 5.30 Spreadsheet WP08 Words & More 2.00 Word Processing WP09 Freeware Processing 4.27 Word Processing Obsahem View DATABASE budou buňky se žlutým pozadím. Při definici view můžeme omezit jeho přístup pouze k vyjmenovaným atributům. CREATE VIEW DATABASE ( PACKID, PACKNAME, PACKCOST ) AS SELECT PACKID, PACKNAME, PACKCOST FROM PACKAGE WHERE PACKTYPE = 'Database' Na view se lze obracet stejně jako na tabulku. V tomto případě bude výsledkem jediná řádka: PACKID PACKNAME PACKCOST DB33 Manta
58 VIEW III Atributy view mohou mít jiná jména než atributy zdrojové tabulky. CREATE VIEW DATABASE ( PKID, NAME, COST ) AS SELECT PACKID, PACKNAME, PACKCOST FROM PACKAGE WHERE PACKTYPE = 'Database' Význam view: 1. Datová nezávislost. Změna struktury databáze u atributů neúčastnících se view neovlivní práci s view. 2. Různé pohledy na tatáž data. Uživatel nevidí, co nemá. Problémy při update view: pokud view nezahrnuje všechny sloupce p;vodní tabulky a přidáme větu do view, jaká hodnota se v původní tabulce přiřadí atributům neúčastnícím se view? NULL! pokus o přidání řádku ('AC01','DATAQUICK',250.00) musí selhat, protože v tabulce PACKAGE již věta s primárním klíce 'AC01' existuje. To ovšem může uživatele view překvapit, protože on vidí jen věty obsažené ve view.
59 Změna obsahu databáze UPDATE PACKAGE SET PACKNAME = 'Manta II' WHERE PACKID = 'DB33' UPDATE PACKAGE SET PACKCOST = PACKCOST * 1.02 WHERE PACKTYPE = 'Database' AND PACKCOST > 400 UPDATE EMPLOYEE SET EMPPHONE = NULL WHERE EMPNUM = 124 Zvětši hodnotu atributu PACKCOST tabulky PACKAGE o dvě procenta ve všech větách, pro něž je splněna podmínka WHERE. Odstraň hodnotu atributu EMPPHONE tabulky EMPLOYEE ve všech větách, pro něž je splněna podmínka WHERE.
60 Změna struktury databáze ALTER TABLE EMPLOYEE ADD EMPTYPE CHAR(1) Přidání sloupce do existující tabulky. Nově přidávaný atribut musí akceptovat NULL (nepřiřazenou hodnotu), ta se totiž stane hodnotou atributu EMPTYPE (nově přidaného) ve všech dosud existujících větách. Přidání sloupce do existující tabulky. Nově přidávanému atributu EMPTYPE ve všech dosud existujících větách bude přiřazena hodnota H. ALTER TABLE EMPLOYEE ADD EMPTYPE CHAR(1) INIT = 'H' ALTER TABLE PACKAGE DELETE PACKVER Změna struktury tabulky PACKAGE spočívající v odstranění atributu (sloupce) PACKVER. Změna struktury tabulky PACKAGE spočívající ve změně typu atributu EMPNAME. Pozor na ztrátu stávajících dat nebo jejich přesnosti! ALTER TABLE EMPLOYEE CHANGE COLUMN EMPNAME TO CHAR(30) Zrušení celé tabulky COMPUTER. DROP TABLE COMPUTER
61 Udělení práva k provádění akcí Uživatel JONES bude smět číst data z tabulky EMPLOYEE. GRANT SELECT ON EMPLOYEE TO JONES Libovolný uživatel bude smět číst atributy PACKID, PACKNAME a PACKTYPE tabulky PACKAGE. GRANT SELECT ON PACKAGE ( PACKID, PACKNAME, PACKTYPE ) TO PUBLIC Uživatelé SMITH a BROWN budou smět vkládat řádky do tabulky PACKAGE. GRANT INSERT ON PACKAGE TO SMITH, BROWN Uživatel ANDERSON bude smět měnit hodnoty atributů tabulky EMPLOYEE. GRANT UPDATE ON EMPLOYEE ( EMPNAME, EMPPHONE ) TO ANDERSON Uživatel MARTIN bude smět rušit řádky tabulky SOFTWARE. GRANT DELETE ON SOFTWARE TO MARTIN Uživatel ROBERTS bude smět vytvářet indexy pro tabulku COMPUTER. GRANT INDEX ON COMPUTER TO ROBERTS Uživatel THOMAS bude smět měnit strukturu tabulky EMPLOYEE. GRANT ALTER ON EMPLOYEE TO THOMAS Uživatel WILSON bude smět dělat cokoliv (viz výše) s tabulkami COMPUTER a EMPLOYEE. GRANT ALL ON COMPUTER, EMPLOYEE, PC TO WILSON
62 Odejmutí přístupového práva REVOKE SELECT ON EMPLOYEE FROM JONES Příkazy GRANT a REVOKE jsou aplikovatelné jak na tabulky tak i na view.
63 Indexy I výhody: nevýhody: zvýšení efektivnosti vyhledávání (záleží na kvalitě optimalizce dotazu) třídění nároky na kapacitu média index musí být updatován při každém update databáze Ačkoliv standard SQL92 nedefinuje následující příkazy pro vytvoření a odstranění indexu, ve většině aplikací jsou k disposici v téže syntaktické podobě. CREATE INDEX CUSTIND2 ON EMPLOYEE (COMPID) Vytvoří index pojmenovaný CUSTIND2 pro tabulku EMPLOYEE. Indexačním výrazem bude jednoprvková množina sloupců { COMPID }.
64 Indexy II CREATE INDEX SOFTIND ON SOFTWARE (PACKID, TAGNUM) Index může být vytvořen nad více než jedním atributem (sloupcem).
65 Indexy II CREATE INDEX SOFTIND ON SOFTWARE (PACKID, TAGNUM) Index může být vytvořen nad více než jedním atributem (sloupcem). CREATE INDEX PACKIND3 ON PACKAGE (PACKNAME, PACKVER DESC) Indexu nastavit vzestupné nebo sestupné třídění.
66 Indexy III Odstranění nepotřebného klíče: DROP INDEX PACKIND
67 Indexy IV CREATE UNIQUE INDEX PACKIND ON PACKAGE (PACKID) Správa indexu nedovolí, aby se v tabulce vyskytlo více vět s touž hodnotou atributu(ů) nad nímž (nimiž) je postaven daný index. SQL92 umožňuje předepsat tuto jednoznačnost v definici tabulky popř. dalšími prostředky pro definici integritních omezení. To je správnější, neboť tak se tato důležitá podmínka stává součástí definice schematu (fyzického datového modelu) a není ponechána na vůli správce databáze, zda vytvoří vhodný index. (Ne)Existence indexu má mít vliv pouze na efektivitu (výkon) databáze a nikoliv na její funkci (a definice jednoznčnosti některého atributu je funkční záležitostí).
Databázové systémy. Dotazovací jazyk SQL - II
Databázové systémy Dotazovací jazyk SQL - II SELECT I SELECT FROM WHERE GROUP BY HAVING
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
Dotazovací jazyk SQL II
Dotazovací jazyk SQL II SELECT VIII Vestavěné (BUILT-IN) agregační funkce COUNT( sloupec ) COUNT(*) Počet řádků vyhovujících podmínce WHERE. Protože výsledek nezávisí na jménu sloupce uvedeného v argumentu,
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
Databázové systémy. Dotazovací jazyk SQL - II
Databázové systémy Dotazovací jazyk SQL - II SELECT VIII Vestavěné (BUILT-IN) agregační funkce COUNT( sloupec ) COUNT(*) Počet řádků vyhovujících podmínce WHERE. Protože výsledek nezávisí na jménu sloupce
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
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
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
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
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
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:
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
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á
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é
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
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
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é
Databázové systémy. Dotazovací jazyk SQL - III
Databázové systémy Dotazovací jazyk SQL - III Vnořený select: kam všude Vytvoření kopie existující tabulky I Vytvoření kopie existující tabulky II Integritní omezení III SQL tříhodnotová logika SQL tříhodnotová
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
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é
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
Ú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
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é
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
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
Základní přehled SQL příkazů
Základní přehled SQL příkazů SELECT Základní použití Příkaz SELECT slouží k získání dat z tabulky nebo pohledu v požadované podobě. Získání všech řádků a sloupců z tabulky SELECT * FROM Person.Contact
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,
- 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
Ú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
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
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
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í
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
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/
Relace x vztah (relationship)
Relace x vztah (relationship) Peter Chen, Peter Pin-Shan (March 1976): "The Entity-Relationship Model Toward a Unified View of Data". ACM Transactions on Database Systems 1. E-R diagram v Chennově notaci
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é
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
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
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
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
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í
A5M33IZS Informační a znalostní systémy. Relační databázová technologie
A5M33IZS Informační a znalostní systémy Relační databázová technologie Přechod z konceptuálního na logický model Entitní typ tabulka Atribut entitního typu sloupec tabulky Vztah: vazba 1:1 a 1:N: Vztah
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
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
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í
Ú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
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
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.
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
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í
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í
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
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
Ú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í
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í
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
Relační databázová technologie
Relační databázová technologie Klíč: množina (možná jednoprvková) atributů (sloupců), jež jednoznačně idetifikuje danou entitu. Poznámky: 1. Daný entitní typ (tabulka) může mít více klíčů. Například (i)
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
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
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
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
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,
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í
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á
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
Ú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
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
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
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
MySQL. mysql> CREATE DATABASE nova CHARACTER SET latin2 COLLATE latin2_czech_cs; Query OK, 1 row affected (0.02 sec)
MySQL přes MySQL Command Line Client Zobrazení existujících databází mysql> SHOW DATABASES; Database test Vytvoření databáze mysql> CREATE DATABASE krouzek; Query OK, 1 row affected (0.00 sec) mysql> SHOW
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í
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
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í
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.
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
Informační systémy ve zdravotnictví. 8. cvičení
Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Informační systémy ve zdravotnictví 8. cvičení Ing. Petr Lukáš petr.lukas@nativa.cz Ostrava, 2014 Opakování Klauzule
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
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
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ů,
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í
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,
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
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í
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í
Ú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í
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
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ů,
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
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
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
Stored Procedures & Database Triggers, Tiskové sestavy v Oracle Reports
, Marek Rychlý Vysoké učení technické v Brně Fakulta informačních technologií Ústav informačních systémů Demo-cvičení pro IDS 9. dubna 2014 Marek Rychlý Stored Procedures & Database Triggers, Demo-cvičení
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...
Databáze I. Přednáška 7
Databáze I Přednáška 7 Objektové rozšíření SQL Objektově relační databáze SQL:1999 objektové rozšíření SQL vztahuje se k objektově relačním databázovým systémům ukládají objekty do relační databáze umožňují
KIV/ZIS - SELECT, opakování
KIV/ZIS - SELECT, opakování soubor 4_databaze.accdb (lze použít ten z minula) http://home.zcu.cz/~krauz/zis/4_databaze.accdb minule: SELECT FROM WHERE ORDER BY SELECT sloupce jaké sloupce chceme vybrat
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
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é
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
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),
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
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í