Documente Academic
Documente Profesional
Documente Cultură
Un element din lista_campuri are forma: expresie [AS] alias. Elementele listei
sunt separate prin virgul. Dac alias conine blank-uri sau dac ncepe cu o cifr atunci
trebuie inclus obligatoriu ntre ghilimele. Alias-ul apare n rezultat, ca i cap de coloan
pentru expresia respectiv. Doar antetele specificate ntre ghilimele sunt case-sensitive,
celelalte fiind scrise implicit cu majuscule.
Dac lista_campuri este nlocuit de * atunci se vor lista n ntregime
coninuturile obiectelor specificate de clauza FROM.
DISTINCT (UNIQUE) elimin din rezultat liniile duplicat.
n clauza ORDER BY, precizarea criteriului de ordonare se poate realiza i prin
indicarea alias-urilor coloanelor sau a poziiilor acestora n clauza SELECT.
Exemplu: Se vor afia angajaii cu prenumele James n ordinea descresctoare a
salariului.
SELECT first_name AS nume,salary
FROM employees
WHERE first_name = 'James'
ORDER BY salary DESC
Date calendaristice i iruri de caractere
irurile de caractere se includ ntre . Concatenarea irurilor de caractere se face
folosindu-se operatorul ||. Pentru compararea sirurilor de caractere, mpreun cu
operatorul LIKE se utilizeaz caracterele wildcard:
% - reprezentnd orice sir de caractere, inclusiv sirul vid;
_ (underscore) reprezentnd un singur caracter si numai unul.
Funciile UPPER(sir), LOWER(sir) convertesc irul astfel nct acesta s fie scris
cu majuscule respectiv minuscule.
Funciile utilizate pentru formatarea datei sunt TO_DATE(data,format),
TO_CHAR(data,format) unde formatul, inclus ntre , poate fi alctuit dintr-o combinaie
a urmtoarelor elemente separate de caracterul -:
.
Exemple:1.Expresia urmtoare este adevrat pentru prenumele care conin irul am
ncepnd cu a doua liter.
first_name LIKE _am%
2.Se selecteaz data angajrii n formatul yy-ll-aa
SELECT to_char(hire_date,'dd-mm-yy')
FROM employees
II Exerciii
1. a) Consultai diagrama exemplu HR (Human Resources) pentru lucrul n cadrul
laboratoarelor SQL.
b) Identificai cheile primare si cele externe ale tabelelor existente n schem, precum i
tipul relaiilor dintre aceste tabele.
2. S se iniieze o sesiune SQL*Plus folosind user ID-ul si parola indicate.
3. S se listeze structura tabelelor din schema HR (EMPLOYEES, DEPARTMENTS,
JOBS, JOB_HISTORY, LOCATIONS, COUNTRIES, REGIONS), observnd tipurile de
date ale coloanelor.
DESC[RIBE] employees
4. S se listeze coninutul tabelelor din schema considerat, afind valorile tuturor
cmpurilor.
FROM employees
WHERE salary NOT BETWEEN 7000 AND 17000;
14. S se afieze numele i datele de contact pentru angajatul cu prenumele Steven.
SELECT first_name,last_name,email,phone_number
FROM employees
WHERE first_name = Steven;
15. S se afieze numele,data angajrii i job-id pentru persoanele care au fost angajate n
perioada '07-JUN-1994' and '01-JAN-1997'. S se ordoneze dupa data angajrii
descresctor. Pentru salariaii angajai n aceeai zi ordonarea se va face alfabetic dupa
nume.
Indicaie: Implicit se ordoneaza ASC. Ordonarea descendent presupune utilizarea lui
DESC.
SELECT last_name, hire_date, job_id
FROM employees
WHERE hire_date BETWEEN '07-JUN-1994' AND '01-JAN-1997'
ORDER BY hire_date DESC, last_name;
16. S se obin n doua moduri salariaii care lucreaz n departamentele 10,20.
Indicaie: Se va folosi operatorul IN: expresie IN (valoare_1, valoare_2, ,
valoare_n). Pentru a obine a doua soluie se va folosi operatorul OR.
SELECT last_name || || first_name, department_id
FROM employees
WHERE department_id IN (10,20);
SELECT last_name || || first_name, department_id
FROM employees
WHERE department_id = 10 OR department_id = 20;
17. S se listeze numele i salariile angajatilor care cstig mai mult de 1500 $ i lucreaz
n departamentul 10 sau 30. Se vor eticheta coloanele drept Angajat si Salariu lunar.
Indicaie: Se vor folosi operatorii logigi AND, OR.
SELECT last_name || || first_name, department_id
FROM employees
WHERE salary > 1500 AND (department_id = 10 OR department_id = 30);
18. S se afieze numele i data angajrii pentru fiecare salariat care a fost angajat n
1987. Se cer 2 soluii: una n care se lucreaz cu formatul implicit al datei si alta prin care
se formateaz data.
SELECT first_name, last_name, hire_date
FROM employees
WHERE hire_date LIKE ('%87%');