Sql
Functii SQLFunctii SQLFunctii 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.
|