OBSAH WEBU
ČTĚTE!
Toto je starší verze dokumentu!
SQL = structured query language, je standardizovaný dotazovací jazyk používaný pro práci s daty v relačních databázích
Příkazy e mohou více či méně lišit pro konkrétní databázi
SQL příkazy se dělí na čtyři základní skupiny:
Lze označit jako DDL – Data Definition Language
CREATE - slouží pro vytváření nových objektů
- například: tabulku, index, pohled, proceduru
Vytvoření pohledu
CREATE VIEW <nazev pohledu> AS <SELECT prikaz>
Vytvoření indexu
CREATE [UNIQUE] [CLUSTERED | NONCLUSTERED] INDEX <nazev indexu> ON <nazev tabulky nebo pohledu>(<nazev sloupce> [ASC | DESC] [,...n])
ALTER - slouží pro upravení objektů
DROP - pro smazání objektů
Slouží pro manipulaci s daty.
DELETE - maže data z tabulky
DELETE from users where (age < 13)
UPDATE - aktualizuje data
UPDATE users set city = 'Brno', wtf = 'FIT' where (surname = 'Novák')
INSERT - vkládáme nová data
INSERT into users (name, surname, age) values ('Jiri', 'Janda', 22)
SELECT - nejčastější příkaz
Transakce a prava jsme prakticky neprobírali.
Slouží ke spojování výsledku dotazu SELECT ze dvou vstupních množin (typicky tabulek relační databáze).
Vnitřní spojení - Nejjednodušší variantou je tzv. INNER JOIN (pozn. INNER a OUTER není nutné používat a v podstatě se ani nedoporučuje používat - zbytečně prodlužují zápis). Ten odpovídá kartézskému součinu tabulek a aplikaci predikátu na tento součin.
JOIN) je zvláštním případem vnitřního spojování, kde je spojovací podmínka realizována automaticky dle shodnosti názvů a datových typů ve spojovaných tabulkách. Pro nemožnost konkrétněji definovat ve spojovacích tabulkách, ale pouze strukturou, není tento typ tolik používán.
Vnější spojení - Vnější spojování (OUTER JOIN) generuje výstupní množinu omezenou o spojovací podmínky podobně jako vnitřní spojování, pokud však není nalezen vhodný řádek v druhé množině, je nenalezený řádek nahrazen hodnotami NULL. Dle typu vnějšího spojení mohou být doplňovány řádky z jedné nebo obou vstupních množin. Výsledkem vnějšího spojování jsou řádky naplněné hodnotami ze vstupních množin i částečně.
Částečné vnější spojování - Pro částečné vnější spojování jsou definována klíčová slova LEFT a RIGHT, která definují, která vstupní množina má zahrnuté všechny řádky v množině výstupní, tj. která vstupní množina není doplňována o NULL hodnoty
Lze použít i FULL OUTER JOIN.
SQL umožňuje v klauzuli FROM uvádět nejen jména tabulek, ale i tabulkové výrazy, resp. výraz spojení
Pohled je virtuální databázová struktura, která může obsahovat data z nula až více tabulek.
V prohlížeči máte záložky, na ploše zástupce a v databázi? V databázi jsou pohledy. Z pohledů lze především vybírat data (k čemuž slouží nejčastěji), a někdy do nich lze i data vkládat. Databázové systémy by se bez pohledů obešly - podobně, jako byste se na ploše obešli bez zástupců nebo v prohlížeči bez záložek. Ale práce s nimi může být mnohem pohodlnější.
· *Pohledy mohou obsahovat výrazy (jako jsou vestavěné funkce MySQL nebo uživatelsky definované funkce).
Pohledy s klauzulemi DISTINCT, GROUP BY, HAVING, s agregačními funkcemi a spojující několik tabulek, umožňují jen čtení.
create view vwPracovnici as select * from pracovnici;
- Od tohoto okamžiku můžete pohled použít jako tabulku, ve smyslu:
select * from vwPracovnici;
create view vwPrumernyVek as select avg(vek) as prumer from pracovnici;
- Vrátí průměrný věk (výsledek bude obsahovat vždy jen jeden řádek). Neboli pohled může obsahovat agregační funkci.
Používáme pohledy, pokud
Procedura - Uložená procedura je sada příkazů SQL, které jsou:
pro ně příjemné zjištění, že něco takového již server „umí“ díky uložené proceduře, kterou má k dispozici.
kontrolovat počet, typ, velikost a některé jiné charakteristiky parametrů, jež jsou jim posílány
Procedury mohou dělat to, co normální příkazy:
Diskuze