Date post: | 04-Oct-2015 |
Category: |
Documents |
Upload: | florin-marius-leu |
View: | 4 times |
Download: | 0 times |
Baze
de d
ate
Curs 5: Elemente SQL in Oracle
1. Obiectele bazei de date
2. Tipuri de date SQL
3. Literali
4. Modele de format
5. Valori null
6. Comentarii
7. Pseudocoloane
8. Operatori SQL
9. Funcii SQL
1
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
1.Obiectele bazei de date
1.1. Generalitati
1.2. Reguli de denumire a obiectelor bazei de date
Observatie
Obiectele BD Instructiunile SQL (prezentate ulterior)
2
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
1.Obiectele bazei de date
1.1. Generalitati
O BD Oracle = { scheme }.
O schem = {obiecte}
Obiect = o structura logica de date;
Fiecare utilizator posed o singur schem;
Numele schemei numele utilizatorului.
3
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
la nivel logic
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
Oracle Database recunoaste 2 tipuri de
obiecte:
a) obiecte care sunt asociate unei scheme
particulare;
b) obiecte care nu aparin nici unei scheme.
4
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
(a) Obiecte care sunt asociate unei scheme
particulare: In cadrul unei scheme se pot defini obiecte de tip:
tabel (table), vizualizare (view), vizualizare materializat (materialized view), secven (sequence), index (index), sinonim (synonym), grupare (cluster), procedur (procedure) funcie (function) stocat, declanator (trigger), pachet stocat (package), legtur a bazei de date (database link), dimensiune (dimension) etc.
5
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
(b) Obiecte care nu aparin nici unei scheme:
sunt create i prelucrate cu instructiuni SQL,
sunt stocate n BD dar NU intr-o schema,
sunt de tip:
utilizator (user),
context (context),
director (directory),
fiier de parametri (parameter file PFILE),
profil (profile),
rol (role),
segment rollback (rollback segment) i
spaiu tabel (tablespace).
6
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
7
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
1. Obiectele bazei de date
1.2 Reguli de denumire a obiectelor bazei de date
Intr-o schema a Oracle Database trebuie denumite:
toate obiectele,
anumite parti componente ale anumitor obiecte:
coloanele tabelelor sau vizualizrilor,
partiiile i subpartiiile tabelelor i indecilor,
constrngerile de integritate asupra tabelelor;
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
8
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
(R1)
Numele obiectelor sunt unice la nivelul unei BD ntr-o instruciune SQL, numele unui obiect poate fi reprezentat printr-un identificator ncadrat, sau nu, ntre
ghilimele
Identificatorii nu pot fi cuvinte rezervate ale serverului Oracle;
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
9
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
(R2)
Identificatorii trebuie s nceap cu o liter i s aib maximum 30 de caractere; Excepii: numele BD (max. 8 caractere), numele legturii unei BD (max. 128 caract.);
(R3)
Identificatorii pot conine caractere alfanumerice i simbolurile _, $, #
Ei trebuie s nceap cu un caracter alfabetic
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
10
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
(R4)
Fiecare schem din BD are propriul su spaiu de nume (namespace) pentru obiectele pe care
le conine Dou obiecte din acelai spaiu de nume al
serverului Oracle nu pot avea acelai identificator.
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
11
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
(R4 cont.)
un tabel i o vizualizare din cadrul aceleiai scheme NU pot avea acelai nume, ns un tabel poate avea acelai nume cu un index.
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
12
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Observatie Identificatorii obiectelor sunt case-sensitive doar n cazul n care sunt ncadrai ntre ghilimele; altfel, ei sunt convertii automat n majuscule.
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
1. Obiectele bazei de date
2. Tipuri de date SQL
3. Literali
4. Modele de format
5. Valori null
6. Comentarii
7. Pseudocoloane
8. Operatori SQL
9. Funcii SQL
13
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
2. Tipuri de date SQL
2.1. Tipuri de date predefinite
2.2. Tipuri de date ANSI, DB2 i SQL/DS acceptate n sistemul Oracle
2.3. Tipuri de date definite de utilizator
2.4. Interfee pentru definirea de tipuri de date.
14
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
2. Tipuri de date SQL
2.1. Tipurile de date predefinite din sistemul Oracle:
a) caracter,
b) numeric,
c) dat calendaristic i timp,
d) LOB (large objects) i
e) adrese unice ale liniilor din tabele.
15
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
(a)
Tipurile de date predefinite pentru stocarea
irurilor de caractere sunt : VARCHAR2 (n [BYTE |CHAR])
CHAR[(n [BYTE | CHAR] )]
NVARCHAR2(n)
NCHAR[(n)]
iar pentru stocarea irurilor de caractere de dimensiuni mari sunt :
LONG,
LONG RAW
RAW. 16
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
(a1)
VARCHAR2 (n [BYTE |CHAR])
definete un ir de caractere de dimensiune variabil, avnd lungimea maxim de n octei sau caractere;
valoarea maxim a lui n corespunde la 4000 octei, iar cea minim este de un octet sau un caracter;
BYTE i CHAR indic faptul c lungimea variabilei sau coloanei de acest tip se va
specifica n octei, respectiv n caractere.
17
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
(a2)
CHAR[(n [BYTE | CHAR] )]
reprezint un ir de caractere de lungime fix avnd n octei sau caractere;
valoarea maxim a lui n corespunde la 2000 octei;
valoarea implicit i minim este de un octet. opiunile BYTE i CHAR au aceeai
semnificaie ca i pentru tipul VARCHAR2.
18
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
(a3)
NVARCHAR2(n)
este similar tipului VARCHAR2, dar definete un ir de caractere aparinnd
setului naional de caractere, fiind un tip de date Unicode;
(a4)
NCHAR[(n)];
este similar tipului CHAR, dar definete un ir de caractere, de lungime fix,
aparinnd setului naional de caractere, fiind un tip de date Unicode.
19
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
(a5)
LONG
conine iruri de caractere avnd lungime variabil,
nu pot ocupa mai mult de 2GB;
LONG RAW
este un tip binar ce conine valori de dimensiune variabil,
nu pot ocupa mai mult de 2GB;
RAW(n)
este un tip binar ce contine valori care ocup n octei,
valoarea maxim a argumentului n este 2000. 20
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
(b)
Tipurile de date predefinite pentru stocarea
valorilor numerice sunt :
NUMBER,
BINARY_FLOAT
BINARY_DOUBLE
21
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
(b1)
NUMBER(p, s)
reprezint un numr avnd precizia p i scala s; precizia p poate lua valori ntre 1 i 38 scala s poate lua valori ntre 84 i 127 tipul conine valori de forma x10s, unde x este un numr ntreg cu cel mult p cifre.
22
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
(b2)
BINARY_FLOAT
reprezint numere pe 32 de bii, n virgul mobil, necesit 5 octei, un octet fiind rezervat pentru stocarea lungimii;
(b3)
BINARY_DOUBLE
reprezint numere pe 64 de bii, n virgul mobil, necesit 9 octei, unul fiind dedicat lungimii;
Numerele binare n virgul mobil suport valorile speciale:
infinit NaN (not a number). 23
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
(c)
Tipurile de date predefinite pentru stocarea
datelor calendaristice i a momentelor de timp sunt :
DATE,
TIMESTAMP
INTERVAL
24
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
(c1)
DATE
reprezint date calendaristice valide, in intervalul 1 ian. 4712 i.Hr. i 31 dec. 9999 d.Hr; (c2)
TIMESTAMP[(precizie_fraciuni_secund)] cuprinde valori pentru anul, luna i ziua unei date calendaristice, precum i or, minut, secund; argum. precizie_fraciuni_secund reprezint numrul de cifre din partea fracionar a cmpului corespunztor secundelor.
valorile acceptate pentru precizie_fraciuni_secund sunt ntre 0 i 9, iar valoarea implicit este 6. 25
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
TIMESTAMP[(precizie_fraciuni_secund)] WITH TIME ZONE cuprinde toate informaiile corespunztoare tipului (d2)
in plus: deplasarea fusului orar
TIMESTAMP[(precizie_fraciuni_secund)] WITH LOCAL TIME
ZONE cuprinde toate informaiile corespunztoare tipului (d3) diferena: la stocare n baza de date: o dat calendaristic de acest tip este transformat corespunztor timpului regiunii (setat la nivelul bazei),
la utilizare: aceast valoare va fi transformat corespunztor timpului regiunii caracteristice sesiunii respective;
26
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
(c3) INTERVAL YEAR [(precizie_an)] TO MONTH
stocheaz o perioad de timp specificat n ani i luni, precizie_an reprezint numrul de cifre din cmpul YEAR, valorile acceptate pentru precizie_an sunt ntre 0 i 9, valoarea implicit este 2;
INTERVAL DAY [(precizie_zi)] TO SECOND
[precizie_fraciuni_sec)]
stocheaz o perioad de timp specificat n zile, ore, min. sec.,
argumentul precizie_zi coresp. nr. max. de cifre din cmpul DAY,
valorile acceptate pentru precizie_zi sunt ntre 0 i 9, valoarea implicit fiind 2.
27
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
Exemplu.
S se creeze un tabel cu trei coloane: inceput, durata_1, durata_2.
Coloana inceput va contine valori ce reprezint momente de timp, inclusiv fraciunile de secund corespunztoare. Coloana durata_1 va contine valori ce reprezint intervale de timp specificate n numr de zile, ore, minute i secunde. Coloana durata_3 va conine valori ce reprezint intervale de timp precizate n numr de ani i luni. S se insereze o nregistrare n acest tabel.
28
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
CREATE TABLE timp (inceput TIMESTAMP,
durata_1 INTERVAL DAY(2) TO SECOND(3),
durata_2 INTERVAL YEAR TO MONTH);
INSERT INTO timp
VALUES (TIMESTAMP '1997-01-31 09:26:50.124',
INTERVAL '23 7:44:22' DAY TO SECOND,
INTERVAL '19-02' YEAR TO MONTH);
29
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
(d)
Tipurile de date predefinite pentru stocarea
obiectelor mari LOB (large object) sunt :
CLOB
NCLOB
BLOB
BFILE
30
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
Obiectele mari (LOB): folosite pentru stocarea, n
interiorul sau exteriorul bazei de date, a unui
volum mare de date complexe, nestructurate, n
format text sau binar
dimensiunea maxima: 4 GB, clasificare in functie de localizarea fa de BD: interne:
tipurile CLOB, NCLOB i BLOB (valorile lor sunt stocate n BD),
externe: tipul BFILE
(valorile sale sunt stocate n fiierele sistemului de operare).
31
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
CLOB (Character Large Object) conine valori de tip caracter,
BLOB (Binary Large Object)
datele stocate sunt date binare nestructurate; BFILE (Binary File)
conine un locator ctre un fiier binar de dimensiune maxim 4GB, stocat n afara bazei de date,
32
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
(e)
Tipurile de date predefinite pentru reprezentarea
adreselor liniilor n tabele sunt :
ROWID
UROWID
33
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
(e1) ROWID
Oracle genereaza i asigneaza fiecarui rand dintr-o tabela un numar binar ca ID al acesteia (pe baza valorilor din cheia primara)
=> apare astfel o noua coloana in tabel => ROWID este o pseudocoloana furnizata de Oracle pt identificarea
randurilor
=> ROWID conine iruri hexazecimale care reprezint adresele unice ale liniilor n tabelele din care fac parte
continutul ei poate fi printat cu comanda SQL> select rowid, empno, ename, job from emp;
ROWID EMPNO ENAME JOB
AAAHW7AABAAAMUiAAA 7369 SMITHSON CLERK
AAAHW7AABAAAMUiAAB 7499 ALLENBY SALESMAN
AAAHW7AABAAAMUiAAC 7521 WATSON SALESMAN
AAAHW7AABAAAMUiAAD 7566 HASTINGS MANAGER
reprezinta cea mai rapida metoda de acces la randurile unui tabel (insasi cheia primara foloseste mecanismul ROWID pt a
parcurge inregitrarile din tabela). 34
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
(e2)
UROWID[(n)]
= universal rowid (UROWID)
= un tip de data care desemneaza atat ID-uri fizice cat i ID-uri logice ale randurilor dintr-o tabela indexata
ID-urile sunt afisate ca iruri hexazecimale
argumentul n specific dimensiunea unei pseudocoloane de tip UROWID,
dimensiunea maxim i implicit este de 4000 octei.
35
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
2.Tipuri de date SQL
2.2. Tipuri de date ANSI, DB2 i SQL/DS acceptate n sistemul Oracle
Sistemul Oracle recunoate numele tipurilor de date specifice ANSI sau IBM, le converteste cf. unor conventii prestabilite si le utilizeaza pentru crearea tabelelor i clusterelor. Exemplu:
36
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Tip de date SQL/DS sau DB2 Tip de date Oracle
CHARACTER(n) CHAR(n)
VARCHAR(n) VARCHAR2(n)
LONG VARCHAR(n) LONG
DECIMAL(p, s) NUMBER(p, s)
INTEGER
SMALLINT
NUMBER(38)
FLOAT NUMBER
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
2. Tipuri de date SQL
2.3. Tipurile de date definite de utilizator
Utilizatorul poate defini noi tipuri de date pe baza:
oricaruia dintre tipurile de date predefinite,
altor tipuri de date definite de utilizator,
se obtin urmatoarele tipuri de date obiect care modeleaza structura i comportamentul datelor in aplicatii:
A. tipurile obiect,
B. tipurile referin (REF),
C. vectorii (varying array sau varray),
D. tablourile imbricate (nested table).
37
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
(A) Tipurile de date obiect
abstractizri ale entitilor din lumea real, necesare n programele de aplicaie,
un tip obiect = o schem obiect cu trei tipuri de componente:
nume,
atribute,
metode.
38
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
Numele = identific n mod unic tipul obiect n cadrul unei scheme
Atributele = modeleaz structura entitii din lumea real. = au ca tip de date un tip predefinit sau un alt tip-
utilizator
Metodele = implementeaz operaiile pe care aplicaia le poate efectua asupra entitii din lumea real
= sunt implementate prin intermediul funciilor i procedurilor scrise n:
PL/SQL i stocate n baza de date, sau
ntr-un limbaj general (C, Java etc.) i stocate extern.
39
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
(B) Tipurile de date referinta
conin adrese logice ale liniilor obiect,
Utilitate:
tipul de date REF i coleciile de obiecte REF modeleaz relaiile dintre entiti (m-1 sau 1-m)
=> dispare necesitatea definirii cheilor externe relaionale.
40
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
Tipul de date REF valoarea NULL:
Daca o valoare REF indic un obiect inexistent
ea este considerat suspendat (dangling);
41
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
(B) Tipul de date vector (varying array sau varray), = modeleaza o mulime ordonat de elemente avnd acelai tip;
fiecare element are un index, care reprezint numrul corespunztor poziiei elementului n vector;
nr elemente dintr-un vector = dimensiunea vectorului;
Declararea unui vector: = definirea unui tip de date
care poate fi utilizat ulterior ca tip de date pt:
o coloana dintr-un tabel relaional,
un atribut dintr-un tip obiect,
o variabila,
un parametru / o valoare returnata de o funcie n PL/SQL
=> nu i se aloca spatiu,
trebuie precizata dimensiunea sa maxima (pt ca in Oracle, vectorii au dimensiune variabil).
42
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
(C) Tipul de date tablou imbricat (nested table)
= modeleaz o mulime neordonat de elemente al caror tip de date poate fi:
un tip predefinit,
un tip definit de utilizator;
= poate fi vzut ca:
un tabel relaional cu o singur coloan sau
un tabel relaional multicoloan
(cu cte o coloan corespunztoare fiecrui atribut al tipului obiect, dac tabloul imbricat este un tip obiect).
43
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
vector:
v: {1,2,3, .,n} T prin v(1)=103, v(2)=-45, v(3)=88 etc.
matrice
m: {1,2, .,n}X {1,2,k} T prin m(1,1)=77, m(1,2)=0, m(1,3)=-47 etc.
44
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
103 -45 88 12 12 50 23 12 9000 23
1 2 3 4 . . . i .. n
v(2) v(i)
77 0 -47 55 77 10
10 23 24 19 -1 0
m(i,j) m(2,3)
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
2. Tipuri de date SQL
2.4. Interfee pentru definirea de tipuri de date:
= interfee bazate pe SQL care permit definirea unor noi tipuri de date, atunci cnd cele
predefinite sau cele standard ANSI nu sunt
suficiente
comportamentul acestor tipuri poate fi implementat n C/C++, Java sau PL/SQL
45
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
1. Obiectele bazei de date
2. Tipuri de date SQL
3. Literali
4. Modele de format
5. Valori null
6. Comentarii
7. Pseudocoloane
8. Operatori SQL
9. Funcii SQL
46
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
3. Literali
3.1. Literali de tip caracter
3.2. Literali numerici
3.3. Literali pentru date calendaristice
3.4. Literali marci de timp
3.5. Literali de intervale de timp;
Definitie: Literal = o valoare constanta pe perioda de viata a BD.
47
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
3. Literali
3.1. Literali de tip caracter
sintaxa:
se includ ntre apostrofuri (pentru a permite
sistemului Oracle s le disting de numele obiectelor schemei);
sunt considerate de tip CHAR (n expresii i condiii);
lungimea maxim admis: 4000 de octei.
48
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
3. Literali
3.2. Literali numerici
de tip Number: in notatie clasica: precedate de + sau
max . 38 caractere
in notatie stiintifica: cu mantisa i exponent; Exemple
37, -5, +9.77, 0,25
47e-05,
in virgula mobila: precedate de + sau i urmate de f, F --> numar de tip Binary Float
d, D --> numar de tip Binary Double
Exemple
37f +9,77F
-5D 0.25d . 49
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
3. Literali
3.3. Literali pentru date calendaristice
sunt formate din campuri
formatul implicit:
specificat prin param. de iniializare NLS_DATE_FORMAT
in notaia ANSI:
cuvantul-cheie DATE si
formatul YYYY-MM-DD
50
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
3. Literali
3.4. Literali pentru marci de timp
sunt formate din campuri
precizeaza anul, luna, ziua, ora, minutul, secunda i fraciunile de secund.
in notaia ANSI:
cuvantul-cheie TIMESTAMP
formatul YYYY-MM-DD HH:MM:SS.FFF
51
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
3. Literali
3.5. Literali pentru intervale de timp
sunt formate din campuri; daca precizia compurilor este mai mare decat 2, trebuie specificata
utilizate impreuna cu functiile analitice specifica o perioada de timp care poate fi exprimat n
ani i luni sau zile, ore, minute i secunde.
2 tipuri de literale pentru specificarea intervalelor: YEAR TO MONTH i DAY TO SECOND
52
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
1. Obiectele bazei de date
2. Tipuri de date SQL
3. Literali
4. Modele de format
5. Valori null
6. Comentarii
7. Pseudocoloane
8. Operatori SQL
9. Funcii SQL
53
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
4. Modele de format
Definitie: Model de format =
= un literal de tip caracter care descrie formatul valorilor de tip
DATE sau NUMBER stocate ntr-un ir de caractere este case-sensitive (DAY FRYDAY; Day Friday) cnd se convertete un ir de caractere ntr-o dat
calendaristic sau ntr-un numr, modelul de format indic sistemului cum s interpreteze irul respectiv
un model de format ca argument al funciilor TO_CHAR i TO_DATE specifica formatul folosit de sistemul Oracle pentru
a returna sau a stoca o valoare n/din baza de date.
nu schimb reprezentarea intern a valorii n baza de date
54
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
1. Obiectele bazei de date
2. Tipuri de date SQL
3. Literali
4. Modele de format
5. Valori null
6. Comentarii
7. Pseudocoloane
8. Operatori SQL
9. Funcii SQL
55
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
5. Valori NULL
Definitie: Valoarea null =
valoarea unei coloane dintr-o linie (un camp) care nu conine nici o valoare
se folosete atunci cnd valoarea efectiv a coloanei respective nu este cunoscut sau nu are importan
valoarea null pot aprea n orice tip de coloana care nu este restricionata prin constrngeri de integritate NOT NULL sau PRIMARY KEY
dou chei compuse care conin valori null sunt considerate identice dac toate componentele diferite de null sunt egale
nu este echivalent cu zero
pentru a testa dac o valoare este null se vor folosi numai condiiile IS NULL i IS NOT NULL.
56
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
1. Obiectele bazei de date
2. Tipuri de date SQL
3. Literali
4. Modele de format
5. Valori null
6. Comentarii
7. Pseudocoloane
8. Operatori SQL
9. Funcii SQL
57
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
6. Comentarii
Pot fi utilizate:
(a) standard (pentru a face aplicatia mai inteligibila
i mai usor de administrat); (b) specific (pentru a transmite optimizorului
OracleDatabase directive de procesare (hints)
a interogarilor dorite de utilizator-programator).
58
4. Obiectele BD 4. Modele format 7. Pseudocoloane
4. Tipuri de date SQL 5. Valori null 8. Operatori SQL
4. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
(a)
Comentariile (explicative) pot fi asociate:
i. instruciunilor SQL, ii. obiectelor schemei; (tabel, vizualizare [materializat], coloan)
(i)
ntr-o instruciune, un comentariu poate aprea ntre orice cuvinte cheie, parametri sau semne de punctuaie. Includerea unui comentariu se poate efectua n 2 moduri:
textul comentat este ncadrat de caracterele /* i */ ; poate ocupa mai multe linii.
comentariul ncepe cu secvena --, urmat de textul propriu-zis; se termin la sfritul liniei.
(ii)
Se utilizeaza comanda COMMENT; Comentariile sunt stocate in dictionarul datelor.
59
4. Obiectele BD 4. Modele format 7. Pseudocoloane
4. Tipuri de date SQL 5. Valori null 8. Operatori SQL
4. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
(b)
Comentariile de tip hint pot fi asociate: numai instructiunilor o instruciune : 1! comentariu dar acesta poate specifica una sau mai multe directive de procesare, precum i comentarii explicative
trebuie plasat imediat dup cuvintele cheie SELECT, INSERT, UPDATE, DELETE sau MERGE
poate avea oricare dintre cele 2 forme descrise anterior, faptul c reprezint o directiv este marcat prin semnul + plasat imediat dup delimitatorul de nceput de comentariu Sintaxa:
{ /*+ hint [ string ] [ hint [ string ] ]... */
| + hint [ string ] [ hint [ string ]...} Exista situatii in care optimizorul ignora directivele de procesare (conflicte intre directive, erori de sintaxa/pozitionare).
60
4. Obiectele BD 4. Modele format 7. Pseudocoloane
4. Tipuri de date SQL 5. Valori null 8. Operatori SQL
4. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
Directivele de procesare: = un mecanism prin care optimizorul OracleDataBase
este fortat s aleag un anumit plan de execuie a cererii, pe baza unor criterii specifice, furnizate de utilizator-
programator.
Exemplu: utilizatorul stie c, pentru anumite cereri, un index este mai selectiv
=> alege un plan de execuie mai eficient dect cel al optimizorului
Directivele se pot aplica: particular asupra tabelelor sau a indecilor,
global asupra tabelelor din cadrul unei vizualizri sau asupra coloanelor care fac parte din indeci.
61
4. Obiectele BD 4. Modele format 7. Pseudocoloane
4. Tipuri de date SQL 5. Valori null 8. Operatori SQL
4. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
Clasificarea directivelor de procesare (dup funcionalitate):
directive pentru optimizare: ALL_ROWS, FIRST_ROWS, RULE
directive pentru accesarea datelor: CLUSTER, FULL, HASH, INDEX, NO_INDEX, INDEX_ASC,
INDEX_DESC, INDEX_SS, , INDEX_JOIN INDEX_COMBINE,
INDEX_FFS, NO_INDEX_FFS, NO_INDEX_SS, INDEX_SS_ASC,
INDEX_SS_DESC
directive pentru ordinea operaiilor de join: ORDERED, LEADING
directive pentru realizarea operaiilor de join: USE_HASH, NO_USE_HASH, USE_MERGE, NO_USE_MERGE,
NO_USE_NL, USE_NL, USE_NL_WITH_INDEX
62
4. Obiectele BD 4. Modele format 7. Pseudocoloane
4. Tipuri de date SQL 5. Valori null 8. Operatori SQL
4. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
Clasificarea directivelor de procesare (dup funcionalit.; cont.):
directive pentru filtrarea paralel n operaiile de join de tip bitmap:
PX_JOIN_FILTER, NO_PX_JOIN_FILTER
directive pentru execuia paralel: PARALLEL, NO_PARALLEL, PARALLEL_INDEX,
NO_PARALLEL_INDEX, PQ_DISTRIBUTE;
directive pentru transformarea cererilor: FACT, NO_FACT, MERGE, NO_MERGE, NO_EXPAND, REWRITE,
NO_REWRITE, UNNEST, NO_UNNEST, USE_CONCAT,
NO_STAR_TRANSFORMATION, STAR_TRANSFORMATION,
NO_QUERY_TRANSFORMATION;
alte directive: APPEND, NOAPPEND, PUSH_SUBQ, PUSH_PRED, QB_NAME,
NO_XML_QUERY_REWRITE, DYNAMIC_SAMPLING,
DRIVING_SITE, NO_PUSH_PRED, NO_PUSH_SUBQ, NOCACHE,
CURSOR_SHARING_EXACT, MODEL_MIN_ANALYSIS, CACHE.
63
4. Obiectele BD 4. Modele format 7. Pseudocoloane
4. Tipuri de date SQL 5. Valori null 8. Operatori SQL
4. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
1. Obiectele bazei de date
2. Tipuri de date SQL
3. Literali
4. Modele de format
5. Valori null
6. Comentarii
7. Pseudocoloane
8. Operatori SQL
9. Funcii SQL
64
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
7. Pseudocoloane
Definitie: Pseudocoloana =
= se comport ca i o coloan a unui tabel, dar nu este
stocat efectiv ntr-un tabel
Se pot face interogri asupra pseudocoloanelor, dar
valorile acestora nu se pot insera, actualiza sau terge
65
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
Exemple
ROWID
= returneaz adresa unei linii din baza de date, furniznd modul cel mai rapid de a accesa linia respectiv
ROWNUM
= returneaz numrul de ordine al liniilor rezultate n urma execuiei unei cereri
poate fi utilizat pentru a limita numrul de linii returnate.
66
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
1. Obiectele bazei de date
2. Tipuri de date SQL
3. Literali
4. Modele de format
5. Valori null
6. Comentarii
7. Pseudocoloane
8. Operatori SQL
9. Funcii SQL
67
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
Definitie: Operatori SQL=
= prelucreaz date individuale (= operanzi = argumente);
sunt reprezentai prin:
caractere speciale
cuvinte cheie
Clasificare
unari (acioneaz asupra unui singur operand)
binari (acioneaz asupra a doi operanzi).
68
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
Definitie: Expresie SQL = = o combinaie de una sau mai multe valori, operatori i
funcii SQL pot aprea n: lista SELECT a instruciunii SELECT condiiile din clauzele WHERE i HAVING clauzele CONNECT BY, START WITH i ORDER BY clauza VALUES a instruciunii INSERT clauza SET a instruciunii UPDATE
Definitie: Conditie SQL = = combin una sau mai multe expresii i operatori logici,
returnnd una dintre valorile TRUE, FALSE sau NULL. pot aparea n: clauzele WHERE, START WITH, CONNECT BY, HAVING ale instruciunii SELECT clauza WHERE a instruciunilor UPDATE i DELETE.
69
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
Precedena operatorilor
n ordinea descresctoare a prioritilor:
1. operatorii unari (+ i -)
2. nmulirea (*) i mprirea (/)
3. adunarea (+), scderea (-) i concatenarea (||)
4. condiiile SQL.
Precedena operatorilor pe mulimi
(UNION, UNION ALL, INTERSECT i MINUS) care acioneaz asupra seturilor de linii returnate de cereri:
aceeai.
70
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
Precedena operatorilor din condiiile SQL
n ordinea descresctoare a prioritilor :
1. operatorii SQL
2. operatorii de comparaie =, !=, , , =
3. operatorii de comparaie IS [NOT] NULL, LIKE, [NOT] BETWEEN, [NOT] IN, EXISTS, IS OF type
4. operatorii logici (NOT; AND, OR).
71
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
Alti operatori i expresii SQL: 1. Expresii care folosesc valori de tip dat calendaristic i
interval:
operatorii utilizati i tipul rezultatelor obinute sunt :
Data + Interval
Data Interval
Interval + Data
=> rezultatul este de tip dat calendaristic,
Data Data
Interval + Interval
Interval Interval
Interval * Number
Number * Interval
Interval / Number
=> rezultatul este de tip interval. 72
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
Alti operatori SQL (cont.): 2. Expresii de tip tablou imbricat i vector:
se pot aplica operatorii:
egalitate,
inegalitate,
MULTISET EXCEPT => diferenta a 2 tablouri imbricate,
MULTISET INTERSECT => intersectia a 2 tablouri imbricate,
MULTISET UNION => reuniunea a 2 tablouri imbricate;
2. Obiecte LOB:
nu sunt acceptate n condiiile de comparaie (se pot insa folosi blocuri PL/SQL).
73
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
Alti operatori: preluati din limbajul Perl Limbajul Perl : faciliti pentru prelucrarea irurilor de caractere Operatorii Perl functioneaza pe post de sabloane
Definitie Sablon = (pattern)
= expresie regulat = expresie care descrie o mulime (potential infinita) de iruri de caractere
= o descriere concis a unei mulimi, fr a fi necesar listarea tuturor elementelor acesteia
Exemple de operatori de tip Perl (incepand cu Oracle 10g)
74
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Operator Descriere
\d O cifr.
\D Un caracter diferit de cifr.
\w Un caracter alfanumeric (a-z, A-Z, 0-9).
\A Expresia regulat apare numai ca prefix al unui ir de caractere sau apare naintea
unui caracter newline de la sfritul unui ir de caractere.
\Z Expresia regulat apare numai ca sufix al unui ir de caractere.
+? Expresia regulat care precede operatorul apare, n irul de caractere, de una sau
mai multe ori, ntr-o manier non-greedy.
{n}? Expresia regulat care precede operatorul apare, n irul de caractere, de exact n
ori, ntr-o manier non-greedy.
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
1. Obiectele bazei de date
2. Tipuri de date SQL
3. Literali
4. Modele de format
5. Valori null
6. Comentarii
7. Pseudocoloane
8. Operatori SQL
9. Funcii SQL
75
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
Funcii SQL
1. Functii numerice;
2. Functii de tip caracter care returneaza valori de tip
caracter;
3. Functii de tip caracter care returneaza valori numerice;
4. Functii de tip NLS (Natural language Support);
5. Functii de tip data calendaristica;
6. Functii generale de comparatie;
7. Functii de conversie intre tipurile de date SQL;
8. Functii XML;
9. Functii pentru prelucrarea valorilor Null;
10. Functii speciale.
76
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
Funciile SQL similare operatorilor (prelucreaza date, returneaza un rezultat);
difera de operatori (pot avea 0, 1, oricate argumente);
sunt predefinite n sistemul Oracle i pot fi utilizate n instruciuni SQL
diferite de funciile definite de utilizator (scrise n PL/SQL);
dac o funcie SQL este apelat cu un argument avnd un alt tip de date dect cel predefinit, sistemul convertete implicit argumentul nainte s evalueze funcia
dac o funcie SQL este apelat cu un argument null, ea returneaz automat valoarea null;
exceptii: functiile CONCAT
NVL REPLACE
REGEXP_REPLACE
77
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
Categoriile de funciile SQL :
a) funcii single row;
b) funcii agregat;
c) funcii analitice;
d) funcii referitoare la obiecte;
e) funcii pe modele;
f) funcii definite de utilizator.
78
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
Observatii a) Funciile single row:
returneaz o singur linie rezultat pentru fiecare linie a
tabelului sau vizualizrii interogate
pot aprea n:
listele SELECT
clauza WHERE
clauza START WITH
clauza CONNECT BY
clauza HAVING
pot fi clasificate n diferite clase, in conformitate cu tipul
argumentelor asupra crora opereaz i al rezultatelor
furnizate:
79
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
80
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Functii TipArgumente TipRezultat Exemple
numerice numeric numeric ABS, ACOS, EXP, FLOOR, LN, LOG,
POWER, ROUND, SIGN, SQRT, TRUNC,
REMAINDER
de tip caracter care
returneaz valori de
tip caracter
CHAR sau
VARCHAR2
VARCHAR2. CONCAT, LOWER, UPPER, REPLACE,
SUBSTR, TRANSLATE, TRIM
de tip caracter care
returneaz valori
numerice
caracter numeric ASCII, INSTR, LENGTH, REGEXP_INSTR
NLS (National
Language Support)
caracter caracter din setul de
caractere naionale
NLS_CHARSET_ID, NLS_CHARSET_NAME,
NLS_CHARSET_DECL_LEN
de tip dat
calendaristic
DATE o dat calendaristic / o
valoare interval /o
valoare numeric
CURRENT_DATE, LAST_DAY,
NUMTOYMINTERVAL,
MONTHS_BETWEEN,
generale de
comparatie
o list cu
numr variabil
de expresii
prima / ultima valoare,
n ordine crescatoare
LEAST, GREATEST
de conversie ntre
tipurile de date SQL
un tip de date
SQL
un tip de date SQL ASCIISTR, BIN_TO_NUM, TO_CHAR,
TO_NUMBER, CONVERT
specifice XML date XML date XML XMLCONCAT, XMLELEMENT, DELETEXML,
XMLTABLE
pentru prelucrarea
valorilor null
expresii i/sau
valoarea null
expresie sau valoarea
null
NULLIF, NVL, NVL2
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
b,c) Funciile agregat i analitice:
necesare pt scrierea interogrilor;
d) Funciile referitoare la obiecte: funcii care opereaz asupra valorilor de tip LOB:
BFILENAME, EMPTY_BLOB, EMPTY_CLOB,
functii care opereaz asupra coleciilor: (tablouri
imbricate i vectori):
CARDINALITY, COLLECT, POWERMULTISET,
POWERMULTISET BY CARDINALITY, SET.
81
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
e) Funcii pe modele:
functii care opereaz asupra modelelor construite cu
ajutorul pachetului DBMS_DATA_MINING sau cu Oracle
Data Mining Java API:
CLUSTER_ID, CLUSTER_PROBABILITY,
CLUSTER_SET, FEATURE_ID, FEATURE_SET,
PREDICTION_DETAILS, FEATURE_VALUE,
PREDICTION_PROBABILITY,
PREDICTION_COST, PREDICTION i
PREDICTION_SET.
f) Funciile definite de utilizator:
pot fi create cu ajutorul limbajului PL/SQL
sunt stocate n baza de date. 82
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL
Cu
rs 5
: E
lem
en
te S
QL
in
Ora
cle
1. Obiectele bazei de date
2. Tipuri de date SQL
3. Literali
4. Modele de format
5. Valori null
6. Comentarii
7. Pseudocoloane
8. Operatori SQL
9. Funcii SQL
83
1. Obiectele BD 4. Modele format 7. Pseudocoloane
2. Tipuri de date SQL 5. Valori null 8. Operatori SQL
3. Literali 6. Comentarii 9. Functii SQL