Documente Academic
Documente Profesional
Documente Cultură
Baze Date Licenta 2009 PDF
Baze Date Licenta 2009 PDF
____ 34. Care este varianta corecta pentru a crea tabelul CARTE, cu caracteristicile de mai jos, indicand cheile la nivel
de coloana?
(Tabelele DOMENIU_CARTE si CARTE sunt in relatia 1:M)
____ 36. Sa se creeze tabelul asociativ imprumuta, a carui structura este data mai jos(codc, codcit si
dataim sunt chei primare). Sa se precizeze legatura cu tabelele carte si cititor, aflate in relatia M:M
(mai multi la mai multi)
a. IMPRUMUTA (
codc CHAR(5),
codcit CHAR(5),
dataim DATE DEFAULT SYSDATE,
datares DATE,
dataef DATE,
PRIMARY KEY (codel, codec, dataim),
FOREIGN KEY (codc)
REFERENCES CARTE (codc),
FOREIGN KEY (codcit)
REFERENCES CITITOR(codcit));
b. IMPRUMUTA (
codc CHAR(5) PRIMARY KEY,
codcit CHAR(5) PRIMARY KEY,
dataim DATE DEFAULT SYSDATE PRIMARY KEY,
datares DATE,
dataef DATE,
FOREIGN KEY (codc)
REFERENCES CARTE (codc),
FOREIGN KEY (codcit)
REFERENCES CITITOR(codcit));
c. IMPRUMUTA (
codc CHAR(5) REFERENCES CARTE (codc),
codcit CHAR(5) REFERENCES CITITOR(codcit),
dataim DATE DEFAULT SYSDATE,
datares DATE,
dataef DATE,
PRIMARY KEY (codel, codec, dataim));
____ 37. Sa se creeze tabelul CARTE_INFO(codc, titlu, autor) prin copiere din tabelul
CARTE(codc CHAR(5) , titlu VARCHAR2(30), autor VARCHAR2(30), pret NUMBER(8,2), nrex
NUMBER(3), coddom CHAR(5))
care este secventa corecta pentru a modifica salariile cu 10% , care nu contin valori NULL?
a. UPDATE PROF SET SALARIU = SALARIU*1.1
WHERE SALARIU NOT NULL;
b. UPDATE PROF SET SALARIU = SALARIU*1.1
WHERE SALARIU IS NOT NULL;
c. UPDATE PROF SElLECT SALARIU = SALARIU*1.1
WHERE SALARIU <>0;
____ 49. Pentru tabelul PROF
cod_prof# cod_fac nume pren salariu cod_funct
care este secventa corecta pentru a sterge toate cadrele didactice care sunt profesori consultanti?
a. DELETE FROM PROF WHERE COD_FUNCT=’C’;
b. DELETE PROF WHERE COD_FUNCT<>’C’;
c. DROP FROM PROF WHERE COD_FUNCT=’C’;
d. DROP PROF WHERE COD_FUNCT=’C’;
____ 50. Pentru tabelul:
FAC
cod_fac# denumire adresa
care este secventa corecta pentru o inserare, folosind instructiunea SELECT
care este secventa corecta pentru a afisa toti profesorii impreuna cu media _ salariu pentru fiecare
facultate , rotunjita la doua pozitii zecimale
a. SELECT COD_FAC,
ROUND (AVG (SALARIU), 2) AS medie_salariu
FROM PROF
ORDER BY COD_FAC;
b. SELECT COD_FAC,
ROUND (AVG (SALARIU, 2) AS medie_salariu
FROM PROF
GROUP BY COD_FAC;
c. SELECT COD_FAC,
ROUND (AVG (SALARIU), 2) AS medie_salariu
FROM PROF
GROUP BY COD_FAC;
d. SELECT FROM PROF COD_FAC,
ROUND AVG (SALARIU), 2 AS medie_salariu
GROUP BY COD_FAC;
____ 52. Pentru tabelul
PROF
cod_prof# cod_fac nume pren salariu
care este secventa corecta pentru a afisa suma salariilor tuturor profesorilor din universitate.
a. SELECT SUM (Salariu) AS Total_Salariu
FROM PROF;
b. SELECT SUM (Salariu) AS Total_Salariu
FROM PROF
GROUP BY COD_FAC;
c. SELECT SALARIU, SUM (Salariu) AS Total_Salariu
FROM PROF;
d. SELECT COD_FAC, SUM (Salariu) AS Total_Salariu
FROM PROF;
____ 53. Pentru tabelul
PROF
cod_prof# cod_fac nume pren salariu
care este secventa corecta pentru a afisa toti profesorii pentru care COD_FAC =1 si
salariu>=1200, sau toti profesorii pentru care COD_FAC =3 si salariu < 2000.
FAC
cod_fac# denumire adresa
care este secventa corecta pentru o interogare de uniune interna(inner join) care sa afiseze toti profesorii si
denumirile facultatilor la care predau, in ordinea crescatoare a denumirilor
a. SELECT NUME, PREN, DENUMIRE
FROM FAC, PROF
WHERE A.COD_FAC =B.COD_FAC
ORDER BY FAC.DENUMIRE;
b. SELECT NUME, PREN, DENUMIRE
FROM FAC, PROF
WHERE FAC.COD_FAC=PROF.COD_FAC
ORDER BY FAC.DENUMIRE;
c. SELECT NUME, PREN, DENUMIRE
FROM FAC, PROF
WHERE FAC.COD_FAC=PROF.COD_FAC;
____ 58. Să se obtinapentru fiecare carte, codul sau şi numarul de exemplare care nu au fost inca restituite.
a. SELECT codc
FROM IMPRUMUTA
WHERE dataef IS NULL
GROUP BY codc;
b. SELECT COUNT(*)
FROM IMPRUMUTA
GROUP BY codc;
c. SELECT codc, COUNT(*)
FROM IMPRUMUTA
WHERE dataef IS NULL
GROUP BY codc;
d. SELECT COUNT(*)
FROM IMPRUMUTA
WHERE dataef =0
GROUP BY codc;
____ 59. Care este secventa corecta care să afişeze numărul cărŃilor împrumutate cel puŃin de două ori
(pentru fiecare carte împrumutată mai mult decât o dată să se obŃină numărul de câte ori a fost
împrumutată).
a. SELECT COUNT(COUNT(codel))
FROM imprumuta
GROUP BY codcarte
HAVING COUNT(*)>1;
b. SELECT COUNT(codel)
FROM imprumuta
GROUP BY codcarte
HAVING COUNT(*)>1;
c. SELECT COUNT(COUNT(codel))
FROM imprumuta
WHERE COUNT(*)>1;
d. SELECT COUNT(codel)
FROM imprumuta
ORDERBY BY codcarte
HAVING COUNT(*)>1;
____ 60. Care este secventa corecta care afiseaza pentru fiecare domeniu de carte, numărul cărŃilor din
domeniu, media preŃurilor şi numărul total de exemplare
FAC
cod_fac# denumire adresa
care este secventa corecta pentru o interogare de uniune externa catre stanga, care sa afiseze toti profesorii si
denumirile facultatilor la care predau
care este secventa corecta pentru o subinterogare necorelata, care sa afiseze toate functiile pentru care nu
exista profesorii incadrati
a. SELECT cod_funct, nume_funct
FROM functii
WHERE cod_funct NOT IN
(SELECT DISTINCT cod_funct FROM prof);
b. SELECT cod_funct, nume_funct
FROM functii
WHERE cod_funct NOT IN
SELECT DISTINCT cod_funct FROM prof;
c. SELECT cod_funct, nume_funct
FROM functii
WHERE cod_funct IN
(SELECT cod_funct FROM prof);
____ 63. Care este comanda corecta care pentru fiecare facultate, se insereaza in tabelul TOTALURI(cod_fac,
nr_prof, total_sal_fac) numarul de profesori si suma salariilor pe care facultatea o plateste profesorilor sai?
a. INSERT TO TOTALURI
SELECT COD_FAC, COUNT(*) , SUM(SALARIU)
FROM PROF ORDER BY COD_FAC;
b. INSERT INTO TOTALURI
SELECT COD_FAC, COUNT(*) , SUM(SALARIU)
FROM PROF ;
c. INSERT INTO TOTALURI
SELECT COD_FAC, COUNT(*) , SUM(SALARIU)
FROM PROF
GROUP BY COD_FAC;
d. INSERT INTO TOTALURI
SELECT COD_FAC, SUM(COD_PROF), SUM(SALARIU)
FROM PROF
GROUP BY COD_FAC;
____ 64. Să se obŃină titlurile şi preŃurile cărŃilor mai scumpe decât cartea având titlul “Baze de date”, al cărui
autor este Popescu (self join).
a. DELETE salariu
FROM salariati
WHERE contract=’colaborare’;
b. UPDATE salariati
SET salariu IS null
WHERE contract=’colaborare’;
c. DROP salariu
FROM salariati
WHERE contract=’colaborare’;
d. UPDATE salariati
SET salariu=null
WHERE contract=’colaborare’;
____ 78. Care este comanda corecta care afiseaza codul departamentelor, numele departamentelor si suma salariilor
pentru fiecare departament?
a. SELECT cod_departament, nume_departament, SUM(salariu)
FROM salariati s, departamente d
GROUP BY cod_departament, nume_departament;
b. SELECT cod_departament, nume_departament, SUM(salariu)
FROM salariati s, departamente d
WHERE s.cod_departament=d.cod_departament
GROUP BY cod_departament;
c. SELECT cod_departament, nume_departament, SUM(salariu)
FROM salariati s, departamente d
WHERE s.cod_departament=d.cod_departament
GROUP BY cod_departament, nume_departament;
d. SELECT cod_departament, nume_departament, SUM(salariu)
FROM salariati, departamente
WHERE s.cod_departament=d.cod_departament
GROUP BY cod_departament, nume_departament;
____ 79. Care este comanda corecta care afiseaza numele salariatilor care castiga mai mult decat salariul mediu pe
companie, in ordine crescatoare a salariului?
a. SELECT nume
FROM salariati
WHERE salariu >AVG(salariu);
b. SELECT nume
FROM salariati
WHERE salariu > (SELECT AVG(salariu) FROM salariati)
ORDER BY salariu;
c. SELECT nume
FROM salariati
WHERE salariu > (SELECT AVG(salariu) FROM salariati
ORDER BY salariu);
d. SELECT nume
FROM salariati
WHERE salariu > (SELECT AVG(salariu) FROM salariati)
ORDER BY 1;
____ 80. Care este comanda corecta care afiseaza toate functiile pe care nu lucreaza angajati?
a. SELECT cod_functie
FROM functii
WHERE cod_functie IN
(SELECT cod_functie FROM salariati WHERE cod_functie IS NOT NULL);
b. SELECT cod_functie
FROM functii
WHERE cod_functie NOT IN
(SELECT cod_functie FROM salariati WHERE cod_functie IS NULL);
c. SELECT cod_functie
FROM functii
WHERE cod_functie NOT IN
(SELECT cod_functie FROM salariati);
d. SELECT cod_functie
FROM functii
WHERE cod_functie NOT IN
(SELECT cod_functie FROM salariati WHERE cod_functie IS NOT NULL);