databÁzovÉ jazyky
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
DATABÁZOVÉ JAZYKY
jazyky popis
procedurálne popis činnosti ako chceme dosiahnuť určitý výsledok
PL/SQL
neprocedurálne čo chceme s dátami urobiť (manipulácia s dátami)
dotazovacie jazykyDML
SQL - Structured Query LanguageQBE - Query-by-examlePHP - klient pre SQL serverASP - klient pre SQL server
tvorba databáz DDL
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_zamestINTEGER,
• kod_projektuINTEGER,
• menoCHAR(30),
• platINTEGER,
• PRIMARY KEY(kod_zamest),
• FOREIGN KEY(kod_projektu) REFERENCES Projekt);
NUMERIC(n,m) Číselný
SERIAL
CHAR(n) Uloženie reťazca pevnej dĺžky
SMALLINT Číslo <-215 až 215)
DECIMAL(m,n) Číslo (-1038 až 1038)
FLOAT Desatinné číslo <-1,79x10308 až 1,79x10308>
DATE Dátumový
INTEGER Dlhé celé číslo <-231 až 231)
MONEY(m,n) Peňažný typ, s pevne stanoveným počtom desatinných miest
SMALLFLOAT Desatinné číslo menšieho rozsahu ako float
INTERVAL Intervalový
DATETIME Dátumovo-časový
VARCHAR(n) Uloženie reťazca premenlivej dĺžky (0..max)
TEXT Textový
BYTE Číslo (0 až 255)
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šetky stĺ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
GRANT tabuľkové_privilégium ON meno_tabulky TO {PUBLIC | zoznam_užívateľov}[WITH GRANT OPTION] [AS grantor] GRANT databázové_privilégium TO {PUBLIC | zoznam_užívateľov} REVOKE { tabuľkové_privilégium ON meno_tabulky| databázové_privilégium } FROM {PUBLIC | zoznam_užívateľov} LOCK TABLE meno_tabulky IN {SHARE | EXCLUSIVE} MODEUNLOCK TABLE meno_tabulky CREATE SCHEMA AUTHORIZATION užívateľ {množina_príkazov create a/alebo príkazov grant }
DATABÁZOVÉ PRIVILÉGIÁ CONNECTRESOURCEDBA TABUĽKOVÉ PRIVILÉGIÁ ALTERDELETEINDEX INSERTSELECT[(stĺpec)]UPDATE [(stĺpec)]ALL [PRIVILEGES]BEGIN WORKCOMMIT WORKROLLBACK WORK