databÁzovÉ jazyky

12
DATABÁZOVÉ JAZYKY

Upload: cyrus-tyson

Post on 03-Jan-2016

37 views

Category:

Documents


4 download

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 Presentation

TRANSCRIPT

Page 1: DATABÁZOVÉ JAZYKY

DATABÁZOVÉ JAZYKY

Page 2: 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

Page 3: 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 • 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

Page 4: DATABÁZOVÉ JAZYKY

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

Page 5: DATABÁZOVÉ JAZYKY

• 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);

Page 6: DATABÁZOVÉ JAZYKY

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)

Page 7: DATABÁZOVÉ JAZYKY

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

Page 8: DATABÁZOVÉ JAZYKY

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

Page 9: DATABÁZOVÉ JAZYKY

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

Page 10: DATABÁZOVÉ JAZYKY

• 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)

Page 11: DATABÁZOVÉ JAZYKY

• 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

Page 12: DATABÁZOVÉ JAZYKY

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