Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna





Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica

Sql


Qdidactic » stiinta & tehnica » informatica » sql
Functii SQL



Functii SQL


Functii SQL


Functii single-row

Functii multiple-row (functii agregat)


I. Functiile single row returneaza o singura linie rezultat pentru fiecare linie a tabelului sau vizualizarii interogate. Aceste functii pot aparea in listele SELECT, clauzele WHERE, START WITH, CONNECT BY si HAVING. In ceea ce priveste tipul argumentelor asupra carora opereaza si al rezultatelor furnizate, functiile single row pot fi clasificate in clase corespunzatoare.

q    Functiile de conversie cele mai importante sunt:



TO_CHAR – converteste un numar sau o data calendaristica in sir de caractere

TO_DATE – converteste un numar sau un sir de caractere in data calendaristica

TO_NUMBER – converteste un sir de caractere in numar.

Obs: Exista doua tipuri de conversii:

implicite, realizate de sistem atunci cand este necesar;

explicite, indicate de utilizator prin intermediul functiilor de conversie.

Conversiile implicite asigurate de server-ul Oracle sunt:

de la VARCHAR2 sau CHAR la NUMBER;

de la VARCHAR2 sau CHAR la DATE;

de la NUMBER la VARCHAR2 sau CHAR;

de la DATE la VARCHAR2 sau CHAR.

q    Functiile pentru prelucrarea caracterelor sunt:

LENGTH(string) – intoarce lungimea sirului de caractere string

SUBSTR(string, start [,n]) intoarce subsirul lui string care incepe pe pozitia start si are lungimea n; daca n nu este specificat, subsirul se termina la sfarsitul lui string

LTRIM(string [,’chars’]) sterge din stanga sirului string orice caracter care apare in chars, pana la gasirea primului caracter care nu este in chars; in cazul in care chars nu este specificat, se sterg spatiile libere din stanga lui string;

RTRIM(string [,’chars’]) – este similar functiei LTRIM, cu exceptia faptului ca stergerea se face la dreapta sirului de caractere

LPAD(string, length [,’chars’]) – adauga chars la stanga sirului de caractere string pana cand lungimea noului sir devine length in cazul in care chars nu este specificat, atunci se adauga spatii libere la stanga lui string

RPAD(string, length [,’chars’]) – este similar functiei LPAD, dar adaugarea de caractere se face la dreapta sirului;


REPLACE(string1, string2 [,string3]) intoarce string1 cu toate aparitiile lui string2 inlocuite prin string3; daca string3 nu este specificat, atunci toate aparitiile lui string2 sunt sterse

UPPER(string), LOWER(string) transforma toate literele sirului de caractere string in majuscule, respectiv minuscule

INITCAP(string) – transforma primul caracter al sirului in majuscula

INSTR(string, ‘chars’ [,start [,n]]) – cauta in string, incepand de de la pozitia start, a n a aparitie a secventei chars si intoarce pozitia respectiva daca start nu este specificat, cautarea se face de la inceputul sirului; daca n nu este specificat, se cauta prima aparitie a secventei chars

ASCII(char) – furnizeaza codul ASCII al unui caracter

CHR(num) intoarce caracterul corespunzator codului ASCII specificat

CONCAT(string1, string2) realizeaza concatenarea a doua siruri de caractere

SOUNDEX(string) intoarce reprezentarea fonetica a sirului de caractere specificat

TRANSLATE(string, from, to) – fiecare caracter care apare in sirurile de caractere string si from este transformat in caracterul corespunzator aflat pe aceeasi pozitie ca si in from) din sirul de caractere to;

q    Functiile aritmetice single-row pot opera asupra:

unei singure valori, si aceste functii sunt ABS (valoarea absoluta), CEIL (partea intreaga superioara), FLOOR (partea intreaga inferioara), STDDEV (deviatia standard), VARIANCE (dispersia), ROUND (rotunjire cu un numar specificat de zecimale), TRUNC (trunchiere cu un numar specificat de zecimale), EXP (ridicarea la putere a lui e), LN (logaritm natural), LOG (logaritm intr o baza specificata), MOD (restul impartirii a doua numere specificate), POWER (ridicarea la putere), SIGN (semnul unui numar), COS (cosinus), COSH (cosinus hiperbolic), SIN (sinus), SINH (sinus hiperbolic), SQRT (radacina patrata), TAN (tangent), TANH (tangent hiperbolic);

unei liste de valori, iar acestea sunt functiile LEAST si GREATEST, care intorc cea mai mica, respectiv cea mai mare valoare a unei liste de expresii.

q    Functiile pentru prelucrarea datelor calendaristice sunt:

SYSDATE – intoarce data si timpul curent

ADD_MONTHS(d, count) intoarce data care este dupa count luni de la data d

NEXT_DAY(d, day) intoarce urmatoarea data dupa data d, a carei zi a saptamanii este cea specificata prin sirul de caractere day

LAST_DAY(d) intoarce data corespunzatoare ultimei zile a lunii din care data d face parte;

MONTHS_BETWEEN(d2, d1) – intoarce numarul de luni dintre cele doua date calendaristice specificate

NEWTIME(data, zona_intrare, zona_iesire) – returneaza ora din zona_intrare corespunzatoare orei din zona_iesire

TRUNC(d) intoarce data d, dar cu timpul setat la ora 12:00 AM (miezul noptii

ROUND(d) – daca data d este inainte de miezul zilei, intoarce data d cu timpul setat la ora 12:00 AM; altfel, este returnata data corespunzatoare zilei urmatoare, cu timpul setat la ora 12:00 AM;

LEAST(d1, d2, …, dn), GREATEST(d1, d2, …, dn) – dintr-o lista de date calendaristice, functiile intorc prima, respectiv ultima data in ordine cronologica.

q    Functii diverse:

DECODE(value, if1, then1, if2, then2, … , ifN, thenN, else) – returneaza then1 daca value este egala cu if1, then2 daca value este egala cu if2 etc.; daca value nu este egala cu nici una din valorile if, atunci functia intoarce valoarea else

NVL(e1, e2) – daca e1 este NULL, intoarce e2; altfel, intoarce e1

NVL2(e1, e2, e3) – daca e1 este NULL, intoarce e2, altfel intoarce e3;

UID, USER – intorc ID ul, respectiv username-ul utilizatorului ORACLE curent;

USERENV furnizeaza informatii despre sesiunea curenta

VSIZE(expr) intoarce numarul de octeti ai unei expresii de tip DATE, NUMBER sau VARCHAR2


II. Functiile multiple-row (agregat) pot fi utilizate pentru a returna informatia corespunzatoare fiecaruia dinte grupurile obtinute in urma divizarii liniilor tabelului cu ajutorul clauzei GROUP BY. Ele pot aparea in clauzele SELECT, ORDER BY si HAVING. Server-ul Oracle aplica aceste functii fiecarui grup de linii si returneaza un singur rezultat pentru fiecare multime.

Dintre functiile grup definite in sistemul Oracle, se pot enumera: AVG, SUM, MAX, MIN, COUNT, STDDEV, VARIANCE etc. Tipurile de date ale argumentelor functiilor grup pot fi CHAR, VARCHAR2, NUMBER sau DATE. Functiile AVG, SUM, STDDEV si VARIANCE opereaza numai asupra valorilor numerice. Functiile MAX si MIN pot opera asupra valorilor numerice, caracter sau data calendaristica.

Toate functiile grup, cu exceptia lui COUNT(*), ignora valorile null. COUNT(expresie) returneaza numarul de linii pentru care expresia data nu are valoarea null. Functia COUNT returneaza un numar mai mare sau egal cu zero si nu intoarce niciodata valoarea null.

Cand este utilizata clauza GROUP BY, server-ul sorteaza implicit multimea rezultata in ordinea crescatoare a valorilor coloanelor dupa care se realizeaza gruparea.




Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright