Sunteți pe pagina 1din 20

Uni

ver
sit
ate
a
Pol
ite
hni
ca
din
Bu
cur

Lab

ti

orat
or 5
Fun
cții
SQL
-
partea
I-
Funcții SQL

• Funcții numerice
• Funcții pentru șiruri de caractere
• Funcții pentru date calendaristice

• uncțiile pot fi văzute ca un operator de


manipulare a datelor;

• Acestea întotdeauna întorc un rezultat;

• Argumentele unei funcții SQL pot fi


constante, variabile sau nume de
30.11.2023
coloană;

• Rolul lor este de a ușura anumite calcule în


cadrul cererilor
SQL.
• Funcțiile se pot folosi pentru:
– Funcții SQL
Efectuarea calculelor numerice
– Prelucrarea de șiruri de caractere
– Prelucrarea datelor calendaristice
– Schimbarea formatului datelor pentru afișare
– Conversia tipurilor de date
• Funcțiile se împart în următoarele categorii:
– Funcții numerice
– Funcții pentru șiruri de caractere
– Funcții pentru date calendaristice
– Funcții de conversie
– Funcții diverse (care acceptă orice tip de argument)
– Funcții de grup

30.11.2023
Funcții Numerice
• 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

30.11.2023
Funcții Numerice
• 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

30.11.2023
Funcții
• ROUND(n[, m]) Numerice
– returnează n rotunjit,
astfel:
– m zecimale, dacă m>0
– 0 zecimale , dacă m este omis
– m cifre înainte de virgulă, dacă m<0

30.11.2023
Funcții
• TRUNC(n[, m]) Numerice
– returnează n trunchiat,
astfel:
– m zecimale, dacă m>0
– 0 zecimale, dacă m este omis
– m cifre înainte de virgulă, dacă m<0

30.11.2023
• Funcțiile pentru
Funcții șiruri de
pentru șiruri de
caractere acceptă ca parametri
caractere
valori alfanumerice și
returnează tot o valoare
alfamumerică.
• Funcțiile care acceptă valori de tip
VARCHAR2 pot avea parametri de
lungime maximă 4000 de caractere,
iar cele de tip CHAR pot avea
parametri de lungime maximă de
255.

30.11.2023
• REPLACE(str, subStrOld, subStrNew) – înlocuiește în șirul de
Funcții pentru șiruri de
caractere str
caractere
subșirul de caractere subStrOld, cu subșirul de
caractere subStrNew ;
• 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.

30.11.2023
SUBSTR(str, m[, n]) – returnează n caractere din str

Funcții pentru șiruri de
începând cu poziția m;
• caractere
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.

30.11.2023
• Oracle stochează
Funcții datele calendaristice
pentru date în
următorul format
calendaristice
intern: Secol, An, Luna, Ziua, Ora, Minut,
Secunda ;
• Formatul implicit de afișare pentru o dată
calendaristică este ‘DD-MMM-YY’ ;
• Intervalul datelor calendaristice este între 1-
JAN-4712 BC și
31-DEC-4712 AC ;
Observatie:
• 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ă.

30.11.2023
• LAST_DAY(date) – returnează data ultimei zile din luna
Funcții pentru date
cuprinsă în date ;
calendaristice
• 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 ;

30.11.2023
• MONTHS_BETWEEN(date1,
Funcții pentru date
date2) – returnează numărul de
calendaristice
luni (și fracțiuni de luni) cuprinse
între date1 și date2. Dacă
date1>=date2 rezultatul va fi
pozitiv, altfel negativ.

30.11.2023
• ROUND(date, format) – returnează data
Funcții pentru date
prin rotunjirea lui date la formatul format.
calendaristice

30.11.2023
• TRUNC(date, format) – returnează data prin
Funcții pentru date
trunchierea lui date la formatul format.
calendaristice

30.11.2023
• Funcțiile ROUND și TRUNC (la fel ca și
Funcții pentru date
funcțiile TO_DATE, TO_CHAR) recunosc mai


calendaristice
multe tipuri de formatare, printre care:
CC, SCC – pentru secol
– SYYYY, YYYY, YEAR, SYEAR, YYY, YY, Y – pentru an
– MONTH, MON, MM, RM – pentru lună
– WW – ziua din săptămână corespunzatoare datei
care coincide cu prima zi a anului
– W – ziua din săptămână corespunzatoare datei care
coincide cu prima zi a lunii
– DDD, DD – prentru zi
– DAY, DY, D – pentru prima zi din săptămână în care este
cuprinsă data
– HH, HH12, HH24 – pentru oră
– MI – minute
– SS - secunde
– RR – formatul pentru an și secol

30.11.2023
• SYSDATE – returnează data curentă(data de sistem) în
Funcții pentru date
diferite formate
calendaristice
• EXTRACT(part FROM date) – extrage partea part din
dată date,
returnează o valoare numerică

30.11.2023
• Folosind operatorii
Funcții pentru aritmetici
date + și – se
pot face
calendaristice
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 , aduna/scade un număr
de ore la dată,
returnând tot o dată calendaristică .
30.11.2023
Funcții pentru date
calendaristice

30.11.2023
Exercitii

1. Să se faca o lista cu data de plecare in concediu


pentru toti angajatii companiei, mai putin
presedintele. Data de plecare in concediu este in
urmatoarea zi dupa ce angajatul a implinit 11
luni de la angajare.
Lista va avea urmatorul antet:
Nume_angajat, Functie, Data_angajare,
Data_plecare_concediu

2. Să se faca o lista cu vechimea in companie a


tuturor angajatilor in vederea acordarii unei
prime. Vechimea se va calcula in ani intregi.
Lista va avea urmatorul antet:
Nume_angajat, Functie, Data_angajare,
30.11.2023

Ani_vechime

S-ar putea să vă placă și