Sunteți pe pagina 1din 5

LABORATOR 1 SQL

CERERI MONOTABEL
1. Ce este SQL?
SQL (Structured Query Language) este un limbaj neprocedural pentru interogarea i prelucrarea
informaiilor din baza de date. Compilatorul limbajului SQL genereaz automat o procedur care acceseaz
baza de date i eecut comanda dorit. Limbajul SQL permite at!t definirea" prelucrarea i interogarea
datelor" c!t i controlul accesului la acestea. Comenzile SQL pot fi integrate #n programe scrise #n alte
limbaje" de eemplu C$C%%" &a'a etc.
2. Ce este SQL*Plus? Comenzile SQL*Plus aeseaz! "aza #e #ate?
SQL()lus este un utilitar *racle" a'!nd comenzi proprii+ este o interfa specific sistemului *racle
pentru eecuia instruciunilor SQL.
,u permite prelucrarea informaiilor din baza de date.
$. Ca%e sunt lim"a&ele SQL?
-n funcie de tipul aciunii pe care o realizeaz" instruciunile SQL se #mpart #n mai multe categorii.
limbajul de definire a datelor (L//) 0 comenzile C12342" 3L421" /1*)+
limbajul de prelucrare a datelor (L5/) 0 comenzile 6,S214" 7)/342" /2L242" S2L2C4+
limbajul de control al datelor (LC/) 0 comenzile C*5564" 1*LL83C9.
'. Comenzile SQL*Plus ae(t! a"%e)ie%i? Neesit! un a%ate% #e te%mina%e a omenzii?
Comenzile pot fi abre'iate.
,u sunt necesare caractere pentru a specifica #nc:eierea comenzii.
3ccept ;0< drept caracter de continuare pentru comenzile scrise pe mai multe linii.
*. Comenzile SQL ae(t! a"%e)ie%i? Neesit! un a%ate% #e te%mina%e a omenzii?
Comenzile SQL nu accept abre'ieri" iar caracterul de terminare al unei comenzi SQL este <+=.
+. 3nalizai sintaa simplificat a comenzii S2L2C4. Care dintre clauze sunt obligatorii>
SELECT ? @ ?,ISTINCT A -NIQ-EB A ALLC listaDcampuri A (B
.ROM @numeDsc:em.CnumeDobiect C
@" @numeDsc:em.CnumeDobiect EC
@/0ERE condiieDclauzaDF:ereC
@@START /IT0 condiieDclauzaDstartDFit:C
CONNECT B1 condiieDclauzaDconnectDbyC
@2RO-P B1 epresie @" epresie EC
@0A3IN2 condiieDclauzaD:a'ingC C
@OR,ER B1 ?epresie A poziieB @" ?epresie A poziieB EC C
@.OR -P,ATE
@O. @ @numeDsc:em.CnumeDobiect.CnumeDcoloan
@" @ @numeDsc:em.CnumeDobiect.CnumeDcoloanC EC
@NO/AIT A /AIT numrD#ntregC C+
4. S se iniieze o sesiune SQL()lus folosind user 6/Gul i parola indicate.
5. Hsii erorile din instruciunea urmtoare.
S2L2C4 employeeDid" lastDname
salary ( IJ salariu anual
K1*5 employees+
Obs: S3L3167 3,73L este un alias pentru c!mpul care reprezint salariul anual.
I
/ac un alias conine blankGuri" el 'a fi scris obligatoriu #ntre g:ilimele. 3ltfel" g:ilimelele pot fi
omise. AliasGul apare #n rezultat" ca i cap de coloan pentru epresia respecti'. /oar cele specificate #ntre
g:ilimele sunt caseGsensitive" celelalte fiind scrise implicit cu majuscule.
Varianta 1 .
S2L2C4 employeeDid" lastDname" salary ( IJ salariuDanual
K1*5 employees+

Varianta 2 .
S2L2C4 employeeDid" lastDname" salary ( IJ L Salariu 3nual L
K1*5 employees+
6. a) Consultai diagrama eemplu M1 (Muman 1esources) pentru lucrul #n cadrul laboratoarelor SQL.
b) 6dentificai c:eile primare i cele eterne ale tabelelor eistente #n sc:em" precum i tipul relaiilor
dintre aceste tabele.
17. S se listeze structura tabelelor din sc:ema M1 (25)L*N22S" /2)31452,4S" &*8DM6S4*1N"
&*8S" L*C346*,S" C*7,4162S" 12H6*,S)" obser'!nd tipurile de date ale coloanelor.
Obs: Se 'a utiliza comanda SQL()lus
/2SC1682 numeDtabel
11. S se listeze coninutul tabelelor din sc:ema considerat" afi!nd 'alorile tuturor c!mpurilor.
Obs: Se 'a utiliza comanda SQL
S2L2C4 ( K1*5 numeDtabel+
12. S se obin #nc o dat rezultatul cererii precedente" fr a rescrie cererea.
Obs: 7ltima comand SQL lansat de ctre client este pstrat #n bufferGul SQL.
)entru rularea acesteia se utilizeaz <$= sau 17,.
1$. Listai structura tabelului 25)L*N22S i apoi dai comanda 17, (sau <$=). Ce obser'ai> Comenzile
SQL()lus sunt pstrate #n buffer>
/2SC employees
17,
1'. S se afieze codul angajatului" numele" codul jobGului" data angajrii. Sal'ai instruciunea SQL #ntrGun
fiier numit pIDIO.sPl.
Obs: )entru sal'area ultimei comenzi SQL se utilizeaz comanda S3Q2. )recizarea etensiei ;.sPl= a
fiierului nu este obligatorie.
S2L2C4 employeeDid" lastDname" jobDid" :ireDdate
K1*5 employees+
S3Q2 z.RER pIDIO.sPl
1*. 1eeecutai cererea folosind fiierul pIDIO.sPl.
S4314 z.RER pIDIO.sPl
sau
S z.RER pIDIO.sPl
1+. 2ditai fiierul pIDIO.sPl" adug!nd coloanelor c!te un alias (cod" nume" cod job" data angajarii).
2/64 z.RER pIDIO.sPl

J
Cererea se modific astfel.
S2L2C4 employeeDid cod" lastDname nume" jobDid L cod job L" :ireDdate L data angajarii L
K1*5 employees+

S z.RER pIDIO.sPl
14. S se listeze" cu i fr duplicate" codurile jobGurilor din tabelul 25)L*N22S.
S2L2C4 jobDid K1*5 employees+
S2L2C4 /6S46,C4 jobDid K1*5 employees+
S2L2C4 7,6Q72 jobDid K1*5 employees+
Obs. /6S46,C4 T 7,6Q72
15. S se afieze numele concatenat cu prenumele" separate prin spaiu. 2tic:etai coloana <,ume si
prenume=.
Obs: *peratorul de concatenare este <AA=. Uirurile de caractere se specific #ntre apostrofuri (N- g:ilimele"
caz #n care ar fi interpretate ca aliasGuri).
S2L2C4 lastDnameAA V V AA firstDname L ,ume si prenume L
K1*5 employees+
16. S se listeze numele i salariul angajailor care c!tig mai mult de IWWWW X.
S2L2C4 lastDname" salary
K1*5 employees
YM212 salary Z IWWWW+
27. a. S se modifice cererea anterioar astfel #nc!t s afieze numele i salariul pentru toi angajaii al cror
salariu este cuprins #ntre [WWWX iIWWWWX.
Obs: )entru testarea apartenenei la un domeniu de 'alori se poate utiliza operatorul
@,*4C 824Y22, valoare1 3,/ valoare2
S2L2C4 lastDname" salary
K1*5 employees
YM212 salary 824Y22, [WWW 3,/ IWWWW+
21. S se creeze o cerere pentru a afia numele angajatului i numrul departamentului pentru angajatul IWO.
S2L2C4 lastDname" departmentDid
K1*5 employees
YM212 employeeDid TIWO+
22. S se afieze numele i salariul pentru toi angajaii din departamentele IW sau \W" #n ordine alfabetic a
numelor.
Obs: 3partenena la o mulime finit de 'alori se poate testa prin intermediul operatorului 6," urmat de
lista 'alorilor #ntre paranteze i separate prin 'irgule.
expresie 6, (valoare_1" valoare_2" E" valoare_n)
S2L2C4 lastDname" salary
K1*5 employees
YM212 departmentDid 6, (IW" \W)
*1/21 8N lastDname+
2$. S listeze numele i salariile angajailor care c!tig mai mult de IWWWW X i lucreaz #n departamentul IW
sau \W. Se 'or etic:eta coloanele drept 3ngajat si Salariu lunar.
2'. Care este data curent>
\
Obs: )seudocoloana care returneaz data curent este SNS/342. )entru completarea sintaei obligatorii
a comenzii S2L2C4" se utilizeaz tabelul /73L.
S2L2C4 SNS/342
K1*5 dual+
/atele calendaristice pot fi formatate cu ajutorul funciei 4*DCM31(data" format)" unde formatul poate fi
alctuit dintrGo combinaie a urmtoarelor elemente.
Element Semni8ia9ie
/ ,umrul zilei din sptm!n (duminicTI+
luniTJ+ Es!mbtT]).
// ,umrul zilei din lun.
/// ,umrul zilei din an.
/N ,umele zilei din sptm!n" printrGo
abre'iere de \ litere (5*," 4M7 etc.)
/3N ,umele complet al zilei din sptm!n.
55 ,umrul lunii din an.
5*, ,umele lunii din an" printrGo abre'iere de \
litere (&3," K28 etc.).
5*,4M ,umele complet al lunii din an.
N 7ltima cifr din an.
NN" NNN 7ltimele J" respecti' \ cifre din an.
NNNN 3nul #n format numeric (O cifre).
N231 3nul" scris #n cu'inte (e. tFo t:ousand
four).
Y ,umrul sptm!nii din lun
YY ,umrul sptm!nii din an
Q ,umrul trimestrului din an
MMIJ" MMJO *rele din zi" #ntre WGIJ" respecti' WGJO.
35 sau )5 6ndicator meridian. 35 sau )5
56 5inutele din or.
SS Secundele din minut.
SSSSS Secundele trecute de la miezul nopii.
2*. S se afieze numele i data angajrii pentru fiecare salariat care a fost angajat #n I^_`. Se cer J soluii.
una #n care se lucreaz cu formatul implicit al datei i alta prin care se formateaz data.
Varianta1:
S2L2C4 firstDname" lastDname" :ireDdate
K1*5 employees
YM212 :ireDdate L692 (ab_`c)+
Varianta 2:
S2L2C4 firstDname" lastDname" :ireDdate
K1*5 employees
YM212 4*DCM31(:ireDdate" aNNNNc)TcI^_`c+
Sunt obligatorii g:ilimelele de la irul aI^_`c> Ce obser'ai>
2+. S se afieze numele" jobGul i data la care au #nceput lucrul salariaii angajai #ntre JW Kebruarie I^_` i I
5ai I^_^. 1ezultatul 'a fi ordonat cresctor dup data angajrii.
S2L2C4 lastDname" jobDid" :ireDdate
K1*5 employees
YM212 :ireDdate 824Y22, VJWG53NGI^_`V 3,/ VIWG53NGI^^WV
O
*1/21 8N :ireDdate+
24. S se afieze numele i jobGul pentru toi angajaii care nu au manager.
S2L2C4 lastDname" jobDid
K1*5 employees
YM212 managerDid 6S ,7LL+
25. S se afieze numele" salariul i comisionul pentru toi salariaii care c!tig comisioane. S se sorteze
datele #n ordine descresctoare a salariilor" iar pentru cei care au acelai salariu #n ordine cresctoare a
comisioanelor.
S2L2C4 lastDname" salary" commissionDpct
K1*5 employees
YM212 commissionDpct 6S ,*4 ,7LL
*1/21 8N salary /2SC" commissionDpct 3SC+
26. 2liminai clauza YM212 din cererea anterioar. 7nde sunt plasate 'alorile ,7LL #n ordinea
cresctoare>
$7. S se listeze numele tuturor angajailor care au a treia litera din nume VaV.
Obs: )entru a forma mtile de caractere utilizate #mpreun cu operatorul L692 cu scopul de a compara
irurile de caractere" se utilizeaz.
b G reprezent!nd orice ir de caractere" inclusi' irul 'id+
D (underscore) 0 reprezent!nd un singur caracter.
S2L2C4 /6S46,C4 lastDname
K1*5 employees
YM212 lastDname L692 VDDabV+
$1. Kolosind data curent s se afieze urmtoarele informaii.
G numele zilei" numrul zilei din sptm!n" numrul zilei din luna" respecti' numrul zilei din an+
G numrul lunii din an" numele lunii cu abre'iere la \ caractere" respecti' numele complet al lunii+
G ora curent (ora" minute" secunde).
$2. S se listeze numele departamentelor care funcioneaz #n locaia a'!nd codul I`WW i al cror manager
este cunoscut.
$$. S se afieze codurile departamentelor #n care lucreaz salariai.
$'. S se afieze numele i prenumele salariailor angajai #n luna iunie I^_`.
$*. S se listeze codurile angajailor care au a'ut i alte joburi fa de cel prezent. S se ordoneze rezultatul
descresctor dup codul angajatului.
$+. S se afieze numele i data angajrii pentru cei care lucreaz #n departamentul _W i au fost angajai #n
luna martie a anului I^^`.
$4. S se afieze numele joburilor care permit un salariu cuprins #ntre _\WWX i I[WWWX.
$5. Care este grila de salarizare pentru un salariu de IWWWWX>
$6. S se listeze numele tuturor angajailor care au J litere VLV #n nume i lucreaz #n departamentul \W sau
managerul lor este IJ\.
'7. S se afieze numele" jobGul i salariul pentru toi salariaii al cror job conine irul VCL219V sau V12)V i
salariul nu este egal cu IWWW" JWWW sau \WWW X.
'1. S se afieze numele" salariul i comisionul pentru toi angajaii al cror salariu este mai mare dec!t de [
ori 'aloarea comisionului (salary(commissionDpct([).
[

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