Sunteți pe pagina 1din 115

Oracle

CE ESTE ORACLE?
Oracle consta dintr-un set complet de constructori de aplicatii si produse pentru
utilizatori,cautand sa asigure solutii complete in tehnologia informatiei.
Aplicatiile Oracle sunt portabile peste un numar mare de statii de lucru si sisteme
de operare, de la calculatoare personale la procesoare paralele.
Oracle este inzestrat cu un flexibil Sistem de Management al Bazelor de
Date(DBMS-Ser!erul Oracle-pentru stocarea si managementul informatiei
utilizate de aplicatii.
"ltimul ser!er Oracle ,O#A$%& ''g,conduce o baza de date cu toate a!anta(ele
unei structuri relationale,a!and in plus capacitatea de a stoca si executa obiecte
de tip baza de date precum proceduri si mecanisme de siguranta.
Ser!erul Oracle cuprinde un DBMS care controleaza)
Stocarea de date in sfera bazelor de date dedicate
#ecuperarea de date pentru aplicatii utilizand tehnici de optimizare
adec!ate
Securitatea bazelor de date si a tas*urilor permise pentru anumiti utilizatori
$onsistenta si protectia datelor,incluzand arhi!area tas*urilor si
mecanisme de cautare
$omunicarea si integritatea informatiilor,cand bazele de date sunt
distribuite intr-o retea.
+entru a crea o baza de date in Oracle(,eb based - pe internet, accesati site-ul
http)..apex.oracle.com si creati un ,or*space, dati clic* pe Request a Free Workspace.
Dupa accesarea lin*-ul de mai sus urmati pasii pentru a crea un nou ,or*space.
$ompletati formularul cu /"M&%&, +#&/"M&%& si &MA0%"% D!s.
Apasati butonul NEXT.
/umele 1or*space-ul(&xemplu) Aplicatie2facultate, Baza2de2date
Apasati butonul NEXT.
/umele Schemei (&xemplu) aplicatie, aplicatie234'3
Apasati butonul NEXT.
De ce ati cerut crearea acestui ,or*space(&xemplu) "ni!ersit5 +ro(ect, 6o learn Oracle
Apasati butonul NEXT.
Dupa definirea ,or*space-ului !eti primi de la oracle un email cu un lin*, dand clic* pe acel lin*,
,or*space-ul !a fi creat in apex si !eti mai primi inca un email cu datele d!s de
login(1or*space, &mail si parola.
0ntroduceti datele de logare pentru a putea accesa Application &xpress.
(/umele 1or*space-ului, &mailul, +arola
+entru a putea crea tabele dati clic* pe SQL Workshop si din meniul de mai (os dati clic* pe
Object Browser.
0n partea dreapta a bro,serului exista un buton CREATE, dati clic* pe CREATE dupa alegeti
TABLE.
$rearea tabelei AUTOR)
0n tabela A"6O# !om a!ea urmatoarele coloane)
- nr2autor - tip de data /"MB&#
nume2autor - tip de data 7A#$8A#3 sau /7A#$8A#3
prenume2autor - tip de data 7A#$8A#3 sau /7A#$8A#3
email - tip de data 7A#$8A#3 sau /7A#$8A#3
Apasati butonul NEXT.
$rearea unui autonumber se face prin popularea coloanei nr2autor cu a(utorul unei noi
sec!ente.
+rimar5 9e5-ul tabelei A"6O# !a fi NRAUTOR.
Apasati butonul NEXT.
Apasati butonul NEXT.
+uteti !izualiza S:%-ul generat dand clic* pe SQL. +entru a crea tabela dati clic* pe Create
Tab!e.
Dupa crearea tabelei Oracle !a afisa continutul tabelei.
$rearea tabelei E"#TURA)
0n tabela &D06"#A !om a!ea urmatoarele coloane)
- nr2editura - tip de data /"MB&#
nume2editura - tip de data 7A#$8A#3 sau /7A#$8A#3
oras2ed - tip de data 7A#$8A#3 sau /7A#$8A#3
str2ed - tip de data 7A#$8A#3 sau /7A#$8A#3
nr2ed - tip de data /"MB&#
cod2postal2ed - tip de data /"MB&#
telefon - tip de data /"MB&#
pers2contact - tip de data 7A#$8A#3 sau /7A#$8A#3
+rimar5 *e5-ul tabelei !a fi NRE"#TURA.
Apasati butonul NEXT.
Apasati butonul NEXT.
Dupa crearea tabelei Oracle !a afisa continutul tabelei.
$rearea tabelei CL#ENT)
0n tabela $%0&/6 !om a!ea urmatoarele coloane)
- nr2client - tip de data /"MB&#
nume - tip de data 7A#$8A#3 sau /7A#$8A#3
prenume - tip de data 7A#$8A#3 sau /7A#$8A#3
oras - tip de data 7A#$8A#3 sau /7A#$8A#3
strada - tip de data 7A#$8A#3 sau /7A#$8A#3
numar - tip de data /"MB&#
telefon - tip de data /"MB&#
+rimar5 *e5-ul tabelei $%0&/6 !a fi NRCL#ENT.
Apasati butonul NEXT.
Apasati butonul NEXT.
Apasati butonul NEXT.
+uteti !izualiza S:%-ul generat dand clic* pe SQL. +entru a crea tabela dati clic* pe Create
Tab!e.
Dupa crearea tabelei Oracle !a afisa continutul tabelei.
$rearea tabelei CARTE)
0n tabela $A#6& !om a!ea urmatoarele coloane)
- nr2carte - tip de data /"MB&#
clasificare - tip de data 7A#$8A#3 sau /7A#$8A#3
titlu - tip de data 7A#$8A#3 sau /7A#$8A#3
editie - tip de data 7A#$8A#3 sau /7A#$8A#3
data2aparitiei - tip de data DA6&
pret - tip de data /"MB&#
gen - tip de data 7A#$8A#3 sau /7A#$8A#3
nr2editura - tip de data /"MB&#
+rimar5 *e5-ul tabelei $A#6& !a fi /#2$A#6&.
Adaugarea ;oreign *e5-ului catre tabela &D06"#A
Dupa alegerea coloanelor referentiale dati clic* pe A"".
;oreign *e5-ul a fost adaugat, apasati NEXT.
Apasati butonul NEXT.
+entru a crea tabela dati clic* pe Create Tab!e.
$rearea tabelei CO$AN"A)
0n tabela $OMA/DA !om a!ea urmatoarele coloane)
- nr2comanda - tip de data /"MB&#
nr2client - tip de data /"MB&#
data - tip de data DA6&
+rimar5 9e5-ul tabelei $OMA/DA !a fi NRCO$AN"A.
Adaugarea ;oreign 9e5-ului catre tabela CL#ENT.
Dati clic* pe sageata din dreptul REFERENCES TABLE
S&%&$6A60 6AB&%A CL#ENT.
Adaugati ;oreign 9e5-ul apasand butonul A"".
+entru a crea tabela dati clic* pe Create Tab!e.
$rearea tabelei "ETAL#UCO$AN"A)
0n tabela D&6A%0"2$OMA/DA !om a!ea urmatoarele coloane)
id2detaliu - tip de data /"MB&#
nr2comanda - tip de data /"MB&#
nr2carte - tip de data /"MB&#
nr2bucati - tip de data /"MB&#
;oreign 9e5-ul tabelei D&6A%0"2$OMA/DA !a fi #""ETAL#U
$reare ;oreign 9e5-ului catre tabela CO$AN"A
Adaugati ;oreign 9e5-ul apasand butonul A"".
$reare ;oreign 9e5-ului catre tabela CARTE
Adaugati ;oreign 9e5-ul apasand butonul A"".
Apasati butonul NEXT.
Apasati butonul NEXT.
+entru a crea tabela dati clic* pe Create Tab!e.
$rearea tabelei CARTEAUTOR)
0n tabela $A#6&2A"6O# !om a!ea urmatoarele coloane)
id2carte2autor - tip de data /"MB&#
nr2carte - tip de data /"MB&#
nr2autor - tip de data /"MB&#
+rimar5 9e5-ul tabelei $A#6&2A"6O# !a fi #"CARTEAUTOR.
$reare ;oreign 9e5-ului catre tabela CARTE
Adaugati ;oreign 9e5-ul apasand butonul A"".
$reare ;oreign 9e5-ului catre tabela AUTOR%
Adaugati ;oreign 9e5-ul apasand butonul A"".
Apasati butonul NEXT.
Apasati butonul NEXT.
+entru a crea tabela dati clic* pe Create Tab!e.
$rearea 70&1-urilor
$rearea !ie,-ului $arte pe Autor.
$a si la tabele selectati $reate, dupa dati clic* pe 7ie,
0ntroduceti un nume si selectati :uer5 Builder.
Selectati tabela Autor, ea !a fi adaugata in fereastra de :uer5 Builder
Dati clic* pe iconita din partea stanga a tabelului si selectati <=oin /#2A"6O# to
$A#6&2A"6O#./#2A"6O#>
Selectati) /#2A"6O#
/"M&2A"6O#
+#&/"M&2A"6O#
+entru a testa ?uer5-ul apasati butonul #"/.
+entru a !a reintoarce la meniu si pentru a adauga ?uer5-ul generat apasati butonul #&6"#/
Dupa apasarea butonului #&6"#/, !eti !edea :uer5-ul generat.
Apasati /&@6 pentru a crea !ie,-ul.
$rearea 70&1-ului $%0&/60 B#ASO7)
%a fel ca in pasii anteriori !eti selecta $#&A6& -A 7ie, dupa care !eti introduce un nume
pentru !ie,-ul pe care il !eti crea, in cazul nostru $%0&/60 B#ASO7 si !eti selecta :uer5
Builder.
7eti selecta tabela $lient, ea !a fi adaugata in fereastra :uer5 Builder-ului.
Selectati) /#2$%0&/6
/"M&
+#&/"M&
O#AS
Mai (os a!eti un submeniu cu optiunile $O/D060O/S, S:%, #&S"%6S, SA7&D S:%.
Selectati $O/D060O/S si in dreptul orasului puneti conditia BCBraso!C
Selectati #&6"#/ pentru a !a intoarce la meniul anterior
:uer5-ul generat !a fi afisat
Apasati /&@6 pentru a crea 7ie,-ului.
$rearea !ie,-ului $%0&/6 $" 7A%O#0)
Anterior, !-am aratat cum se poate folosi :uer5 Builder-ului pentru a putea obtine un !ie,.
+uteti sa obtineti acelasi rezultat si scriind un :uer5)
Selectati $#&A6& -A 7ie,
Scriind urmatorul :uer5 manual !eti obtine acelasi rezultat ca si cand ati lucra cu :uer5 Builder.
CREATE OR REPLACE FORCE VIEW "CLIENT_CU_VALORI" ("NUME", "PRENUME", "NR_COMANDA", "TITLU", "PRET", "VALOARE") AS
SELECT client.nue, client.!"enue, c#$n%$.n"_c#$n%$, c$"te.titlu, c$"te.!"et, n"_&uc$ti'!"et AS V$l#$"e
FROM (client INNER (OIN c#$n%$ ON client.n"_client)c#$n%$.n"_client) INNER (OIN (c$"te INNER (OIN %et$liu_c#$n%$ ON
c$"te.n"_c$"te)%et$liu_c#$n%$.n"_c$"te) ON c#$n%$.n"_c#$n%$)%et$liu_c#$n%$.n"_c#$n%$
Apasati /&@6 pentru a crea !ie,-ul.
$rearea Aplicatiei cu a(utorul A++%0$A60O/ B"0%D&#
+entru a incepe creerea aplicatiei dati clic* pe App!&cat&o' Bu&!(er si selectati "atabase
App!&cat&o's
Dati clic* pe buton CREATE care se afla in partea dreapta.
0ntroduceti numele bazei de date si apasati butonul NEXT
0n urmatoarele pagini urmati urmatorii pasi)
'. Selectati #aport si ;ormular (Report a'( For)
3. Selectati tabelul (Tab!e Na)e
D. Adaugati +agina (A(( *a+e
"rmati pasii acestia pentru adaugarea tuturor tabelelor
+entru a crea un formar cu subformular !om selecta Master Detail
Dupa adaugarea tuturor tabelelor apasati butonul NEXT
Apasati butonul NEXT
%a autentificarea scheme !a recomandam sa selectati No Authe't&cat&o' astfel aplicatia nu o sa
!a mai ceara username-ul si parola de fiecare data cand rulati aplicatia.
0n acest meniu !eti selecta cum doriti sa arate aplicatia d!s. Dupa selectare apasati butonul
NEXT
Apasati butonul Create App!&cat&o'
Dupa ce aplicatia a fost creata puteti !izualiza toate tabelele care au fost adaugate in pasii
anteriori.
+O+ %O7 (+opup %ist Of 7alues
Dati clic* pe numele $aster"eta&! care se afla sub tabela Carte%
Dati clic* de dreapta pe coloana NrE"#TURA si selectati E(&t
Selectati *opup L&st o, -a!ues
Dati clic* pe L&st O, .a!ues.
Selectati Create "/'a)&c L&st o, .a!ues
Dati clic* pe sa+eata din dreptul 6able or 7ie, si selectati tabelul E"#TURA.
Apasati butonul Ne0t
+entru "&sp!a/ Co!u)' selectati NU$EE"#TURA
+entru Retur' .a!ue selectati NrE"#TURA
Apasati Ne0t pentru a continua
:uer5-ul generat !a fi afisat, apasati F&'&sh
Apasati App!/ Cha'+es
Dati clic* pe numele $aster"eta&! care se afla sub tabela Co)a'(a%
Dati clic* de dreapta pe coloana NrC!&e't si selectati E(&t
Selectati *opup L&st o, -a!ues
Selectati Create "/'a)&c L&st o, .a!ues
Dati clic* pe sa+eata din dreptul 6able or 7ie, si selectati tabela $%0&/6
+entru "&sp!a/ Co!u)' selectati Nu)e
+entru Retur' .a!ue selectati NrC!&e't
Apasati Ne0t pentru a continua
:uer5-ul generat !a fi afisat, apasati F&'&sh
Apasati App!/ Cha'+es
0ntroducerea Datelor 0n 6abele
0n aplicatia create apasati #un pe oricare dintre pagini)
+entru introducerea datelor in tabela Autor apasati buton Create
Dupa introducerea datelor apasati butonu Create%
$ontinuati sa introduceti mai multe inregistrari.
+entru introducerea datelor in tabela E(&tura apasati buton Create
Dupa introducerea datelor apasati butonu Create%
$ontinuati sa introduceti mai multe inregistrari.
+entru introducerea datelor in tabela C!&e't apasati buton Create%
Dupa introducerea datelor apasati butonu Create%
$ontinuati sa introduceti mai multe inregistrari.
+entru introducerea datelor in tabela Carte apasati buton Create%
0n momentul care a(ungeti la coloana NrE(&tura din tabela Carte apasati iconita cu sageata si
selectati /umele editurii dorite dupa apasati buton Create%
$ontinuati sa introduceti mai multe inregistrari.
+entru introducerea datelor in tabela Co)a'(a apasati buton Create%
NrC!&e't din tabela Carte apasati iconita cu sageata si selectati numele clientului dorit, selectati
data si apasati buton Create%
#A+OA#6& S0 ;0%6#&
;iecare formular are incluse rapoarte si filtre, pentru accesare lor dati clic* pe ACT#ONS.
SELECT COLU$NS
Din acest meniu puteti selecta coloane care !or fi afisate in raport.
0n exemplul de mai (os coloanele care nu !or aparea in raport !or fi) /#2$lient, $od2+ostal.
Dupa apasam butonul A++%E.
Obser!am ca nu sunt afisate coloanele) /#2$lient, $od2+ostal.
F#LTER
Din acest meniu puteti filtra datele.
0n &xemplul de mai (os selectam toti clientii care locuiesc in orasul Braso! si apasam butonul
appl5.
Obser!am ca !or fi afisati numai clientii din orasul Braso!.
+entru a scoate filtru dam clic* pe iconita #emo!e ;ilter.
ROW *ER *A1E
7a arata inregistrarile pe pagina.
Daca doriti sa !edeti mai putine sau mai multe inregistrari pe pagini selectati un numar sau A%%
pentru toate.
For)at
De aici puteti Sorta, adauga conditii, Froup B5,Aggregate(Sum, A!g, etcG, puteti crea $hart-
uri.
F!ashback
De aici puteti sa !izualizati datele care au fost precedent modificate (&xempluG.in in urma cu H
minute.
Reset
De aici puteti sa stergeti datele din tabela (Sterge toate datele existente.
"OWNLOA"
De aici puteti sa do,nloadati datele in format $S7 sau 86M%.
+ot fi definite pagini din application builder special pentru rapoarte, !om descrie pasii pentru a
adauga !ie,-ul nostrum $%0&/60 $" 7A%O#0 pe prima pagina.
Dam clic* pe 8OM& in aplicatia existenta)
Dati clic* de dreapte pe 8OM& si selectati $#&A6&.
$reati o regiune pe aceasta pagina.
Selectati $8A#6.
Selectati cum doriti sa fie afisat chart-ul.
Selectati DD sau 3D.
Selectati titlul, in cazul nostru, $lienti cu 7alori.
+utem Selecta diferite animatii si culori de fundal.
Dati clic* pe Build :uer5)
Selectati !ie,-ul $lienti $u 7alori
+entru %abel, selectati /"M&, pentru 7alue Selectati 7A%OA#& si pentru functie selectati S"M
(Suma.
Apasati /ext.
:uer5-ul !a fi afisat, apasati ;0/0S8.
Apasati $reate #egion.
+e prima pagina !a aparea chart-ul nostrum $lienti cu 7alori.
ABORDAREA RELATIONALA
**************************************************
+ S, SNAME STATUS CIT- +
+************************************************+
+ S. SMIT/ 01 LONDON +
+ S0 (ONES .1 PARIS +
+ S2 3LA4E 21 PARIS +
**************************************************
PARTI
*********************************************************
+ P, PNAME COLOUR WEI5/T CIT- +
+*******************************************************+
+ P. NUT RED .0 LONDON +
+ P0 3OLT 5REEN .6 PARIS +
+ P2 SCREW 3LUE .6 ROME +
+ P7 SCREW RED .7 LONDON +
*********************************************************
8
c#l#$n$
Abordarea relationala
+rincipiile modelului relational au fost pentru prima data expuse de Dr. &.
;.$odd,care in iunie 'IJ4 a publicat un articol numit K"n model relational de
date pentru marile banci de dateK.0n acest articol Dr. $odd a propus modelul
KrelationalK pentru sistemele de baze de date.
Baza de date relationala este perceputa de utilizatorii sai ca o colectie de tabele
bidimensionale care sunt usor de inteles.Sunt doar patru concepte de inteles:
tabele
coloane
randuri
campuri
Modelul relational imita procesele unei ramuri a algebrei cunoscuts sub
numele de KAlgebra relationalaK. Aceste procese implica)
o colectie de obiecte cunoscute sub numele de #&%A600
o multime de operatori ce actioneza asupra relatiilor pentru a produce
noi relatii.
O #elatie poate fi inteleasa ca o 6abela.Modificarea datelor este reali- zata
prin operatiile relationale aplicate asupre tabelelor.
*******************************************
RESTRICTIE + +
+ +
+ +
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+
+ +
+ +
+ +
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+
+ +
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+
+ +
+ +
*******************************************
PROIECTIE *******************************************
+ ,,, ,,,,,,,, +
+ ,,, ,,,,,,,, +
+ ,,, ,,,,,,,, +
+ ,,, ,,,,,,,, +
+ ,,, ,,,,,,,, +
+ ,,, ,,,,,,,, +
+ ,,, ,,,,,,,, +
+ ,,, ,,,,,,,, +
+ ,,, ,,,,,,,, +
+ ,,, ,,,,,,,, +
+ ,,, ,,,,,,,, +
+ ,,, ,,,,,,,, +
*******************************************
Operatori relationali
Operatorii relationali sunt definiti mai (os)
Relatia Descrierea
#estrictia
este o operatie care preia si afiseaza datele din relatie.&ste posibil sa
se afiseze toate randurile sau doar randurile care indeplinesc o conditie
sau mai multe conditii .Aceasta este de multe ori numita Ksubmultime
orizontalaK
+roiectia
este operatia care afiseaza anumite coloane din relatie si de aceea este
numita Ksubmultime !erticalaK.
+rodus
este rezultatul obtinut cand randurile a doua multimi de date sunt
concatenate conform conditiilor specificate.
=oin
este rezultatul obtinut cand randurile a doua multimi de date sunt
concatenate conform conditiilor specificate.
#euniunea
afiseaza toate randurile care apar in una ,in cealalta sau in ambele din
cele doua relatii.
0ntersectia
afiseaza toate randurile care apar in ambele din cele doua relatii.
Diferenta
afiseaza randurile care apar numai intr-o singura relatie (S:% utilizeaza
operatorul minus .
PRODUS
*********** ********** *******************
+ SMIT/ + + CLER4 + + SMIT/ + CLER4 +
+ (ONES + !"#%u9 + MANA5ER+******:+ SMIT/ + MANA5ER +
+ ADAMS + ********** + + +
*********** + (ONES + CLER4 +
+ (ONES + MANA5ER +
+ + +
+ ADAMS + CLER4 +
+ ADAMS + MANA5ER +
*******************
(OIN
*************** ******************* *******************************
+ CLAR4 + .1 + + .1 + ACCOUNTIN5 + + CLAR4 + .1 + .1 + ACCOUNTIN5+
+ MILLER + .1 + ( + 01 + RESEARC/ + + MILLER+ .1 + .1 + ACCOUNTIN5+
+ SMIT/ + 01 +**:+ 21 + SALE/ + + SMIT/ + 01 + 01 + RESEARC/ +
+ TURNER + 21 + + 71 + OPERATION/S+ + TURNER+ 21 + 21 + SALES +
*************** ******************* *******************************
Proprietati ale bazelor de date relationale
O baza de date relationala apare ca o colectie de relatii(tabele catre
utilizator.
;ormatul coloanei.randului este familiar si usor pentru !izualizarea
datelor .
&xista o multime de operatori pentru partitionarea si combinarea
relatiilor(selectia,proiectia,produsul,(oinul,uniunea, intersectia,
diferenta.
/u sunt pointeri explicitiLconexiunile sunt facute numai pe baza datelor.
%imba(ul utilizat pentru interogarea bazei de date este non-procedural si
similar limbii engleze.
"tilizatorul nu specifica calea de acces si nu are ne!oie sa stie cum
este informatia aran(ata fizic.
$omenzile pentru refacerea datelor si acelea pentru realizarea
schimbarilor in baza de date sunt incluse intr-un singur limba( S:%.
&xista o independenta totala a datelor.
Proprietatile relatiilor tabelare
O singura tabela are urmatoarele proprietati)
/u exista randuri duplicate
/u exista nume de coloana duplicate
Ordinea randurilor este neimportanta
Ordinea coloanalor este neimportanta
7alorile sunt atomice(nedecompozabile.
INTRODUCERE IN SQL
Acest capitol realizeaza o introducere in limbajul de interogare utilizat pentru a accesa
o baza de date Oracle. Multimea comenzilor SQL sunt conturate ca blocuri de
interogare de baza.In particular noi discutam declaratiile SQL !olosite la:
executia calculelor
specificarea alternati!a a capetelor de coloana
concatenarea coloanelor
sortarea rindurilor
introducerea criteriilor de cautare.
Privire de ansamblu asupra SQL
"n sistem de management al bazei de date necesita un limba( de interogare
pentru a permite utilizatorului sa acceseze datele.S:% (limba( de interogare
structurata este limba(ul utilizat de ma(oritatea sistemelor de baza de date
relational.
Limbajul SQL a !ost dez"oltat intr#un prototip de sistem de management a bazelor de
date relationale # S$stem R #de IBM la mijlocul anilor %&'(.In %&'& )orporatia
Oracle introduce prima implementare a SQL in "arianta comerciala.
Trasaturi caracteristice SQL
S:% este prezentat in limba engleza. ;oloseste cu!intele select,
insert,delete ca parti ale setului de comenzi.
S:% este un limba( neprocedural )specifica ce informatii doresti,nu cum
sa le obtii.$u alte cu!inte S:% nu iti cere sa specifici metoda de acces
la date.6oate cererile S:% folosesc optimizarea cererilor- o parte a
#DBMS- pentru a determina rapid remedierea datelor specifi-
cate.Aceste trasaturi usureaza obtinerea rezultatelor dorite.
+rocesarea S:% asupra inregistrarilor nu se poate face decit asupra
unei singure inregistrari la un moment dat.$ea mai comuna forma a
unui set de inregistrari este un tabel.
S:% poate fi folosit de un sir de utilizatori incluzand DBA, programatori
de aplicatii ,personal de management si multe alte tipuri de utilizatori.
S:% pune la dispozitie comenzi pentru o !arietate de tascuri incluzand)
# date interogate
# inserarea,extragerea si stergerea rindurilor intr-un tabel.
# crearea,modificarea si stergerea obiectelor de tip baza de date
# controlul accesului la baza de date si la obiectele de tip baza de
date.
# garantarea consistentei bazei de date
%a inceput sistemele de management a bazei de date a utilizat un limba(
separat pentru fiecare categorie in parte.S:% le-a unificat pe toate acestea
intr-un singur limba(.
SQL a de"enit un limbaj standard industrial pentru bazele de date relatio# nale .
Institutul *ational American de Standarde+A*SI, a adoptat SQL ca limbaj standard
pentru RDBMS in anul %&-..Organizatia Internationala de Standarde +ISO, a adoptat
deasemenea SQL ca limbaj standard pentru RDBMS./oate RDBMS#urile suporta
unele !orme de SQL si toti "inzatorii de RDBMS intentioneaza sa se alinieze la
standardele A*SI.
Setul de comenzi SQL
)omanda 0 Descriere:
S&%&$6
este comanda cea mai utilizata L este folosita pentru obtinerea datelor
din bazele de date
0/S&#6
aceste trei comenzi sunt utilizate pentru a introduce noi
"+DA6&
rinduri,pentru a schimba rindurile existente si stergerea
D&%&6&
rindurilor nedorite din tabelele bazelor de date respecti!e. (&le sunt
cunoscute in ansamblu ca DM% sau comenzi ale limba(ului de
manipulare a datelor.
$#&A6&
aceste trei comenzi sunt utilizate dinamic pentru a crea ,
A%6&#
utiliza si sterge orice structura de date,de exemplu,tabele,
D#O+
expuneri ,indecsi.(&le sunt cunoscute sub numele colecti! DD% sau
comenzi ale limba(elor de definire a datelor.
F#A/6
aceste doua comenzi sunt utilizate pentru a da sau a lua
#&7O9&
drepturile de acces pentru bazele de date si structurile din Oracle.
/.B. Acestea sunt o parte a comenzilor S:%. +entru o lista mai completa de
comenzi se recomanda - Manualul de #eferinta a %imba(ului S:%- .
Scrierea comenzilor SQL
$and scriem comenzi S:% ,este important sa ne reamintim cate!a reguli
simple pentru construirea unor declaratii !alide care sunt si usor de citit si de
editat)
$omenzile S:% pot fi pe una sau mai multe linii.
$lauzele sunt uzual plasate pe linii separate.
6abelarea poate fi folosita.
$u!intele de comanda nu pot fi separate pe mai multe linii.
$omenzile S:% nu sunt Kcase sensiti!eK.
O comanda S:% este introdusa la promptul S:% si liniile
subsec!entelor sunt numarate.
O singura declaratie poate fi considerata curenta cat timp ea este in
buffer si poate fi rulata intr-un numar de moduri )
# plasand un punct si !irgula(L la sfarsitul ultimei clauze.
# plasand un punct si !irgula .slash la ultima linie in buffer.
# plasand un slash(. la promptul S:%.
# scriind un #M"/N (comanda S:% la promptul S:%.

Fiec$"e %in u"$t#$"ele %ecl$"$tii 9unt ;$li%e<
SELECT ' FROM EMP=
SELECT
'
FROM
EMP
=
SELECT '
FROM EMP=
In $ce9t $nu$l c#en>ile S?L 9unt 9!$"te in cl$u>e !ent"u cl$"it$te.

Blocul de interogare de baza
Declaratia S1L1)/ regaseste in!ormatia din baza de date implementand toti
operatorii din algebra relationala .
In cele mai simple !orme trebuie sa contina:
'. O clauza S&%&$6 ,care listeaza coloanele pentru afisare astfel incat
este esentiala o +roiectie.
3. O clauza ;#OM care specifica tabela implicata.

Pent"u $ li9t$ t#$te nue"ele %e!$"t$entel#",nuele $n@$A$til#" 9i
nu$"ul $n$@e"il#" in t$&el$ EMP int"#%uceti u"$t#$"ele<
SELECT DEPTNO,ENAME,M5R
FROM EMP=
DEPTNO ENAME M5R
****** ********** *****
01 SMIT/ 6B10
21 ALLEN 6CBD
21 WARD 6CBD
01 (ONES 6D2B
21 MARTIN 6CBD
21 3LA4E 6D2B
.1 CLAR4 6D2B
01 SCOTT 6ECC
.1 4IN5
21 TURNER 6CBD
01 ADAMS 66DD
21 (AMES 6CBD
01 FORD 6ECC
.1 MILLER 66D0

De remarcat ca numele coloanelor sunt separate prin spatiu.

E9te !#9i&il 9$ 9elect$ t#$te c#l#$nele %in t$&el$ !"in 9!eciFic$"e$
unui $9te"iG (H'H) %u!$ cu;$ntul SELECT .
SELECT '
FROM EMP=
EMPNO ENAME (O3 M5R /IREDATE SAL COMM DEPTNO
***** ******* ******* **** ********* ********* ******* ******
62CB SMIT/ CLER4 6B10 .2*(UL*D2 D11.11 01
67BB ALLEN SALESMAN 6CBD .E*AU5*D2 .,C11.11 211.11 21
6E0. WARD SALESMAN 6CBD 0C*MAR*D7 .,0E1.11 E11.11 21
6ECC (ONES MANA5ER 6D2B 2.*OCT*D2 0,B6E.11 01
6CE7 MARTIN SALESMAN 6CBD 1E*DEC*D2 .,0E1.11 ..711.11 21
6CBD 3LA4E MANA5ER 6D2B ..*(UN*D7 0,DE1.11 21
66D0 CLAR4 MANA5ER 6D2B .7*MA-*D7 0,7E1.11 .1
66DD SCOTT ANAL-ST 6ECC 1E*MAR*D7 2,111.11 01
6D2B 4IN5 PRESIDENT 1B*(UL*D7 E,111.11 .1
6D77 TURNER SALESMAN 6CBD 17*(UN*D7 .,E11.11 .11 21
6D6C ADAMS CLER4 66DD 17*(UN*D7 .,.11.11 01
6B11 (AMES CLER4 6CBD 02*(UL*D7 BE1.11 21
6B10 FORD ANAL-ST 6ECC 1E*DEC*D2 2,111.11 01

Alte elemente in clauza SELECT
&ste posibil sa se includa si alte elemente in clauza S&%&$6.
&xpresii aritmetice
Alias-uri de coloane
$oloane concatenate
%iterali
6oate aceste optiuni a(uta utilizatorul sa ceara date si sa le manipuleze in
functie de scopurile interogarii L de exemplu,executia calculelor,legarea
coloanelor impreuna,sau afisarea sirurilor de litere din text.
Expresii aritmetice
O expresie este o combinatie de una sau mai multe !alori,operatori si functii
care sa e!alueaza la o !aloare.
12presiile aritmetice pot contine nume de coloane "alori numerice constante si
operatori aritmetici:
O!e"$t#"i De9c"ie"e
********* *********
I $%un$"e
* 9c$%e"e
' inulti"e
J i!$"ti"e
SELECT ENAME, SAL'.0, COMM
FROM EMP=
Daca e2presia aritmetica contine mai mult decat un operator prioritatile sunt 34la
inceputapoi 0# +de la stanga la dreapta pentru operatorii de aceeasi prioritate,.
In urmatorul e2empluinmultirea +56(3%5, este e"aluata prima7apoi "aloarea salariului
este adunata la rezultatul multiplicarii+8(((,. Ast!el pentru randul lui SMI/9 a"em :
-((08(((:8-((.

SELECT ENAME,SAL I 0E1 ' .0
FROM EMP=

;arantezele pot !i utilizate p<ntru speci!icarea ordinii de e2ecutie a operatorilor
dacade e2emplu adunarea e dorita inainte de inmultire:

SELECT ENAME,(SAL I 0E1) ' .0
FROM EMP=

Aliasuri de coloana
$and se afiseaza rezultatul unei interogari,S:%O+lus in mod normal utilizeaza
numele coloanelor selectate ca titlu.0n multe cazuri acest nume poate fi criptic
sau fara inteles.
;uteti sc=imba un titlu de coloana utilizand un >ALIAS>.
?n alias de coloana da unei coloane un nume de titlu alternati" la iesire.
Speci!icati aliasul dupa coloana in lista selectata.;rin de!ault titlurile alias "or !i
!ortate la litere mari si nu pot contine blan@urinumai daca aliasul este inclus intre
g=ilimele+A A,.
;entru a a!isa titlul de coloana A**SAL pentru salariul anual insemnand
SAL3%5utilizati un alias de coloana:

SELECT ENAME,SAL'.0 ANNSAL,COMM
FROM EMP=

Odata de!init un alias poate !i utilizat de comenzile SQL care sunt tratate in capitolele
%( si %%.
Nota:
Intr-o declaratie SQL ,un alis de coloana poate fi utilizat numai in clauza
SELECT.
Operatorul de concatenare
Operatorul de concatenare (PP permite coloanelor sa fie legate cu alte
coloane,expresiilor aritmetice sau !alorilor constante sa creeze o expresie de
caractere.
)oloanele din cealalta parte a operatorului sunt combinate pentru a obtine o singura
coloana.
;entru a combina 1M;*O si 1*AM1 si sa se dea aliasul 1M;LOB11 e2presiei
introduceti:

SELECT EMPNO++ENAME EMPLO-EE
FROM EMP=
EMPLO-EE
*******************************************************
62CBSMIT/
67BBALLEN
6E0.WARD
6ECC(ONES
6CE7MARTIN
6CBD3LA4E
66D0CLAR4
66DDSCOTT
6D2B4IN5
6D77TURNER
6D6CADAMS
6B11(AMES
6B10FORD
6B27MILLER

Literali
"n literal este orice caracter ,expresie ,numar inclus in lista lui S&%&$6 care
nu este un nume de coloana sau un alias de coloana.
?n literal in lista lui S1L1)/ este reprezentat de !iecare rand returnat la iesire.Sirurile
de literali dintr#un te2t cu un !ormat oarecare pot !i incluse in rezultatul interogarii si
sunt tratate ca o coloana lista selectata.
Literalii de tip data calendaristica si caracter pot !i inc=isi intre g=ilimele
simple+>,7literlalii de tip numar nu au ne"oie de g=ilimele simple+>,.
?rmatoarea declaratie contine literali selectati prin concatenare si printr#un alias de
coloana:

SELECT EMPNO++H*H++ENAME EMPLO-EE,
HWOR4S IN DEPARTMENTH,
DEPTNO
FROM EMP=
EMPLO-EE HWOR4S IN DEPARTMENTH DEPTNO
****************** ******************** ******
62CB*SMIT/ WOR4S IN DEPARTMENT 01
67BB*ALLEN WOR4S IN DEPARTMENT 21
6E0.*WARD WOR4S IN DEPARTMENT 21
6ECC*(ONES WOR4S IN DEPARTMENT 01
6CE7*MARTIN WOR4S IN DEPARTMENT 21
6CBD*3LA4E WOR4S IN DEPARTMENT 21
66D0*CLAR4 WOR4S IN DEPARTMENT .1
66DD*SCOTT WOR4S IN DEPARTMENT 01
6D2B*4IN5 WOR4S IN DEPARTMENT .1
6D77*TURNER WOR4S IN DEPARTMENT 21
6D6C*ADAMS WOR4S IN DEPARTMENT 01
6B11*(AMES WOR4S IN DEPARTMENT 21
6B10*FORD WOR4S IN DEPARTMENT 01
6B27*MILLER WOR4S IN DEPARTMENT .1

Tratarea valorilor nule
Daca unui rand ii lipseste o !aloare pentru o anumita coloana ,despre acea
!aloare se spune ca este nula.
O "aloare nula este o "aloare care este sau incorectasau necunoscutasau
inaplicabila.O "aloare nula nu este la !el ca >zero>.Cero este un numar.Daloarea nula
ocupa un octet in reprezentarea interna.
Daloarea nula este tratata corect de catre SQL.
Daca orice "aloare de coloana intr#o e2presie este nula atunci rezultatul este nul.In
urmatoarea declaratie numai Salesman are un rezultat al salariului:

SELECT ENAME,SAL'.0 I COMM ANNUAL_SAL
FROM EMP=
ENAME ANNUAL_SAL
********* **********
SMIT/
ALLEN .BE11
WARD .EE11
(ONES
MARTIN .C711
3LA4E
CLAR4
SCOTT
4IN5
TURNER .D111
ADAMS
(AMES
FORD
MILLER

Daca dorim sa obtinem un rezultat pentru toti angajatiieste necesar sa con"ertim
"aloarea nula la un numar . *oi !olosim !unctia *DL pentru a con"erti o "aloare nula
la o "aloare nenula.
Eolositi !unctia *DL pentru a con"erti "aloarea nula de la declaratia precedenta la (.

SELECT ENAME, SAL'.0INVL(COMM,1) ANNUAL_SAL
FROM EMP=
ENAME ANNUAL_SAL
********* **********
SMIT/ BC11
ALLEN .BE11
WARD .EE11
(ONES 2E611
MARTIN .C711
3LA4E 27011
CLAR4 0B711
SCOTT 2C111
4IN5 C1111
TURNER .D111
ADAMS .2011
(AMES ..711
FORD 2C111
MILLER .EC11

*DL asteapta doua argumente:
'. o expresie
3. o !aloare nenula
De notat ca puteti folosi functia /7% pentru a con!erti un numar nul , data
calendaristica sau sir de caractere la un alt numar , data calendaristica sau sir
de caractere de acceasi lungime si de acelasi tip de date asteptate.

NVL(DATECOLUMN,H1.*(AN*DDH)
NVL(NUM3ERCOLUMN,B)
NVL(C/ARCOLUMN,HSTRIN5H)

Prevenirea selectiei rindurilor duplicate
Daca nu se indica altfel, S:%O+lus afiseaza rezultatul unei interogari fara
eliminarea intrarilor duplicate .
;entru a lista toate numerele de departament din tabela 1M; introduceti:

SELECT DEPTNO
FROM EMP=
DEPTNO
******
01
21
21
01
21
21
.1
01
.1
21
01
21
01
.1

Clauza DST!CT
+entru eliminarea !alorilor duplicate din rezultat, includeti restrictia D0S60/$6
in comanda S&%&$6.
;entru a elimina "alorile duplicate a!isate in e2emplul urmator introduceti:

SELECT DISTINCT DEPTNO
FROM EMP=
DEPTNO
******
.1
01
21

)oloane multiple pot !i speci!icate dupa restrictia DIS/I*)/ si restrictia DIS/I*)t
a!ecteaza toate coloanele selectate.
;entru a a!isa "alorile distincte ale lui D1;/*O si FOBintroduceti:

SELECT DISTINCT DEPTNO,(O3
FROM EMP=
DEPTNO (O3
****** *********
.1 CLER4
.1 MANA5ER
.1 PRESIDENT
01 ANAL-ST
01 CLER4
01 MANA5ER
21 CLER4
21 MANA5ER
21 SALESMAN

Aceasta a!iseaza o lista a tuturor combinatiilor di!erite de ocupatie si numere de
departamente.
De notat ca restrictia DIS/I*)/ poate sa !ie re!erita numai o singura data si trebuie
sa urmeze imediat dupa cu"antul de comanda S1L1)/.
Clauza O"DE" B#
0n mod normal ordinea rindurilor intoarse in rezultatul unei cereri este
nedefinita .$lauza O#D&# BE poate fi utilizata pentru a sorta rindurile.
Daca o !olosim clauza ORD1B BB trebuie sa !ie intotdeauna ultima in declaratia
S1L1)/.
;entru a sorta dupa 1*AM1 introduceti:

SELECT ENAME,(O3,SAL'.0,DEPTNO
FROM EMP
ORDER 3- ENAME=
ENAME (O3 SAL'.0 DEPTNO
********* ******* ******** ******
ADAMS CLER4 .2011 01
ALLEN SALESMAN .B011 21
3LA4E MANA5ER 27011 21
CLAR4 MANA5ER 0B711 .1
FORD ANAL-ST 2C111 01
(AMES CLER4 ..711 21
(ONES MANA5ER 2E611 01
4IN5 PRESIDENT C1111 .1
MARTIN SALESMAN .E111 21
MILLER CLER4 .EC11 .1
SCOTT ANAL-ST 2C111 01
SMIT/ CLER4 BC11 01
TURNER SALESMAN .D111 21
WARD SALESMAN .E111 21

Ordonarea de default a datelor
Ordinea sortarii de default este ascendenta)
7alorile numerice cele mai mici primele
7alorile de tip date calendaristice cele mai mici primele.
7alorile de tip caracter in ordinea alfabetica.
Inversarea ordinii de default
+entru a in!ersa aceasta ordine cu!intul de comanda D&S$ este specificat
dupa numele coloanei in clauza O#D&# BE.
;entru a in"ersa ordinea coloanei 9IR1DA/1 deci datele cele mai tirzii sa !ie a!isate
primeleintroduceti:

SELECT ENAME,(O3,/IREDATE
FROM EMP
ORDER 3- /IREDATE DESC=
ENAME (O3 /IREDATE
********* ********* *********
(AMES CLER4 02*(UL*D7
4IN5 PRESIDENT 1B*(UL*D7
3LA4E MANA5ER ..*(UN*D7
TURNER SALESMAN 17*(UN*D7
ADAMS CLER4 17*(UN*D7
CLAR4 MANA5ER .7*MA-*D7
WARD SALESMAN 0C*MAR*D7
SCOTT ANAL-ST 1E*MAR*D7
MARTIN SALESMAN 1E*DEC*D2
FORD ANAL-ST 1E*DEC*D2
MILLER CLER4 0.*NOV*D2
(ONES MANA5ER 2.*OCT*D2
ALLEN SALESMAN .E*AU5*D2
SMIT/ CLER4 .2*(UN*D2

Ordonarea dua mai multe coloane
&ste posibil sa se ordoneze dupa mai multe coloane.%imita este numarul de
coloane din tabela.0n clauza O#D&# BE se specifica coloanele pentru
ordonat separate prin !irgula.Daca una sau toate coloanele trebuie sa fie
in!ersate specificati D&S$ dupa fiecare coloana.
;entru a ordona dupa doua coloane si a!isa in ordinea in"ersa a salariului introduceti:

SELECT DEPTNO,(O3,ENAME
FROM EMP
ORDER 3- DEPTNO,SAL DESC=
DEPTNO (O3 ENAME
****** ************ *******
.1 PRESIDENT 4IN5
.1 MANA5ER CLAR4
.1 CLER4 MILLER
01 ANAL-ST SCOTT
01 ANAL-ST FORD
01 MANA5ER (ONES
01 CLER4 ADAMS
01 CLER4 SMIT/
21 MANA5ER 3LA4E
21 SALESMAN ALLEN
21 SALESMAN TURNER
21 SALESMAN WARD
21 SALESMAN MARTIN
21 CLER4 (AMES

;entru a ordona dupa o coloana nu este necesar sa o a"em S1L1)/#ata.
ORDER B! si valorile nule
0n OracleJ,!alorile nule sunt afisate ultimele pentru sec!entele ascendente si
sint raportate primele cind rindurile sunt sortate in ordine descendenta.
Atentie:
)lauza ORD1R BB este utilizata intr#o interogare cind se doreste sa se a!iseze
rindurile intr#o ordine speci!ica .Eara clauza ORD1R BB randurile sunt returnate intr#
o ordine con"enita de ORA)L1 si "a trebui sa ne bazam pe el# ordinea determinata
!iind consistenta de la cerere la cerere.De notat ca ordinea de a!isare a rindurilor nu
in!luenteaza ordinea interna a rindurilor asa cum sunt stocate in tabela.
Clauza $%E"E
$lauza 18&#& corespunde operatorului K#estrictieK din algebra relationala.
)ontine o conditie pe care rindurile trebuie sa o indeplineasca in ordinea a!isarii lor.
)lauza G91R1 daca este !olosita trebuie sa urmeze clauzei EROM :

SELECT c#l#$ne
FROM t$&el$
W/ERE $nuite c#n%itii 9unt intilnite

$lauza 18&#& poate compara !alori in coloana ,!alori literale,expresii
aritmetice sau functii.
)lauza G91R1 asteapta trei elemente:
'. "n nume de coloana
3. "n operator de comparatie
D. "n nume de coloana, constanta sau lista de !alori.
Operatorii de comparatie sunt utilizati in clauza G91R1 si pot !i impartiti in doua
categorii: logici si SQL.
Operatorii logici
Acesti operatori "eri!ica urmatoarele conditii:
O!e"$t#" SeniFic$tie
******** ************
) e@$l cu
: $i $"e %ecit
:) $i $"e 9$u e@$l
K $i ic %ecit
K) $i ic 9$u e@$l
Sirurile de caractere si datele calendaristice in clauza "#ERE
$oloanele din O#A$%& pot a!ea urmatoarele tipuri)caracter,numar sau data
calendaristica.
Sirurile de caractere si datele calendaristice din clauza G91R1 trebuie sa !ie inc=ise
in g=ilimele simple+>,. Sirurile de caractere trebuie sa se supra# puna cu "aloarea
coloanei daca nu trebuie modi!icate de o !unctie. ?tilizati AEunctii pe )aractereA din
capitolul H.
;entru a a!isa numelenumereleocupatia si departamentele tuturor !unctionarilor
introduceti:

SELECT ENAME, EMPNO, (O3, DEPTNO
FROM EMP
W/ERE (O3 ) HCLER4H=
ENAME EMPNO (O3 DEPTNO
********* ***** ******* ******
SMIT/ 62CB CLER4 01
ADAMS 6D6C CLER4 01
(AMES 6B11 CLER4 21
MILLER 6B27 CLER4 .1

;entru a gasi toate numele de departamente cu numerele de departament mai mare ca
5( introduceti:

SELECT DNAME, DEPTNO
FROM DEPT
W/ERE DEPTNO :01=
DNAME DEPTNO
********** ******
SALES 21
OPERATIONS 71
Comararea unei coloane cu alta in cadrul aceluiasi rand
+uteti compara o coloana cu o alta coloana in acelasi rand,la fel ca si cu o
!aloare constanta.
De e2emplu presupunem ca dorim sa obtinem acei angajati al caror comision est< mai
mare decat salariul lor:

SELECT ENAME, SAL, COMM
FROM EMP
W/ERE COMM: SAL=
ENAME SAL COMM
****** ******** ********
MARTIN .,0E1.11 .,711.11

Operatori SQL
Sint patru operatori S:% care opereaza pe toate tipuril de date)
O!e"$t#"i S?L
O!e"$t#" SeniFic$tie
******** ************
3ETWEEN..AND... int"e %#u$ ;$l#"i(inclu9i;)
IN(li9t) c#!$"$ cu # li9t$ %e ;$l#"i
LI4E c#!$"$ cu un #%el %e ti! c$"$cte"
IS NULL e9tL # ;$l#$"e nul$
Operatorul BET$EE!
#ealizeaza teste pentru !alori intre,si inclusi!,o !aloare minima si o !aloare
maxima.
;resupunind ca dorim sa "edem angajatii ai caror salariu este intre %((( si 5(((:

SELECT ENAME,SAL
FROM EMP
W/ERE SAL 3ETWEEN .111 AND 0111=
ENAME SAL
******* **********
ALLEN .,C11.11
WARD .,0E1.11
MARTIN .,0E1.11
TURNER .,E11.11
ADAMS .,.11.11
MILLER .,211.11

De notat ca "alorile speci!icate sunt inclusi"e si ca limita minima trebuie speci!icata
prima.
Operatorul !
6esteaza !alorile dintr-o lista specificata.
;resupunem ca dorim sa gasim angajatii care au unul din cele trei numere de
marca+MIR,:

SELECT EMPNO, ENAME, SAL, M5R
FROM EMP
W/ERE M5R IN (6B10,6ECC,66DD)=
EMPNO ENAME SAL M5R
***** ***** ********* *****
62CB SMIT/ D11.11 6B10
66DD SCOTT 2,111.11 6ECC
6D6C ADAMS .,.11.11 66DD
6B10 FORD 2,111.11 6ECC

Daca, caracterele sau datele calendaristice sunt utilizate,ele trebuie introduse
intre ghilimele(K K.
Operatorul L&E
"neori nu se cunosc !alorile exacte pe care le cautam."tilizand operatorul
%09& este posibil sa selectam randurile care se potri!esc cu un model
specificat de caractere.Operatia de petter-matching a caracterelor poate fi
asemanata cu o cautare K,ild-cardK.Doi simboli se pot utiliza la construirea
sirului de cautare.
Si&#l Re!"e>ent$"e
****** ************
M #"ice 9ec;ent$ %e >e"# 9$u $i ulte c$"$cte"e
* un 9in@u" c$"$cte" #$"ec$"e
+entru a lista toti anga(atii al caror nume incepe cu un S,introduceti)

SELECT ENAME
FROM EMP
W/ERE ENAME LI4E HSMH=
ENAME
********
SMIT/
SCOTT
$aracterul K2K poate fi utilizat pentru cautarea unui anumit numar de carac-
tere.
De e2emplu pentru a lista toti angajatii care au un nume e2act de patru caractere
lungime:

SELECT ENAME
FROM EMP
W/ERE ENAME LI4E H____H=
ENAME
*****
WARD
4IN5
FORD
Semnele KQK si K2Kpot fi utilizate in orice combinatie de caractere.
Operatorul S !'LL
Operatorul 0S /"%% face teste specifice pentru !alorile care sunt /"%%.

SELECT ENAME,M5R
FROM EMP
W/ERE M5R IS NULL=
ENAME M5R
****** ****
4IN5
Ne$area e%resiilor
U"$t#"ii #!e"$t#"i F$c te9te %e ne@$tie<
O!e"$t#" De9c"ie"e
********* **********
N) %iFe"it %e(VAO,UNIO,PC)
8) %iFe"it %e(I3M)
K: %iFe"it %e(t#$te #J9)
NOT NUMECOL) %iFe"it %e
NOT NUMECOL: $i ic 9$u e@$l
O!e"$t#"i S?L
O!e"$t#" De9c"ie"e
******** *********
NOT 3ETWEEN nu 9e $Fl$ int"e %#u$ ;$l#"i %$te
NOT IN nu 9e $Fl$ int"*# li9t$ %$t$ %e ;$l#"i
NOT LI4E %iFe"it %e 9i"ul
IS NOT NULL nu e9te # ;$l#$"e nul$
+entru a gasi anga(atii ai caror salariu nu este intr-un inter!al,introduceti)

SELECT ENAME,SAL
FROM EMP
W/ERE SAL NOT 3ETWEEN .111 AND 0111=
ENAME SAL
********* ********
SMIT/ D11.11
(ONES 0,B6E.11
3LA4E 0,DE1.11
CLAR4 0,7E1.11
SCOTT 2,111.11
4IN5 E,111.11
(AMES BE1.11
FORD 2,111.11
Pent"u $ $Fl$ $cei $n@$A$ti $ c$"#" e9e"ie nu ince!e cu M,int"#%uceti<

SELECT ENAME,(O3
FROM EMP
W/ERE (O3 NOT LI4E HMMH=
ENAME (O3
******** ********
SMIT/ CLER4
ALLEN SALESMAN
WARD SALESMAN
MARTIN SALESMAN
SCOTT ANAL-ST
4IN5 PRESIDENT
TURNER SALESMAN
ADAMS CLER4
(AMES CLER4
FORD ANAL-ST
MILLER CLER4

Pent"u $ $Fl$ t#ti $n@$A$tii c$"e $u un $n$@e"(M5R),int"#%uceti<
SELECT ENAME,M5R
FROM EMP
W/ERE M5R IS NOT NULL=
ENAME M5R
******* *****
SMIT/ 6B10
ALLEN 6CBD
WARD 6CBD
(ONES 6D2B
MARTIN 6CBD
3LA4E 6D2B
CLAR4 6D2B
SCOTT 6ECC
TURNER 6CBD
ADAMS 66DD
(AMES 6CBD
FORD 6ECC
MILLER 66D0

Nota:
Daca o valoare NLL este utilizata intr-o comparatie ,atunci operatorul de
comparatie tre!uie sa fie IS sau IS N"T NLL. Daca acesti operatori nu sunt uti
lizati si valoarea NLL este comparata,atunci rezultatul este intotdeauna
#$LSE
De e%emplu, C"&&'(NLL este intotdeauna falsa.)ezultatul este fals deoarece
o valoare NLL poate sa nu fie e*ala sau diferita cu orice alta valoare alta decat
NLL.
De notat ca o astfel de eroare nu este semnalata,rezultatul fiind intotdea- una
fals.
Intero$area datelor cu conditii multile
Operatorii A/D sau O# pot fi utilizati pentru a compune expresii logice.
;redicatul A*D este ade"arat numai daca ambele conditii sunt >ade"arate>7 predicatul
OR este ade"arat daca cel putin una din conditii este >ade"arata>.
In urmatoarele doua e2empleconditiile sunt aceleasidar predicatele di!era ;ri"iti cum
rezultatul este dramatic modi!icat.

Pent"u $ @$9i t#ti Functi#n$"ii c$"e c$9ti@$ int"e
.111 9i 0111,int"#%uceti<
SELECT EMPNO,ENAME,(O3,SAL
FROM EMP
W/ERE SAL 3ETWEEN .111 AND 0111
AND (O3 ) HCLER4H=
EMPNO ENAME (O3 SAL
**** ******* ******** ********
6D6C ADAMS CLER4 .,.11.11
6B27 MILLER CLER4 .,211.11
Pent"u $ $Fl$ t#ti $n@$A$tii c$"e 9unt 9i Functi#n$"i 9iJ9$u
Functi#n$"i c$"e c$9ti@$ int"e .111 9i 0111,int"#%uceti<
SELECT EMPNO,ENAME,(O3,SAL
FROM EMP
W/ERE SAL 3ETWEEN .111 AND 0111
OR (O3 ) HCLER4H=
EMPNO ENAME (O3 SAL
***** ******** ******* ********
62CB SMIT/ CLER4 D11.11
67BB ALLEN SALESMAN .,C11.11
6E0. WARD SALESMAN .,0E1.11
6CE7 MARTIN SALESMAN .,0E1.11
6D77 TURNER SALESMAN .,E11.11
6D6C ADAMS CLER4 .,.11.11
6B11 (AMES CLER4 BE1.11
6B27 MILLER CLER4 .,211.11
;uteti combina A*D sau OR in acceasi e2presie logica. )and A*D sau OR apar in
aceeasi clauza G91R1 toti operatorii A*D sunt e"aluati mai intai si apoi toti
operatorii OR. Dom spune ca operatorii A*D au o precedenta mai mare decat OR.
Deoarece A*D are o precedenta mai mare decat OR urmatoarea declaratie SQL
intoarce toti managerii cu salarii peste %6((J si toti "anzatorii.

SELECT EMPNO,ENAME,(O3,SAL,DEPTNO
FROM EMP
W/ERE SAL: .E11
AND (O3 ) HMANA5ERH
OR (O3 ) HSALESMANH=
EMPNO ENAME (O3 SAL DEPTNO
***** ******* ******** ******** ******
67BB ALLEN SALESMAN .,C11.11 21
6E0. WARD SALESMAN .,0E1.11 21
6ECC (ONES MANA5ER 0,B6E.11 01
6CE7 MARTIN SALESMAN .,0E1.11 21
6CBD 3LA4E MANA5ER 0,DE1.11 21
66D0 CLAR4 MANA5ER 0,7E1.11 .1
6D77 TURNER SALESMAN .,E11.11 21
D$c$ %#"iti 9$ 9elect$ti t#ti $n$@e"ii 9i ;$n>$t#"ii
cu 9$l$"ii !e9te .E11P !uteti int"#%uce<
SELECT EMPNO,ENAME,(O3,SAL,DEPTNO
FROM EMP
W/ERE SAL :.E11
AND ((O3 ) HMANA5ERH
OR (O3 ) HSALESMANH)=
EMPNO ENAME (O3 SAL DEPTNO
***** ****** ********* ******** ******
67BB ALLEN SALESMAN .,C11.11 21
6ECC (ONES MANA5ER 0,B6E.11 01
6CBD 3LA4E MANA5ER 0,DE1.11 21
66D0 CLAR4 MANA5ER 0,7E1.11 .1
;arantezele speci!ica ordinea in care operatorii "or !i e"aluati. In al doilea e2emplu
operatorul OR este e"aluat inaintea operatorului A*D.
TI&URI DE DATE CARACTER SI CONDITII
ENAME
(VARC/AR0)
___________
W/ERE ENAME ) HSCOTTH + +
+ SCOTT V V+
+ ___+
+ SCOTT+____
+ +
+ MILLER +
+ +
QQQQ QQ QQQ
O"$cle nu face u!le"e$ cu &l$ncu"i l$ c#!$"$"e$
cu c#l#$nele VARC/AR0
ENAME
(C/AR)
************
+ +
+ SCOTT V V+
W/ERE ENAME ) HSCOTTH + ....+
+ SCOTT+V V+
+ +. +
+ MILLER+ V+
QQQQ QQQQ QQ
O"$cle face u!le"e$ cu &l$ncu"i l$ c#!$"$"e$
cu c#l#$nele C/AR.
Tipurile de date caracter si conditii
6ipurile de baza ale datelor stocate intr-o tabela oracle sunt)caracter, !aloare
numerica sau data calendaristica.7om discuta toate !ariantele in detaliu mai
tarziu.De cate ori rezultatele unei conditii implica date de tip caracter, acestea
pot !aria in functie de tipul coloaneiLO#A$%& inzestreaza coloanela cu tipul
$8A# pentru !alori de lungime fixa si cu tipul 7A#$8A#3 pentru !alori de
lungime !ariabila.
;entru coloanele cu tipul DAR)9AR5 Oracle nu umple sirul de comparare si de
aceea "a !ace o potri"ire e2acta.In primul e2empludoar un singur rand este intors
pentru conditia:
W/ERE ENAME ) HSCOTTH
cand un alt rand stocat in coloana &/AMe are mai multe caractere decat sirul
de comparat.
;entru coloanele cu tipul )9AR oricumOracl< !ace umplere cand "alorile coloanelor
sunt initial stocate!acandu#le pe toate de aceeasi lungime.
Aceeasi conditie "a intoarce ambele randuri pentru S)O// indi!erent de cate spatii
de s!arsit au !ost adaugate cand "alorile au !ost stocate in tabela.
Oracle umple cu blancuri sirul de comparat in cel deal doilea caz si de aceea spatiile
stocate sunt nesemni!icati"e.
Precedenta operatorilor
6oti operatorii sunt aran(ati intr-o ierarhie ceea ce le determina precedenta
.0ntr-o expresie operatiile sunt executate in ordinea precedentei lor de la mare
la mica.
)and operatorii au precedenta egala atunci ei se e"alueaza de la stanga la dreapta.
'. 6oti operatorii de comparatie si S:% au precedenta egala) B,R
B,S,A,SB,AB,B&61&&/...A/D,0/,%09&,0S /"%%.
3. /O6(pentru a in!ersa rezultatul unei expresii logice.De ex) 18&#&
not(salA3444
D. A/D
T. O#.
De !iecare data cand sunteti in dubiu despre care dintre doua operatii "or !i e2ecutate
mai intai cand o e2presie este e"aluata sunteti liberi sa utilizati parantezele pentru a
clari!ica semni!icatia dorita si pentru a "a asigura ca SQL3;lus !ace ceea ce doriti.
Sa presupunem ca doriti sa gasiti toti managerii din orice departamentsi toti
!unctionarii din departamentul %(:

SELECT '
FROM EMP
W/ERE (O3)HMANA5ERH OR ((O3 ) HCLER4H AND DEPTNO ) .1)=

;arantezele de deasupra sunt necesare A*D are o precedenta mai mare decat OR dar
ele clari!ica semni!icatia e2presiei.
SELECT'Sumar
?rmatoarele clauze sunt inc=ise in comanda S1L1)/:

SELECT RDISTINCTS R',c#l#$n$ $li$9S,...S
FROM t$&el$
W/ERE c#n%itie(ii)
ORDER 3- Rc#l#$n$,eG!"S RASCJDESCS=

S&%&$6
selecteaza cel putin o coloana
Alias
poate fi folosit pentru coloanele din lista selectata
O
desemneza toate coloanele
D0S60/$6
poate fi utilizat pentru eliminarea duplicatelor
;#OM 6abela
desemneaza tabela din care pro!in coloanele
18&#&
restrictioneaza cererea la randurile care indeplinesc o conditie.+oate
contine !alori de coloane,expresii si literali
A/D.O#
poate fi utilizat intr-o clauza 18&#& pentru a construi conditii mai
complexe. A/D are prioritate peste O#.
(
pot fi utilizate pentru a forta prioritatea
O#D&# BE
intotdeauna apare la sfarsit .Specifica ordinea de sortare."na sau mai
multe coloane pot fi specificate aici.
AS$
ordinea ascendenta este ordinea de sortarU ( implicita si nu trebuie
specificat.
D&S$
in!erseaza ordinea de sortare de default si trebuie specificat dupa un
nume de coloana.
)lauzele pot !i introduse pe linii separate in bu!!er si tabelarea este utilizata pentru
claritate si in editare.
Logarea la SQL(Plus
Aceasta sectiune explica cum sa ne logam la S:%O+lus si liniile de iesire ale
tipurilor de comenzi ce pot rezulta in cadrul sau.
SQL*Plus
SQL3;lus este un program scris de )orporatia Oraclece produce un mediu pentru
comenzile SQL ce pot !i tastate direct sau rulate dintr#un !isier de comanda.In plus
comenzile SQL pot !i deri"ate.1le sunt !olosite pentru:
formatarea rezultatelor
setarea optiunilor
editarea si stocarea declaratiilor S:%
Odata ce "#ati logat la sistemul "ostru de operaresunt 8 moduri pentru a "a loga la
SQL3;lus:
'. S:%+%"S
# 7eti !edea dupa aceasta un mesa( ca acesta)
# S:%O+lus) 7ersion D.'.' +roduction on Mon Oct T 'IID $op5right
(c 'II3,Oracle $orporation,$alifornia,"SA. All rights reser!ed.
&nter "sername)
# 0ntroduceti numele !ostru de user si apasati #&6"#/) S:%O+lus
!a afisa promptul )V&nter +ass,ord)V. 0ntroduceti parola !oastra si
apasati din nou #&6"#/.
# +entru protectia !oastra ,parola nu !a apare pe ecran. S:%O+lus
!a afisa promptul sau) S:%A
# Aceasta indica linia de comanda .Acolo sunt doua feluri de
comenzi si puteti introduce pe acesta linie de comanda)comenzi
S:% sau comenzi S:%O+lus.
3. S:%+%"S username
# 7eti fi indemnati sa !a dati parola.
D. S:%+%"S username.pass,ord
# 7eti fi logati la S:%O+lus.0n acest caz parolz ! a fi afisata.
Alegeti metoda pe care o pre!erati.
Editarea declaratiilor SQL utilizand comenzi SQL(Plus
'. $and !eti introduce o comanda S:%,aceasta este stocata intr-o zona de
memorie utilizata de buferul S:% si ramane acolo pana ce !eti introduce
o noua comanda.
3. Daca apasati M#&6"#/N inainte de a completa o comanda,S:%O+lus !a
afisa un numar de linie.
D. 6erminatorul pentru declaratiile S:% este un KLK.
T. $at timp declaratia S:% este in bufer,sunt cate!a operatii de editare
directe care pot fi executate utilizand comenzi S:%O+lus)
C#$n%$ A&"e;ie"e$ ROL
**********************************************************************
APPEND teGt A teGt $%$u@$ HteGtH l$ 9F$"9itul liniei cu"ente.
C/AN5E CJ#l%JneT 9cUi&$ ;ecUiul teGt cu n#ul teGt in lini$
cu"ent$.
C/AN5E CJteGtJ 9te"@e HteGtH*ul %in lini$ cu"ent$
CLEAR 3UFFER CL 3UFF 9te"@e t#$te liniile %in &uFe"ul S?L.
DEL 9te"@e lini$ cu"ent$.
INPUT I in9e"e$>$ un nu$" ne%eFinit %e linii.
INPUT I teGt in9e"e$>$ # linie c#n9tituit$ %in HteGtH*ul
"e9!ecti;
LIST L li9te$>$ t#$te liniile %in &uFe"ul S?L.
LIST n Ln li9te$>$ # linie (9!eciFic$t$ %e n)
LIST , n L n li9te$>$ un nu$" %e linii(%e l$ l$ n).
RUN R $Fi9e$>$ 9i eGecut$ c#$n%$ S?L cu"ent$ %in
&uFFe".
J eGecut$ c#$n%$ S?L c$"e e9te cu"ent$ in
&uFe".
Diversitatea comenzilor SQL(Plus
$omenzile S:% (precum S&%&$6 sunt mi(loace de acces la date prin
*ernelul Oracle.$omenzile S:% sunt utilizate in special pentru controlul
mediului, formatarea rezultatelor interogarilor si controlul fisierelor.$omenzile
identificate aici sunt amestecate si trebuie sa le folositi in urmatoarele
exercitii.
)omenzile SQL sunt introduse la promptul SQLK pe o linie ele nu "or desc=ide un
bu!!er.
)omanda 0 Descriere
SA7& numefis
permite sal!area intr-un fisier a continutului buferului S:%.
F&6 numefis
incarca continutul unui fisier sal!at in prealabil in buffer.
S6A#6 numefis
ruleaza un fisier de comanda sal!at in prealabil. ;isierele de comanda
sunt tratate in capitolul '4.
&D numefis
utilizeaza un editor de default pentru a edita continutul unui fisier sal!at.
&@06
paraseste S:%O+lus.
E%ercitii'Introducere in SQL
Aceste e2ercitii intentioneaza sa dez"aluie toate subiectele neobser"ate la o lectura
anterioara.Daca a"eti timp incercati intrebarea %8.
W#"V9U#!
1. Selectati toate informatiile din tabela SALGRADE.
5RADE LOSAL /ISAL
***** ***** *****
. 611 .011
0 .01. .711
2 .71. 0111
7 011. 2111
E 211. BBBB
2. Selectati toate informatiile din tabela EMP.
EMPNO ENAME (O3 M5R /IREDATE SAL COMM DEPTNO
***** ***** ******* **** ******** ******** ******* ******
62CB SMIT/ CLER4 6B10 .2*(UN*D2 D11.11 01
67BB ALLEN SALESMAN 6CBD .E*AU5*D2 .,C11.11 211.11 21
6E0. WARD SALESMAN 6CBD 0C*MAR*D7 .,0E1.11 E11.11 21
6ECC (ONES MANA5ER 6D2B 2.*OCT*D2 0,B6E.11 01
6CE7 MARTIN SALESMAN 6CBD 1E*DEC*D2 .,0E1.11 .,711.11 21
6CBD 3LA4E MANA5ER 6D2B ..*(UL*D7 0,DE1.11 21
66D0 CLAR4 MANA5ER 6D2B .7*MA-*D7 0,7E1.11 .1
66DD SCOTT ANAL-ST 6ECC 1E*MAR*D7 2,111.11 01
6D2B 4IN5 PRESIDENT 1B*(UL*D7 E,111.11 .1
6D77 TURNER SALESMAN 6CBD 17*(UN*D7 .,E11.11 .11 21
6D6C ADAMS CLER4 66DD 17*(UN*D7 .,.11.11 01
6B11 (AMES CLER4 6CBD 02*(UL*D7 BE1.11 21
6B10 FORD ANAL-ST 6ECC 1E*DEC*D2 2,111.11 01
6B27 MILLER CLER4 66D0 0.*NOV*D2 .,211.11 .1
.7 in"e@i9t"$"i 9elect$te.
3. Listati toti angajatii care au salariul intre 1 si 2.
ENAME DEPTNO SAL
***** ****** ********
ALLEN 21 .,C11.11
WARD 21 .,0E1.11
MARTIN 21 .,0E1.11
TURNER 21 .,E11.11
ADAMS 01 .,.11.11
MILLER .1 .,211.11
C in"e@i9t"$"i 9elect$te.
!.Listati numerele de de"artament si numele in ordinea numelor
de"artamentelor.
DEPTNO DNAME
****** **********
.1 ACCOUNTIN5
71 OPERATIONS
01 RESEARC/
21 SALES
#. Afisati toate ti"urile diferite de job$uri.
(O3
*********
ANAL-ST
CLER4
MANA5ER
PRESIDENT
SALESMAN
%. Listati detaliile angajatilor din de"artamentele 1 si 2 in
ordinea alfabetica a numelui.
EMPNO ENAME (O3 M5R /IREDATE SAL COMM DEPTNO
***** ***** ***** **** ********* ******** **** ******
6D6C ADAMS CLER4 66DD 17*(UN*D7 .,.11.11 01
66D0 CLAR4 MANA5ER 6D2B .7*MA-*D7 0,7E1.11 .1
6B10 FORD ANAL-ST 6ECC 1E*DEC*D2 2,111.11 01
6ECC (ONES MANA5ER 6D2B 2.*OCT*D2 0,B6E.11 01
6D2B 4IN5 PRESIDENT 1B*(UL*D7 E,111.11 .1
6B27 MILLER CLER4 66D0 0.*NOV*D2 .,211.11 .1
66DD SCOTT ANAL-ST 6ECC 1E*MAR*D7 2,111.11 01
62CB SMIT/ CLER4 6B10 .2*(UN*D2 D11.11 01
D in"e@i9t"$"i 9elect$te.
&.Listati numele si ocu"atiile tuturor functionarilor
in de"artamentul 2.
ENAME (O3
****** *****
SMIT/ CLER4
ADAMS CLER4
'. Afisati toti angajatii ai caror nume contine () sau LL
in interior.
ENAME
******
SMIT/
ALLEN
MILLER
*. Listati urmatoarele detalii "entru toti angajatii care
au un manager.
ENAME (O3 SA-
****** ******** ********
SMIT/ CLER4 D11.11
ALLEN SALESMAN .,C11.11
WARD SALESMAN .,0E1.11
(ONES MANA5ER 0,B6E.11
MARTIN SALESMAN .,0E1.11
3LA4E MANA5ER 0,DE1.11
CLAR4 MANA5ER 0,7E1.11
SCOTT ANAL-ST 2,111.11
TURNER SALESMAN .,E11.11
ADAMS CLER4 .,.11.11
(AMES CLER4 BE1.11
FORD ANAL-ST 2,111.11
MILLER CLER4 .,211.11
.2 in"e@i9t"$"i 9elect$te.
1. Afisea+a numele si totalul remuneratiei "entru toti angajatii.
ENAME REMUNERATION
******* ************
SMIT/ BC11
ALLEN .BE11
WARD .EE11
(ONES 2E611
MARTIN .C711
3LA4E 27011
CLAR4 0B711
SCOTT 2C111
4IN5 C1111
TURNER .D111
ADAMS .2011
(AMES ..711
FORD 2C111
MILLER .EC11
.7 in"e@i9t$"i 9elect$te.
11. Afisea+a toti salariatii care au fost angajati in anul 1*'3.
ENAME DEPTNO /IREDATE
******* ****** *********
SMIT/ 01 .2*(UN*D2
ALLEN 21 .E*AU5*D2
(ONES 01 2.*OCT*D2
MARTIN 21 1E*DEC*D2
FORD 01 1E*DEC*D2
MILLER .1 0.*NOV*D21
C in"e@i9t"$"i 9elect$te.
12. Afisati numele,salariul anual si comisionul "entru toti -an+atorii
ai caror salariu lunar este mai mare decat comisionul lor..esirea -a fi
ordonata du"a salariu , cele m ai mari "rimele. Daca doi sau mai multi
angajati au acelasi salariu trebuie sortati du"a nume in odinea celor
mai mari salarii.
ENAME ANNUAL_SAL COMM
****** ********** ********
ALLEN .B011 211.11
TURNER .D111 .11
WARD .E111 E11.11
Ince"c$ti*;$ $!titu%inile cu $ce9t$.
13. Selectati informatiile du"a cum sunt selectate.
Cine,c$n% 9i cu
********************************************************************
SMIT/ /AS /ELD T/E POSITION OF CLER4 IN DEPT 01 SINCE .2*(UN*D2
ALLEN /AS /ELD T/E POSITION OF SALESMAN IN DEPT 21 SINCE .E*AU5*D2
WARD /AS /ELD T/E POSITION OF SALESMAN IN DEPT 21 SINCE 0C*MAR*D7
(ONES /AS /ELD T/E POSITION OF MANA5ER IN DEPT 01 SINCE 2.*OCT*D2
MARTIN /AS /ELD T/E POSITION OF SALESMAN IN DEPT 21 SINCE 1E*DEC*D2
3LA4E /AS /ELD T/E POSITION OF MANA5ER IN DEPT 21 SINCE ..*(UN*D7
CLAR4 /AS /ELD T/E POSITION OF MANA5ER IN DEPT .1 SINCE .7*MA-*D7
SCOTT /AS /ELD T/E POSITION OF ANAL-ST IN DEPT 01 SINCE 1E*MAR*D7
4IN5 /AS /ELD T/E POSITION OF PRESIDENT IN DEPT .1 SINCE 1B*(UL*D7
TURNER /AS /ELD T/E POSITION OF SALESMAN IN DEPT 21 SINCE 17*(UN*D7
ADAMS /AS /ELD T/E POSITION OF CLER4 IN DEPT 01 SINCE 17*(UN*D7
(AMES /AS /ELD T/E POSITION OF CLER4 IN DEPT 21 SINCE 02*(UL*D7
FORD /AS /ELD T/E POSITION OF ANAL-ST IN DEPT 01 SINCE 1E*DEC*D2
MILLER /AS /ELD T/E POSITION OF CLER4 IN DEPT .1 SINCE 0.*NOV*D2
.7 in"e@i9t"$"i 9elect$te.
REZOLVARI
.. SELECT '
FROM SAL5RADE=
0. SELECT '
FROM EMP=
2. SELECT ENAME, DEPTNO, SAL
FROM EMP
W/ERE SAl 3ETWEEN .111 AND 0111=
7. SELECT DEPTNO, DNAME
FROM DEPT
ORDER 3- DNAME=
E. SELECT DISTINCT (O3
FROM EMP=
C. SELECT '
FROM EMP
W/ERE DEPTNO IN (.1,01)
ORDER 3- ENAME=
6. SELECT ENAME,(O3
FROM EMP
W/ERE (O3 ) HCLER4H
AND DEPTNO ) 01=
D. SELECT ENAME
FROM EMP
W/ERE ENAME LI4E HMT/MH
OR ENAME LI4E HMLLMH=
B. SELECT ENAME, (O3, SAL
FROM EMP
W/ERE M5R IS NOT NULL=
.1. SELECT ENAME, SAL'.0INVL(COMM,1) REMUNERATION
FROM EMP=
... SELECT ENAME, DEPTNO, /IREDATE
FROM EMP
W/ERE /IREDATE LI4E HMD2H=
.0. SELECT ENAME, SAL'.0 ANNUAL SAL, COMM
FROM EMP
W/ERE SAL :COMM
AND (O3 ) HSALESMANH
ORDER 3- SAL DESC, ENAME=
.2. SELECT ENAME++
H /AS /ELD T/E POSITION OF H++
(O3++
H IN DEPT H++
DEPTNO++
H SINCE H++
/IREDATE "WU#, TU$t $n% TUen"
FROM EMP=

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