Table of Contents

Laborator 06 - Funcții SQL (I)

Obiective

Materiale ajutătoare

Resurse BD

Funcții SQL

Descriere

Rol și clasificare

Documentație External Link

Funcții pentru valori numerice

Descriere
Aceste funcții acceptă la intrare valori numerice și returnează tot valori numerice;

Funcție Descriere funcție
SIN(n) returnează sinus de n unde n este în radiani
COS(n) returnează cosinus de n unde n este în radiani
TAN(n) returnează tangenta de n unde n este în radiani
SINH(n) returnează sinus hiperbolic de n
COSH(n) returnează cosinus hiperbolic de n
TANH(n) returnează tangenta hiperbolică de n
ASIN(n) returnează arcsinus de n
ACOS(n) returnează arccosinus de n
ATAN(n) returnează arctangenta de n
SIGN(n) returnează -1 dacă n<0, 0 dacă n=0, 1 dacă n>0
ABS(n) returnează valoarea absolută a lui n
CEIL(n) returnează cel mai mic întreg>=n
FLOOR(n) returnează cel mai mare întreg<=n
EXP(n) returnează e la puterea n
POWER(m,n) returnează m la puterea n
SQRT(n) returnează rădăcina pătrată a lui n
LN(n) returnează logaritmul natural al lui n (n>0)
LOG(m,n) returnează logaritmul în baza m a lui n
MOD(m,n) returnează restul împărțirii lui m la n
ROUND(n[, m]) returnează n rotunjit astfel: m zecimale dacă m>0, 0 dacă m este omis, m cifre înainte de virgulă dacă m<0
TRUNC(n[, m]) returnează n trunchiat astfel: m zecimale dacă m>0, 0 dacă m este omis, m cifre înainte de virgulă dacă m<0

Exemple

Funcții pentru șiruri de caractere

Descriere

Funcție Descriere funcție
CHR(n) returnează caracterul care are reprezentarea decimală n
CONCAT(str1, str2) returnează concatenarea lui str1 cu str2
INITCAP(str) converteste fiecare prima litera a fiecarui cuvânt din str la litera mare iar restul de litere la litere mici
REPLACE(str, strOld, strNew)înlocuiește în șirul de caractere str subșirul de caractere strOld cu subșirul de caractere strNew
RPAD(str1, n[,str2]) adaugă la dreapta lui str1 caracterele din str2 până la lungimea n iar dacă str2 lipseșe adaugă spațiu
LPAD(str1, n[,str2]) adaugă la stânga lui str1 caracterele din str2 până la lungimea n iar dacă str2 lipseșe adaugă spațiu
RTRIM(str1[, str2]) șterge din str1 ultimele caractere dacă sunt în str2
SUBSTR(str, m[, n]) returnează n caractere din str începând cu poziția m
INSTR(str1, str2[, n[, m]]) returnează poziția lui str2 în str1, începând cu poziția n, la a m-a apariție
TRANSLATE(str1, from_str, to_str) înlocuiește în șirul de caractere str1 toate aparițiile caracterelor din form_str cu caracterul corespondent din to_str (înlocuirea se face caracter cu caracter)
LENGTH(str) returnează lungimea șirului de caractere str

Exemple

Funcții pentru date calendaristice

Descriere

Toate funcțiile de tip dată calendaristică întorc o valoare de tip DATE, cu excepția funcției MONTHS_BETWEEN care întoarece o valoare numerică.

Funcțiile ROUND și TRUNC Link (la fel ca și funcțiile TO_DATE, TO_CHAR) recunosc mai multe tipuri de formatare, printre care:

Variție An

Variție An

Formatul pentru an și secol (RR) variază în acord cu anul curent astfel:

  • Anul curent este între 0 și 49:
    • Dacă ultimele 2 caractere pentru an sunt între 0 și 49 atunci data întoarsă pentru an este în secolul curent;
    • Dacă ultimele 2 caractere pentru an sunt între 50 și 99 atunci data întoarsă pentru an este în secolul anterior celui curent.
  • Anul curent este între 50 și 90:
    • Dacă ultimele 2 caractere pentru an sunt între 0 și 49 atunci data întoarsă pentru an este în secolul după cel curent;
    • Dacă ultimele 2 caractere pentru an sunt între 50 și 99 atunci data întoarsă pentru an este în secolul curent.
Funcție Descriere funcție
LAST_DAY(date) returnează data ultimei zile din luna cuprinsă în date
NEXT_DAY(date, str) returnează data următoarei zile din săptămână dată de str, după data date
ADD_MONTHS(date, n) returnează o dată prin adăugarea a n luni la date
MONTHS_BETWEEN(date1, date2) returnează numărul de luni (și fracțiuni de luni) cuprinse între date1 și date2. Dacă date1>=date2 rezultatul va fi pozitiv, altfel negativ
ROUND(date, format) returnează data prin rotunjirea lui date la formatul format
TRUNC(date, format) returnează data prin trunchierea lui date la formatul format
SYSDATE returnează data curentă(data de sistem) în diferite formate
EXTRACT(part FROM date) extrage partea part din dată date, returnează o valoare numerică

Exemple

Folosind operatorii aritmetici + și – se pot face diferite operații cu date calendaristice:

  • data + numar – adună un număr de zile la dată, returnând tot o dată calendaristică ;
  • data – numar – scade un număr de zile la dată, returnând tot o dată calendaristică ;
  • data1 – date2 – scade date2 din date1 , returnând numărul de zile ;
  • data – numar /24 – adună la dată un număr de ore, returnează tot o dată calendaristică.

  • Pentru a schimba formatul datei la nivel de sesiune trebuie să se modifice parametrul de sistem NLS_DATE_FORMAT
  • Pentru a modifica acest parametru la nivel de sesiune se utilizeaza următoarea comandă:
ALTER SESSION SET NLS_DATE_FORMAT = new_format

Exercitiu individual

Pentru angajatii ce au numele de lungime 4, faceti o lista cu: