120 likes | 247 Views
DATABÁZOVÉ JAZYKY. rozdelenie. jazyk pre definíciu dát (popis tabuliek, pohľadov a prístupových práv) jazyk pre manipuláciu s dátami (prístup a aktualizácia) jazyk pre konštrukciu modulov
E N D
rozdelenie • jazyk pre definíciu dát (popis tabuliek, pohľadov a prístupových práv) • jazyk pre manipuláciu s dátami (prístup a aktualizácia) • jazyk pre konštrukciu modulov • jazyk vytváranie rozhraní medzi databázou a aplikačným programom napísanom v bežnom programovacom jazyku • zápis SQL do aplikačných programov
príkazy • DDL (Data Definition Language) • definícia dáta a ich väzieb • založenie štruktúry databázy • CREATE TABLE, CREATE VIEW, CREATE INDEX • predefinovanie štruktúry databázy • ALTER TABLE, DROP TABLE, DROP VIEW, DROP INDEX • DCL (Data Control Language) - zabezpečení dát • GRANT – prideľovanie prístupových práv k danej databáze • REVOKE – odoberanie už pridelených prístupových práv • DML (Data Manipulation Language) – manipulácia (výber, zoradenie, zmena hodnoty dát) • SELECT – formulácia výberových požiadaviek • INSERT - vkladanie dát do už vytvorenej tabuľky • UPDATE – modifikácia riadkov tabuľky • DELETE – odstránenie riadkov tabuľky ale nie celej tabuľky • DROP TABLE – vymazanie tabuľky a všetkých riadkov tabuľky
CREATE TABLE, v rámci ktorého sa špecifikuje: názov tabuľky, (entity) atribúty (domény) typy, primárne kľúče cudzie kľúče ohraničenia. CREATE TABLE Zamestnanec ( kod_zamest INTEGER, kod_projektu INTEGER, meno CHAR(30), plat INTEGER, PRIMARY KEY (kod_zamest), FOREIGN KEY (kod_projektu) REFERENCES Projekt);
iné príkazy • DROP DATABASE meno_databázy • DROP INDEX meno_indexu • DROP SYNONYM synonym-name • DROP TABLE meno_tabulky • DROP VIEW meno_pohľadu • CREATE DATABASE meno_databázy • CREATE [TEMP] TABLE meno_tabulky • ALTER TABLE meno_tabulky • MODIFY (staré_meno_s nový_datový_typ [NOT NULL][,...]) • DROP CONSTRAINT (meno_obm [,...])}[,...] • LOCK MODE {PAGE|ROW }[,...] • MODIFY NEXT SIZE číslo} • CREATE [UNIQUE | DISTINCT] [CLUSTER] INDEX meno_indexu • ON meno_tabulky (meno_stĺpca [ASC | DESC],...) • CREATE SYNONYM meno_synonyma FOR meno_tabulky • CREATE VIEW meno_pohľadu [(zoznam_stĺpcov
Manipulácia s dátami • pridávanie riadku do tabuľky: INSERT • aktualizáciu existujúceho riadku (-ov) v tabuľke: UPDATE • vymazanie riadku (-ov): DELETE • výber riadkov a stĺpcov: SELECT
popis základných operácií • projekcia - výber špecifikovaných stĺpcov - meno a plat • SELECT meno, plat • FROM Zamestnanec • reštrikcia - výber požadovaných riadkov na základe výberovej podmienky, SELECT * • FROM Zamestnanec • WHERE plat > 10000 • spájanie - spájanie pomocou výberovej podmienky • SELECT * • FROM Zamestnanec, Projekt • WHERE Zamestnanec.kod_projektu = Projekt.kod_projektu
Pridávanie riadku do tabuľky INSERT INTO meno_tabulky [(zoznam_stĺpcov)] { VALUES (zoznam_hodnôt) } Aktualizáciu existujúceho riadku v tabuľke: UPDATE UPDATE meno_tabulky SET { meno_stĺpca = výraz[,...] { (zoznam_stĺpcov) *} = (zoznam_výrazov) } [WHERE podmienka] Vymazanie DELETE DELETE FROM meno_tabulky [WHERE podmienka] Výber riadkov a stĺpcov: SELECT SELECT [ALL | DISTINCT | UNIQUE] zoznam_stĺpcov_selektu FROM [OUTER] meno_tabulky [alias_tabulka] [,...] [WHERE podmienka] [GROUP BY zoznam_stĺpcov] [HAVING podmienka] [ORDER BY meno_stĺpca [ASC | DESC],...] [INTO TEMP meno_tabulky] [WITH NO LOG] SELECT-príkaz UNION [ALL] SELECT-príkaz [UNION [ALL] SELECT-príkaz] ... WHERE podmienka: výraz relačný-operátor výraz výraz [NOT] BETWEEN výraz AND výraz výraz [NOT] IN (položky) meno_stĺpca [NOT] LIKE "string" [ESCAPE escape-znak] výraz relačný-operátor {ALL | [ANY | SOME]} (SELECT-príkaz) výraz [NOT] IN (SELECT-príkaz) [NOT] EXISTS (SELECT-príkaz) meno_stĺpca IS [NOT] NULL typy operácií: projekcia - výber špecifikovaných stĺpcov SELECT meno, plat FROM Zamestnanec reštrikcia - výber požadovaných riadkov z tabuľky na základe výberovej podmienky, napríklad SELECT * FROM Zamestnanec WHERE plat > 10000 náhradný symbol * v časti SELECT znamená všetkystĺpce) spájanie - spájanie tabuliek pomocou výberovej podmienky (tabuľky vo všeobecnosti ani nemusia byť prepojené cudzími kľúčmi) SELECT * FROM Zamestnanec, Projekt WHERE Zamestnanec.kod_projektu = Projekt.kod_projektu Stĺpce, ktorých názvy nie sú jednoznačné (rovnaké mená sa nachádzajú v oboch spájaných tabuľkách), sa špecifikujú plnými menami: meno_tabuľky.meno_stĺpca. SELECT meno, nazov FROM Zamestnanec, Projekt WHERE (plat>10000) AND (Zamestnanec.kod_projektu=Projekt.kod_projektu)
1.Výber všetkých stĺpcov SELECT * FROM predmet 2. Výber s hviezdičkovou konvenciou SELECT * FROM os_udaje WHERE meno="Stanislav" 3. Výber a uloženie do dočasnej tabuľky SELECT * FROM os_udaje WHERE meno="Stanislav" INTO TEMP docasna 4. Projekcia SELECT meno, priezvisko FROM os_udaje 5. Projekcia a kartézsky súčin SELECT meno, priezvisko, nazov FROM os_udaje, predmet SELECT meno, priezvisko FROM os_udaje INTO TEMP a; SELECT cis_predmet FROM predmet INTO TEMP b; SELECT meno, priezvisko, cis_predmet FROM a,b 6. Potlačenie výberu duplicitných riadkov SELECT UNIQUE meno FROM os_udaje alebo SELECT DISTINCT meno FROM os_udaje . Spojenie s duplicitami SELECT cis_predmet FROM student, zap_predmety WHERE tudent.os_cislo=zap_predmety.os_cislo 8. Potlačenie výberu duplicitných riadkov pri spojení SELECT UNIQUE cis_predmet FROM student, zap_predmety WHERE student.os_cislo=zap_predmety.os_cislo 9. Triedenie SELECT meno, priezvisko FROM os_udaje ORDER BY priezvisko 10. Triedenie podľa dvoch stĺpcov SELECT meno, priezvisko FROM os_udaje ORDER BY meno, priezvisko 11. Triedenie so zadaním smeru triedenia - vzostupne SELECT nazov FROM predmet ORDER BY nazov ASC 12. Triedenie so zadaním smeru triedenia - zostupne SELECT nazov FROM predmet ORDER BY nazov DESC 13. Triedenie podľa viacerých stĺpcov v rôznom smere SELECT meno, priezvisko FROM os_udaje ORDER BY meno DESC ,priezvisko ASC