// Kradeno z https://github.com/Krejdom/school_notes/blob/master/PB154.md
// protože na zápisy z toho předmětu už asi nemám
skalární subquery – je očekávána jedna hodnota
SELECT (projekce) – SELECT * znamená vyber vše
AVG (thing) – průměrCOUNT (počet), MIN, MAX, SUMFROM (kartézský součin)WHERE (selekci) – využívá: and, or, not
BETWEEN 900 AND 1000GROUP BY atribut1, atribut2... – atributy jsou nepovinnéHAVING podminka_s_agregacni_funkci – aplikuje se po vytvoření skupin! (WHERE se aplikuje před)ORDER BY – následuje atribut a decs nebo asc (výchozí)DISTINCT – klíčové slovo, které je hned za SELECT, odstraní duplicityALL – klíčové slovo, které je hned za SELECT, ponechá duplicitySOMELIKE – WHERE name LIKE '%dar%' (pokud jméno obsahuje podřetězec dar)ESCAPE – `LIKE ‘100 %’ ECSAPE ‘’ (obsahuje 100 %)
'slovo%' – začíná na slovo'%slovo%' – obsahuje podřetězec slovo'_ _ _' – slovo délky 3'_ _ _ %' – slovo alespoň délky 3IS NULLIN – množina obsahuje zvolený prvek (pes IN zvirata)NOT INEXISTSANY()EXCEPT = rozdíl, UNION = spojení, INTERSECT = průnik; chci-liCREATE TYPE – vytvoření vlastního datového typuCREATE DOMAIN – vytvoření vlastní doményCREATE INDEX – vytvoření indexuCREATE TABLE r (A1 D1, A2 D2, ... , An Dn, (integritní-omezení1), ..., (integritní-omezeník)) – vytvoří relaci r, kde A je jméno atributu, D je datový typ hodnot v doméně atributupuvodni_jmeno AS nove_jmeno - přejmenováníINSERT INTO tabulka VALUES('obsahsloupce1', 'obsah_sloupce2',...) – vloží nový záznam do tabulkyDELETE FROM tabulka – smaže veškerý obsah tabulkyDELETE FROM tabulka WHERE podminka – smaže položky splňující podmínkuUPDATE r SET A1=e ... WHEREDROP TABLE tabulka – smaže tabulku a veškerý její obsahALTER TABLE – změna tabulky:
ALTER TABLE r ADD a d – přidá nový atribut a a jeho doménu dALTER TABLE r DROP a – smaže atribut a z tabulky(NATURAL) INNER JOIN - přirozené vnitřní spojení = spojí se pouze to, co je v obou relacích (Spojovací sloupec je pouze jednou)LEFT OUTER JOIN - levé vnější spojení = levá relace se vezme celáRIGHT OUTER JOIN - pravé vnější spojení = pravá relace se vezme celáFULL OUTER JOIN - úplné vnější spojení = obě relace jsou obsaženy, to co chybí je doplněno NULL hodnotamiINNER JOIN ON podmínka (Spojovací sloupec je dvakrát)INNER JOIN USING (seznam atributů)view – relace, která je “virtuálně” zprostředkována uživateli, CREATE VIEW v AS <query>
blob (binary large object), clob (character large object) – vrací pouze pointer, nikoli samotné data
trigger – příkaz, který je vykonán automaticky systémem, jako vedlejší efekt modifikace databáze (INSERT, DELETE, UPDATE), může být omezen na určitý atribut, může se zreplikovat provedenou akci na další data, např. při změně výše DPH se automaticky přepočítá cena
UNIQUE – unikátní záznamy z množinyCHECK(p) – p je predikátNOT NULLPRIMARY KEYNULL, ale primární neFOREIGN KEY father REFERENCES personDATE - 'YYYY-m-d'TIME - 'HH:MM:SS.MS'TIMESTAMP - 'DATE TIME'INTERVAL - '1' dayCREATE TYPE name AS NUMERIC (12,2) FINALCREATE DOMAIN person_name CHAR(20) NOT NULLCREATE INDEX studentID_index ON student(ID)