Jazyk SQL
Jazyk SQL (Structured Query Language) je jazyk určený pro ovládání relačních databázových systémů (RDBMS). Na začátku 70. let 20. století jej vyvíjela společnost IBM (konkrétně pánové Raymond F. Boyce, Donald C. Messerly a Andrew Richardson) a o několik let později na trh vstoupila i společnost Oracle (tehdy ještě Relational Software, Inc.), která své produkty úspěšně dodávala i americkým vládním organizacím (CIA, U.S. Navy,…).
Příkazy jazyka SQL by se daly rozdělit do těchto skupin:
- DDL (data definition language) – příkazy patřící do této
skupiny vytvářejí či upravují strukturu databáze (např. tabulky).
Příklady: CREATE, ALTER, DROP…
- DML (data manipulation language) – příkazy, které slouží
k získávání, ukládání a mazání dat v databázi.
Příklady: SELECT, INSERT, UPDATE, DELETE…
- DCL (data control language) – příkazy pro správu
uživatelských rolí a práv.
Příklady: GRANT, REVOKE…
- TCL (transactional control language) – příkazy pro správu
databázových transakcí.
Příklady: BEGIN, COMMIT, ROLLBACK…
DDL (data definition language)
Vytvoření tabulky zaměstnanců:
(
cislo UNSIGNED INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
jmeno VARCHAR(100) NOT NULL,
prijmeni VARCHAR(100) NOT NULL,
mesto VARCHAR(100) NOT NULL
)
zdrojový kód (SQL) - zobrazit (189 znaků)
Smazání tabulky zaměstnanců:
zdrojový kód (SQL) - zobrazit (22 znaků)
Přidání sloupce s datem narození:
zdrojový kód (SQL) - zobrazit (53 znaků)
Odebrání sloupce s datem narození:
zdrojový kód (SQL) - zobrazit (36 znaků)
DML (data manipulation language)
Vybrat zaměstnance z Prahy:
FROM zamestnanci
WHERE (mesto='Praha')
ORDER BY prijmeni,jmeno
zdrojový kód (SQL) - zobrazit (84 znaků)
Vybrat 10 zaměstnanců s nejvyšším platem:
FROM zamestnanci
ORDER BY plat DESC,prijmeni,jmeno
LIMIT 10
zdrojový kód (SQL) - zobrazit (81 znaků)
Vypočítat průměrné platy v jednotlivých městech:
FROM zamestnanci
GROUP BY mesto
ORDER BY mesto
zdrojový kód (SQL) - zobrazit (69 znaků)
Vypočítat celkový plat všech managerů:
FROM zamestnanci
WHERE pozice='manager'
zdrojový kód (SQL) - zobrazit (56 znaků)
Získat počet uklízeček v Ostravě:
FROM zamestnanci
WHERE (pozice='uklízečka' AND mesto='Ostrava')
zdrojový kód (SQL) - zobrazit (79 znaků)
Vybrat stránky včetně názvu kategorie (vnitřní spojení):
FROM stranky s
INNER JOIN kategorie k ON (k.id=s.idKategorie)
ORDER BY s.titulek
zdrojový kód (SQL) - zobrazit (112 znaků)
Vybrat stránky (i nezařazené) včetně názvu kategorie (levé vnější spojení):
FROM stranky s
LEFT OUTER JOIN kategorie k ON (k.id=s.idKategorie)
ORDER BY s.titulek
zdrojový kód (SQL) - zobrazit (117 znaků)
Započítat návštěvu stránky:
SET pocitadlo=pocitadlo+1,posledniNavsteva=NOW()
WHERE url='produkty'
zdrojový kód (SQL) - zobrazit (84 znaků)
Vložit rezervaci v kině:
(film,misto,jmeno)
VALUES
('Terminátor','A44','Sarah Connor')
zdrojový kód (SQL) - zobrazit (83 znaků)
Smazat všechny horrory z databáze filmů:
FROM filmy
WHERE (zanr='horror')
zdrojový kód (SQL) - zobrazit (39 znaků)
DCL (data control language)
Udělení práv pro čtení tabulky zaměstnanců uživateli „guest“:
ON zamestnanci
TO guest
zdrojový kód (SQL) - zobrazit (36 znaků)
Zrušení práva číst tabulku zaměstnanců uživateli „enemy“:
ON zamestnanci
FROM enemy
zdrojový kód (SQL) - zobrazit (39 znaků)
TCL (transactional control language)
Transakce jsou posloupnosti příkazů, které musí proběhnout všechny, nebo žádný. Databázový systém se postará o to, aby celá transakce proběhla atomicky a její průběh nebyl narušen jinými dotazy. Zajímavé je také to, že se dílčí změny během transakce neprojeví vzhledem k jiné transakci.
Převod peněz z účtu na účet:
UPDATE ucty SET zustatek=zustatek-200 WHERE cislo=123142;
UPDATE ucty SET zustatek=zustatek+200 WHERE cislo=552331;
COMMIT;
zdrojový kód (SQL) - zobrazit (130 znaků)
Reference
- předmět X36DBS na FEL ČVUT
- http://blog.sqlauthority.com/…nd-examples/