Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
FUNCTII CARE FAC CONVERSII ASUPRA TIPURILOR DE LITERE DIN SIRURILE DE CARACTERE (CASE-MANIPULATION FUNCTIONS)
Aceste functii pot fi folosite in majoritatea clauzelor instructiunii SELECT.
1) LOWER(column|expression) converteste toate literele in litere mici
Exemplu
SELECT title
FROM d_cds
WHERE LOWER(title) = 'carpe diem';
FUNCTII CARE FAC CONVERSII ASUPRA TIPURILOR DE LITERE DIN SIRURILE DE CARACTERE
2) UPPER(column|expression) converteste toate literele in litere mari.
SELECT title
FROM d_cds
WHERE UPPER(title) = 'CARPE DIEM';
3) INITCAP( column|expression) converteste litera de inceput a
fiecarui cuvant in litera mare.
SELECT title
FROM d_cds
WHERE INITCAP(title) = 'Carpe Diem';
FUNCTII CARE REALIZEAZA DIVERSE OPERATII ASUPRA SIRURILOR DE CARACTERE (CHARACTER-MANIPULATION FUNCTIONS)
1) CONCAT – concateneaza doua siruri de caractere
Exemplu: CONCAT (‘Hello’, ‘World’) – rezultatul=HelloWorld
2) SUBSTR - extrage un subsir de o dimensiune specificata
Exemplu: SUBSTR (‘HelloWorld’, 1, 5) – rezultatul=Hello
3) LENGTH: returneaza o valoare numerica ce reprezinta lungimea unui sir de caractere
Exemplu: LENGTH (‘HelloWorld’) – rezultatul=10
4) INSTR: determina pozitia primei aparitii a unui caracter dat intr-un sir de caractere
Exemplu: INSTR (‘HelloWorld’, ‘W’) – rezultatul=6
FUNCTII CARE REALIZEAZA DIVERSE OPERATII ASUPRA SIRURILOR DE CARACTERE
5) LPAD: completeaza la afisare, cu un caracter dat, partea stanga a valorii de afisat, pe o anumita lungime.
Exemplu: LPAD (salary, 10,’*’) – rezultatul=*****24000
6) RPAD: completeaza la afisare, cu un caracter dat, partea dreapta a valorii de afisat, pe o anumita lungime.
Exemplu: RPAD (salary, 10, ‘*’) – rezultatul=24000*****
7) TRIM: Elimina toate caracterele specificate atat de la inceputul cat si de la sfarsitul unui sir de caractere (implicit se elimina si de la inceput si de la sfarsit). Sintaxa este urmatoarea:
trim ( [leading | trailing | both [character(s) to be removed ] from] string to trim)
Exemplu: TRIM (‘H’, FROM ‘HelloWorld’) – rezultatul=elloWorld
FUNCTII CARE REALIZEAZA DIVERSE OPERATII ASUPRA SIRURILOR DE CARACTERE
8) REPLACE: inlocuieste o secventa de caractere dintr-un string cu un alt
sir de caractere. Sintaxa este urmatoarea:
replace (string1, string_to_replace, [replacement_string] )
- string1 – sirul in care se face inlocuirea secventei de caractere
- string_to_replace – secventa de caractere ce va fi inlocuita
- [replacement_string] – sirul de caractere ce va inlocui secventa
Exemplu: REPLACE('JACK and JUE','J','BL') – rezultatul=BLACK and BLUE
FUNCȚII NUMERICE
Functiile numerice de tipul single-row pot avea ca parametri numere si furnizeaza ca rezultate valori numerice.
Cele trei functii numerice sunt urmatoarele:
ROUND
TRUNC
MOD
FUNCȚII NUMERICE
Functia ROUND
– este folosita pentru a rotunji numere la un numar specificat de
zecimale.
- functia poate rotunji numerele si in partea stanga a punctului zecimal. - functia poate fi folosita si cu date calendaristice.
Sintaxa:
ROUND(column|expression, decimal places)
Daca nu este specificat numarul de zecimale (decimal places) sau acesta este 0, numarul nu va avea zecimale.
FUNCȚII NUMERICE
Functia ROUND – exemple
ROUND(45.926) - rezultatul=46
ROUND(45.926, 0) – rezultatul=46
ROUND(45.926,2) - rezultatul=45.93
ROUND(45.926, -1) – rezultatul=50
ROUND(45.926,-2) – rezultatul=0
FUNCȚII NUMERICE
Functia TRUNC
- este folosita pentru a trunchia o valoare la un numar specificat de zecimale
- Daca numarul de zecimale nu este specificat, atunci implicit este considerat 0
- functia poate fi folosita si cu date calendaristice.
Sintaxa:
TRUNC(column|expression, decimal places)
FUNCȚII NUMERICE
Functia TRUNC – exemple
TRUNC(45.926) - rezultatul=45
TRUNC(45.926, 0) – rezultatul=45
TRUNC(45.926,2) - rezultatul=45.92
TRUNC(45.926, -1) – rezultatul=40
TRUNC(45.926,-2) – rezultatul=0
FUNCȚII NUMERICE
Functia MOD
- se foloseste pentru a determina restul impartirii a doua numere
intregi
Exemple:
1) MOD( 1600 / 300) – rezultatul este 100
2) SELECT last_name, salary, MOD(salary, 2) As "Mod Demo"
FROM f_staffs
WHERE staff_type IN(‘Order Taker’, ’Cook’, ‘Manager');
Coloana "Mod Demo“ indica daca salariul este numar par sau impar.
NUMBER FUNCTIONS
APLICATII
1. Sa se afiseze campurile last_name si salary pentru acei angajati
care lucreaza in departmentul 80. Sa se dea fiecarui angajat o crestere salariala de 5.33% iar rezultatul sa fie trunchiat la doua zecimale.
SELECT last_name, TRUNC(salary * .0533,2)
FROM employees
WHERE department_id = 80;
FUNCȚII NUMERICE
2. Folositi tabela DUAL pentru a realiza urmatoarele:
845.553 – rotunjit la o pozitie zecimala
30695.348 – rotunjit la doua pozitii zecimale
30695.348 - rotunjit cu -2 pozitii zecimale (cu 2 pozitii zecimale la stanga)
2.3454 – trunchierea lui 454 de pozitiile zecimale
FUNCȚII NUMERICE
SELECT round(845.553,1) FROM DUAL;
SELECT round(30695.348,2) FROM DUAL;
SELECT ROUND(30695.348,-2) FROM DUAL;
SELECT TRUNC(2.3454,1) FROM DUAL;
FUNCȚII PENTRU DATE CALENDARISTICE
- Formatul implicit pentru datele calendaristice este DD-MON-RR
Exemplu: 02-DEC-99
- Datele calendaristice sunt stocate intern in format numeric fiind reprezentate: secolul, anul, luna, ziua, orele, minutele si secundele. Aceasta reprezentare permite efectuarea de operatii aritmetice asupra datelor calendaristice.
- Datele calendaristice Oracle se regasesc in intervalul de valori: 1 ianuarie 4712 i.c. – 31 decembrie 9999 d.c.
- Atunci cand inseram intr-o tabela o inregistrare care are un camp de tip data calendaristica informatia cu privire la secol este preluata de la functia SYSDATE.
- SYSDATE este o functie pentru date calendaristice care ne furnizeaza data si ora curenta a serverului bazei de date Oracle
FUNCȚII PENTRU DATE CALENDARISTICE
Exemplu: pentru afisarea datei curente, se foloseste tabela DUAL
SELECT SYSDATE
FROM DUAL
- Tipul de date data calendaristica stocheaza intotdeauna anul sub forma a 4 cifre – 2 cifre pentru secol si 2 cifre pentru an
- Functii pentru date calendaristice: MONTHS_BETWEEN, ADD_MONTHS, NEXT_DAY, LAST_DAY, ROUND, TRUNC. Inafara de funcia MONTHS_BETWEEN, toate celelate functii returneaza valori de tip data calendaristica.
- De asemenea, asupra datelor calendaristice se pot face operatii aritmetice
FUNCȚII PENTRU DATE CALENDARISTICE
EXEMPLE:
1) SELECT last_name, hire_date+60
FROM employees
2) SELECT last_name, (SYSDATE-hire_date)/7
FROM employees
3) SELECT order_no, amt_due, purch_date+30 “Due Date”
FROM dual
FUNCȚII PENTRU DATE CALENDARISTICE
MONTHS_BETWEEN – determina numarul de luni dintre 2 date calendaristice
ADD_MONTHS – aduna un anumit numar de luni la o data calendaristica
NEXT_DAY - returneaza data calendaristica corespunzatoare zilei din saptamana specificate, care urmeaza unei anumite date calendaristice
LAST_DAY – returneaza ultima zi a lunii corespunzatoare datei specificate
ROUND – rotunjeste o data calendaristica
TRUNC – trunchiaza o data calendaristica
FUNCȚII PENTRU DATE CALENDARISTICE
Exemple:
1) MONTHS_BETWEEN(’01-SEP-92’, ’01-JUN-91’) – rezultatul=15
2) ADD_MONTHS(’11-JAN-94’,6) – rezultatul este=’11-JUL-94’
3) NEXT_DAY(’01-SEP-95’,’FRIDAY’) – rezultatul este=’08-SEP-95’
4) LAST_DAY(’01-FEB-95’) – rezultatul este=’28-FEB-95’
Pentru urmatoarele exemple, presupunem ca SYSDATE=’25-JUL-95’
5) ROUND(SYSDATE,’MONTH’) – rezultatul este=’01-AUG-95’
6) ROUND(SYSDATE,’YEAR’) – rezultatul este=’01-JAN-96’
7) TRUNC(SYSDATE,’MONTH’) – rezultatul este=’01-JUL-95’
8) TRUNC(SYSDATE,’YEAR’) – rezultatul este=’01-JAN-95’