Sunteți pe pagina 1din 16

Funcţii SQL

Curs

1
Funcţii pentru numere
 ABS
 Returnează valoarea absolută a unei expresii;
 Dacă expresia este NULL, se returnează NULL; dacă
expresia este –infinit, se returnează infinit;
 CEIL
 Returnează cel mai mic număr întreg mai mare sau
egal cu expresia
 SELECT SUM(commission_pct) from employees;
 7.8
 SELECT CEIL(SUM(commission_pct)) from employees;
 8

2
Funcţii pentru numere
 FLOOR
 Returnează cel mai mare număr întreg egal, sau mai
mic decât expresia
 SELECT SUM(commission_pct) from employees;
 7.8
 SELECT FLOOR(SUM(commission_pct)) from employees;
 7

 MOD
 Returnează restul împărțirii unui număr întreg la alt număr
întreg
 Dacă al doilea număr este 0, este returnat primul număr
 Dacă vreuna dintre expresii este NULL, se returnează NULL

3
Funcţii pentru numere
 MOD
M N MOD(M,N)
11 3 2
11 -3 2
-11 3 -2
-11 -3 -2

 SELECT m,n FROM test WHERE


MOD(m,n)=0

4
Funcţii pentru numere
 POWER
 Returnează baza ridicată la o anumită
putere
 Dacă baza este negativă, atunci exponentul
trebuie să fie număr întreg
 SELECT commission_pct from employees WHERE
employee_id=145;
 .4
 SELECT POWER(commission_pct,2) from employees
WHERE employee_id=145;
 .16

5
Funcţii pentru numere
 ROUND
 Returnează expresia rotunjită, având un
anumit număr de caractere la dreapta virgulei
 ROUND(expresia1[,expresia2])
 Dacă se utilizează un singur parametru – vom
avea zero cifre după virgulă
 ROUND(15.555,2)-15.56
 ROUND(15.555,-1)-20
 la float sau double, valoarea este rotunjită la
cea mai apropiată valoare pară

6
Funcţii pentru numere
 TRUNC
 Returnează expresia trunchiată, având un
anumit număr de caractere la dreapta
virgulei
 TRUNC(expresia1[,expresia2])
 Dacă se utilizează un singur parametru –
vom avea zero cifre după virgulă
 TRUNC(15.555,2)-15.55
 TRUNC(15.555,-1)-10

7
Funcţii pentru numere
 SIGN
 Returnează semnul expresiei
 Valori întregi:
 -1 când valoarea e negativă;
 +1 când valoarea e pozitivă;
 0 când valoarea e nulă.
 Valori float
 -1 la valori negative;
 +1 la valori egale sau mai mari decât 0, sau NaN.
 SQRT
 Returnează rădăcina pătrată a unui număr
 Dacă expresia e negativă - NaN

8
Funcţii pentru şiruri de
caractere
 (N)CHAR
 Returnează caracterul care are valoarea specificată ca şi parametru
 CHAR(65)-A
 CHAR(67)-C
 CONCAT
 Concatenează două şiruri de caractere
 LOWER şi UPPER
 Realizează convertirea în şiruri de caractere scrise cu minuscule,
respectiv, majuscule
 (R)LPAD
 Returnează o expresie aliniată dreapta, având în stânga ei alte
caractere date de un alt parametru al funcţiei
 SELECT LPAD(last_name, 10,’.’) FROM employees;
 LENGHT
 Lungimea unui șir de caractere

9
Funcţii pentru şiruri de
caractere
 (R)LTRIM
 Elimină din partea stângă a unei expresii toate caracterele
conținute în cea de-a doua expresie
 LTRIM ('xxxyyyxyxyLTRIM Example', 'xy')-LTRIM Example
 REPLACE
 Înlocuiește o secvență de caractere într-un șir dat cu un alt set de
caractere, sau elimină secvența cu totul
 REPLACE(șirul, secvența[,noul șir])
 SUBSTR
 Returnează un șir care reprezintă un substring al șirului sursă
 SUBSTR(sursa,m,n)
 Daca ABS(m)> lungimea șirului va rezulta NULL
 Dacă n este ignorat, sunt afișate toate caracterele de la poziția m
 Dacă m negativ-numărarea începe de la sfârșitul sursei

10
Funcţii pentru şiruri de
caractere
 TRIM
 Elimină toate caracterele conținute la început şi/sau sfârșit de șir
 TRIM ( LEADING|TRAILING|BOTH Trim_character FROM
Expression)
 TRIM ( LEADING|TRAILING|BOTH FROM Expression)
 TRIM (Trim_character FROM Expression)
 TRIM ( Expression)
 ASCIISTR
 Returnează versiunea ASCII a stringului din baza de date a
seturilor de caractere
 INSTR
 Determină prima poziție pe care apare un substring într-un string
 INSTR ('Washington', 'ing')-5

11
Funcţii pentru date
calendaristice
 ADD_MONTHS
 Returnează data obținută prin adunarea la o dată a unui număr de
luni
 ADD_MONTHS (DATE '2016-01-31', 1)
 2016-02-29 00:00:00

 EXTRACT
 Extrage și returnează o valoare dintr-o dată
 EXTRACT(YEAR FROM hire_date)
 MONTHS_BETWEEN
 Returnează numărul de luni dintre două date
 MONTHS_BETWEEN(DATE '1995-02-02', DATE '1995-01-01')
 1.03225806451613
 MONTHS_BETWEEN(DATE '2010-02-02', DATE '2010-10-01')
 -7.96774193548387

12
Funcţii pentru date
calendaristice
 NUMTODSINTERVAL
 Convertește un număr sau expresie în intervale ZI, ORĂ, MINUT,
SECUNDĂ
 NUMTODSINTERVAL(150,'DAY')
 +000000150 00:00:00.000000000
 NUMTOYMINTERVAL
 Identic cu cazul de mai sus
 Se aplică numai pentru Y și M
 ROUND(date)
 Returnează data rotunjită la unitatea specificată în format
 Dacă nu e specificat formatul , data e rotunjită la următoarea zi
 ROUND (DATE '2007-08-25','YEAR')- 2008-01-01 00:00:00
 ROUND (TIMESTAMP '2007-08-16 13:00:00')- 2007-08-17
00:00:00

13
Funcţii pentru date
calendaristice
 SYSDATE și GETDATE()
 Returnează data în formatul YYYY-MM-DD HH:MI:SS
 Valoarea reprezintă data și timpul local al sistemului
 TIMESTAMPADD
 Adună un număr de intervale la timestamp și returnează
timestamp-ul modificat
 SQL_TSI_FRAC_SECOND, SQL_TSI_SECOND, SQL_TSI_MINUTE,
SQL_TSI_HOUR, SQL_TSI_DAY, SQL_TSI_WEEK,
SQL_TSI_MONTH, SQL_TSI_QUARTER, SQL_TSI_YEAR
 TIMESTAMPADD (SQL_TSI_MONTH, 3, TIMESTAMP '2010-11-30
10:00:00') - 2011-02-28 10:00:00
 TIMESTAMPADD (SQL_TSI_SECOND, 1, TIMESTAMP '2010-12-31
23:59:59') - 2011-01-01 00:00:00

14
Funcţii pentru date
calendaristice
 TIMESTAMPDIFF
 Specifică un număr de intervale dintre două timestampuri
 TIMESTAMPDIFF (SQL_TSI_MONTH, DATE '2009-02-01', DATE
'2009-03-01') – 1
 TIMESTAMPDIFF (SQL_TSI_DAY, DATE '2009-02-01', DATE '2009-
03-01') – 28
 TRUNC(date)
 Returnează data trunchiată în funcție de format
 TRUNC (TO_DATE ('27-OCT-92','DD-MON-YY'),'YEAR') - 2092-01-
01 00:00:00

15
REGEXP_LIKE
 WHERE REGEXP_LIKE(Prenume,’I’)-numele începe cu I
 WHERE REGEXP_LIKE(Prenume,’^I(o|oa)n(|a)$’)-
numele poate fi Ion, Ioan, Ioana, Iona
 WHERE REGEXP_LIKE(Adresa,’Bl.\w\d’)-adresa este de
forma Bl.o literă și o cifră
 WHERE REGEXP_LIKE(Adresa,’Bl.[A-Z][0-9]’)-adresa
este de forma Bl.o literă și o cifră

16

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