Politehnica
Bucureti
Facultatea de
Automatic i
Calculatoare
Catedra de
Calculatoare
Laborator 4
Cereri SQL
Autori
Conf. Dr. Ing. Alexandru Boicea
As. Drd. Ing. Ciprian-Octavian Truic
Cuprins
Cereri SQL
Cereri simple
Cereri cu clauza WHERE
12.03.2016
Laborator 4
Cereri SQL
Cererile de interogare SQL folosesc n exculsivitate
comanda SELECT;
Aceast comand este utilizat, att pentru
interogarea obiectelor create de utilizator, ct i a
obiectelor de la nivelul sistemului de gestiune.
12.03.2016
Laborator 4
Cereri SQL
Sintaxa comenzii:
SELECT [DISTINCT | ALL] [schema.table.]expression [[as]
expression_alias]
FROM [schema.]table[@dblink] [table_alias]
[WHERE conditions]
[[START WITH conditions] CONNECT BY [NOCYCLE] conditions]]
[{UNION [ALL]|INTERSECT|MINUS} SELECT command]
[[GROUP BY expressions] [HAVING conditions]]
[ORDER BY expressions|positions [ASC|DESC]]
[FOR UPDATE OF schema.table.column [NOWAIT]]
12.03.2016
Laborator 4
Cereri SQL
DISTINCT returneaz numai o nregistrare n cazul n care
exist valori duplicate pe o coloana ;
ALL returneaz toate nregistrrile simple i duplicate;
schema.table reprezint numele complet de indentificare a
tabelei/view-ului (schema are acelai nume cu user-ul) ;
expression repezint numele unei coloane sau o expresie
care folosete funcii de sistem (sau stocate);
expression_alias este un nume alocat unei expresii care va fi
folosit n formatarea coloanei (apare n antetul listei);
dblink reprezint numele de identificare, complet sau
parial, al unei baze de date.
12.03.2016
Laborator 4
Cereri SQL
table_alias este un nume alocat unei tabele/view care va fi
folosit n cererile corelate;
WHERE conditions reprezint o condiie (nlnuire de
condiii) care trebuie s fie ndeplinit n criteriul de selecie a
nregistrrilor;
START WITH conditions stabilete criteriul de selecie
pentru prima nregistrare pentru o ordonare ierarhic;
CONNECT BY conditions stabilete o ierarhie de selecie a
nregistrrilor;
GROUP BY expressions stabilete criteriile de grupare a
nregistrrilor (numele coloanelor folosite n criteriul de
grupare).
12.03.2016
Laborator 4
Cereri SQL
HAVING conditions restricionarea nregistrrilor din grup la
anumite condiii;
UNION [ALL] |INTERSECT |MINUS combin rndurile
selectate de mai multe comenzi SELECT prin aplicarea
operatorilor reuniune / intersecie / diferen;
ORDER BY expressions|positions ordoneaz nregistrrile
selectate dup coloanele din expresie sau n ordinea
coloanelor specificate prin poziie;
FOR UPDATE OF face o blocare (lock) a nregistrrilor n
vederea modificrii anumitor coloane;
NOWAIT returneaz controlul userului dac comanda
ateapt eliberarea unei nregistrri blocate de un alt user.
12.03.2016
Laborator 4
Cereri SQL
Mai multe informaii
http://docs.oracle.com/cd/E16655_01/server.121/e17209/statements
_10002.htm#SQLRF01702
http://docs.oracle.com/cd/E16655_01/server.121/e17209/queries003.
htm#SQLRF52332
http://docs.oracle.com/cd/E16655_01/server.121/e17209/queries004.
htm#SQLRF52341
http://docs.oracle.com/cd/E16655_01/appdev.121/e18410/ch_seven.
htm#ZZPRE745
12.03.2016
Laborator 4
Cereri simple
Ex. 1. S se creeze o copie a tabelei DEPT care s se numeasc
departamente cu urmtoarele coloane:
id_dep number(2), den_dep varchar2(14), locatie
varchar2(13).
12.03.2016
Laborator 4
Cereri simple
Ex. 2. S se creeze o copie a tabelei EMP care s se numeasc
angajai folosind o cerere SELECT . Coloanele vor fi
redenumite.
12.03.2016
Laborator 4
10
Cereri simple
Ex. 4. S se selecteze ID-ul i numele departamentului din
tabela departamente.
12.03.2016
Laborator 4
11
Cereri simple
Observaie:
Operatorul de concatenare a irurilor de caractere este:
n Oracle ||
n Microsoft SQL Server +
n Oracle, MySQL, PostgreSQL i Microsoft SQL Server
exist funcia concat(diferite implementri) pentru
concatenarea irurilor de caractere (se va prezenta ca
funcie n laboratorul 6).
12.03.2016
Laborator 4
12
Cereri simple
Ex. 6. S se selecteze ID-ul, numele, funcia i venitul lunar
pentru toi angajatii din firm. S se adauge la lista o coloan
goal care s se numeasc semntura. Concatenai ID-ul cu
numele. Ordonai dup departament.
12.03.2016
Laborator 4
13
Cereri simple
Ex. 7. S se selecteze numele i funcia angajailor.
12.03.2016
Laborator 4
14
12.03.2016
Laborator 4
15
Operatori SQL
Operator
Semnificaie
Operator
Semnificaie
Egal
BETWEEN
val1 AND val2
>
IN (list)
>=
<
<=
12.03.2016
IS NULL
Laborator 4
16
Operatori SQL
Operator
Semnificaie
Operator
!=
Diferit de
(UNIX,
Windows)
^=
<>
Diferit de
toare OS
NOT LIKE
NOT
column_name
{=|>|>=|<|<=}
Neag
operatorul de
comparaie
IS NOT NULL
12.03.2016
Laborator 4
Semnificaie
17
12.03.2016
Laborator 4
18
Laborator 4
19
12.03.2016
Laborator 4
20
12.03.2016
Laborator 4
21
12.03.2016
Laborator 4
22
12.03.2016
Laborator 4
23
12.03.2016
Laborator 4
24
12.03.2016
Laborator 4
25
12.03.2016
Laborator 4
26
Semnificaie
_ (underline)
12.03.2016
Laborator 4
27
12.03.2016
Laborator 4
28
12.03.2016
Laborator 4
29
12.03.2016
Laborator 4
30
12.03.2016
Laborator 4
31
Exerciii
1. Selectai toi angajaii care s-au angajat nainte de anul 1982
i nu au primit comision.
2. Selectai toi angajaii care au salariul peste 3000 i nu au
efi, ordonai dup departament.
3. Selectai numele, funcia i venitul anual al angajailor care
nu au funcia MANAGER, pentru un departament introdus de
la tastatur.
4. Selectai departamentul, numele, data angajrii i salariul
tuturor persoanelor angajate n anul 1981, din dou
departamente care se introduc de la tastatur.
12.03.2016
Laborator 4
32