130 likes | 369 Views
Jazyk SQL. Informatika pro ekonomy II přednáška 11. Popis jazyka SQL. SQL — Structured Query Language (strukturovaný dotazovací jazyk, IBM počátkem sedmdesátých let). Neprocedurální jazyk — příkazy popisují, CO se má provést, a ne JAK.
E N D
Jazyk SQL Informatika pro ekonomy II přednáška 11
Popis jazyka SQL • SQL — Structured Query Language (strukturovaný dotazovací jazyk, IBM počátkem sedmdesátých let) • Neprocedurální jazyk — příkazy popisují, CO se má provést, a ne JAK • Různá dělení příkazů do skupin. Například se užívá dělení na tyto tři části: jazyk pro definici dat (DDL), jazyk pro manipulaci s daty (DML), dotazovací jazyk (DQL)
Příkazy skupiny DDL • CREATE, ALTER, RENAME, DROP • Definování primárního klíče PRIMARY KEY • Znemožnění prázdné hodnoty NOT NULL • Možnost uložení výchozí hodnoty DEFAULT • Jedinečnost v některém sloupci UNIQUE • Definování omezení CHECK • Definování pojmenovaného omezení CONSTRAINT • Definování cizích klíčů REFERENCES
Příkazy skupiny DDL • Vytvoření tabulky — CREATE TABLECREATE TABLE lide(rc varchar(10) PRIMARY KEY,jmeno varchar(15), prijmeni varchar(25) NOT NULL, utvar number(3) REFERENCES odd(utvar)) • Přejmenování tabulky — RENAME • RENAME lide TO zam • Odstranění tabulky — DROPDROP TABLE odd
Příkazy skupiny DML • Vkládání záznamů — INSERT • INSERT INTO zam VALUES ('5806176789','Karel','Smolný',100) • INSERT INTO zam (rc,utvar,prijmeni) • VALUES ('6955112819',101,'Veselská') • Modifikace hodnot — UPDATE • Zvýšení platu všem zaměstnancům o 1000 Kč • UPDATE zam SET plat = plat + 1000Zvýšení platu o 20 % všem zaměstnancům útvaru 101UPDATE zam SET plat = 1,2 * plat WHERE utvar=101 • Odstranění záznamů — DELETEVýmaz zaměstnanců, kteří nemají zadané jméno • DELETE FROM zam WHERE jmeno IS NULL
Příkaz skupiny DQL — SELECT • Zobrazení záznamů — SELECT • Zobrazení všech záznamů se všemi atributy z tabulky • SELECT * FROM zam • Projekce • Zobrazení jen jména a příjmení z tabulky zaměstnanců • SELECT jmeno,prijmeni FROM zam • Výpis příjmení s čísly řádků (změna názvu sloupce výpisu)SELECT rownum AS "č.",prijmeni FROM zam • Restrikce — klauzule WHEREVýpis zaměstnanců pracujících v oddělení 100 • SELECT * FROM zam WHERE utvar = 100
Příkaz SELECT • Spojení tabulek • Výpis příjmení zaměstnanců a názvů útvaru • SELECT prijmeni, nazev FROM zam, odd • WHERE zam.utvar=odd.utvar • Řazení vypisovaných záznamů — klauzule ORDER BY • Výpis abecedního seznamu zaměstnanců • SELECT jmeno,prijmeni FROM zam • ORDER BY prijmeni,jmeno,utvar DESC • Seskupení záznamů — klauzule GROUP BYVýpis počtu zaměstnanců v jednotlivých odděleních • SELECT count(prijmeni) FROM zam GROUP BY utvar
Příkaz SELECT • Výběr seskupených záznamů • Výpis čísel útvarů, v nichž mají zaměstnanci větší průměrný plat než 18000 Kč • SELECT utvar, avg(plat) FROM zam • GROUP BY utvar having avg(plat)>18000 • Poddotazy — vnoření příkazu SELECT • Výpis seznamu zaměstnanců, kteří mají větší plat než Václav Novák • SELECT jmeno,prijmeni FROM zam • WHERE plat > (SELECT plat FROM zam WHERE jmeno='Václav' AND prijmeni='Novák')
Operátory • Použití pro manipulaci s daty. • Operátor provede s daty operaci a vrátí výsledek. • Unární operárory operátor operand (př. NOT Zaplaceno) • Binární operátory operand1 operátor operand2 (př. 5 + 4) • Priority vyhodnocování (lze změnit závorkováním) • Aritmetické operátory + – = * / • Operátory pro porovnání = <> >= <= BETWEENSELECT * FROM zam WHERE plat NOT BETWEEN 18000 AND 20000SELECT * FROM zam WHERE plat >= ALL (SELECT plat FROM zam)
Operátory • Logické operátory AND, OR, NOTSELECT * FROM zam WHERE (utvar = 100) AND (jmeno = ’Petr’) • Množinové operátory UNION, UNION ALL, INTERSECT, MINUSSELECT prijmeni FROM zam1 UNION SELECT prijmeni FROM zam2 • Operátory ANY, ALL, LIKESELECT * FROM zam WHERE jmeno = ANY (’Jan’,’Daniel’) • Regulární výrazySELECT * FROM zam WHERE jmeno = LIKE ’K_r%’
Pseudosloupce • ROWID (jedinečný identifikátor řádku tabulky) • ROWNUM (dočasná hodnota řádku tabulky)SELECT prijmeni FROM zam WHERE ROWNUM <= 2 • Konstanta NULLSELECT * FROM zam WHERE plat IS NOT NULL