Sunteți pe pagina 1din 23

baze_de_date

Probleme pentru examenul de licenta

1. O baza de date relationala este


a. O colectie de date interrelationate gestionate ca o singura
b. unitate
c. Un produs software furnizat de un producator de baze de date
d. O structura de date, cum ar fi un tabel, o vizualizare sau un index
2. Definitaalinunei
Un Obiect acelasi
bazemod de toti
de date esteproducatorii de software
a. O colectie de inregistrari inrudite, stocate ca o singura unitate
b. Un produs software furnizat de un producator de baze de date
c. O structura, cum ar fi un tabel, o vizualizare sau un index
d. O colectie de date interrelationate gestionate ca o singuraunitate
3. Care din urmtoarele baze de date nu este un RDBMS (sistem de gestionare a bazelor
de date
relatioanale)
a. Oracle Database
b. MySQL
c. Excel Database
d. Microsoft SQL Server
4. Un sistem RDBMS(sistem de gestionare a bazelor de date relatioanale) nu urmatorul
include
serviciu
a. Acceptarea unui limbaj de interogare
b. Mecanisme de securitate, pentru a impiedica accesul si modificarea neautorizata a
datelor
c. Mutarea datelor in si din fisiere de date, dupa cum este necesar
d. Generarea diagramelor ERD (Entity Relationship Diagram)
5. Componentele unei baze de date relationale nu includ
a. Tabele
b. Diagrame
c. ERD
d. Restrictii
Relatii
6. Printre tipurile de restrictii care pot fi folosite in bazele de date relationale, nu se numara
a. NOT NULL
b. Relatii
c. CHECK
d. Cheie primara
e. Unicitate
7. Normalizarea nu rezolva
a. Anomalia de stergere
b. Anomalia de actualizare
c. Anomalia de inserare
d. Anomalia de creare
8. Un identificator unic (cheie primara)
a. Poate fi compus numai dintr-un singur atribut
b. Poate fi compus din atribute concatenate
c. Poate fi compus din atribute cu valoarea NULL
d. Poate fi compus din zero, unul sau mai multe atribute
9. Prima forma normala rezolva anomaliile cauzate de
a. Grupurile repetitive si atributele
b. multivaloare
c. Dependentele partiale de cheia primara
d. Dependentele tranzitive
10. Relatiile
A doua formadenormala
tip unu-la-mai-multi
rezolva anomaliile cauzate de
a. Grupurile repetitive
b. Dependentele partiale de cheia primara
c. Grupurile repetitive si atributele multi valoare
d. Dependentele tranzitive
11. A treia forma normala rezolva anomaliile cauzate de
a. Dependentele partiale de cheia primara
b. Grupurile repetitive
c. Dependentele tranzitive
d. Atributele multivaloare
12. Problemele de dependenŃă tranzitivă
a. Sunt rezolvate de a doua formă normală
b. Sunt rezolvate de prima formă normală
c. Apar atunci când un atribut non-cheie depinde doar de o parte a cheii primare
d. Sunt rezolvate de a treia formă normală
13. SQL este
a. Un limbaj procedural
b. Un limbaj neprocedural
c.
Un limbaj orientat spre obiecte
Un limbaj grafic, folosit pentru definirea diagramelor ER si a diagramelor
d.
conceptuale
14. Un model de date reprezinta o colectie integrata de concepte care nu descriu
a. date
b. relatii dintre date
c. date despre echipa realizatoare a modelului
d. constrângeri existente asupra datelor sistemului real analizat.
15. Nu este caracteristica a modelului relational
a. prezenta tuplurilor identice
b. articolele unui domeniu sunt omogene
c. toate valorile unui domeniu corespunzatoare tuturor cazurilor nu mai pot fi
descompuse in alte valori (sunt atomice)
d. fiecare coloana defineste un domeniu distinct si nu se poate repeta in cadrul
aceleiasi relatii
16. Modelul relational nu are ca regula de integritate structurala
a. Unicitatea cheii. Cheia primara trebuie sa fie unica si minimala.
b. Integritatea entitatii. Atributele cheii primare trebuie sa fie diferite de valoarea
null.
c. Integritatea referirii. O cheie externa trebuie sa corespunda unei valori a
cheii
d. primare asociate.
Integritatea referirii. O cheie externa trebuie sa fie ori null in intregime, ori sa
corespunda unei valori a cheii primare asociate.
17. Relatia m:n devine in modelul relational
a. tabel asociativ cu cheia primara formata numai din doua chei externe pentru cele
doua tabele asociate
b. tabel asociativ cu cheia primara formata din doua chei externe pentru cele
doua tabele asociate plus eventuale coloane aditionale
c. chei externe
d. entitate independenta
18. Care nu este un concept utilizat pentru a descrie formal - uzual - fizic elementele d
baza ale
organizarii
a. relatie -datelor
tablou- fisier
b. tuplu - linie- inregistrare
c. atribut - coloana - camp
d. domeniu - zona- functie
19. Instructiunile SQL nu fac parte din categoria
a. Limbajul de interogare a datelor (DQL)
b. Limbajul de definire a datelor (DDL - Data Definition Language)
c. Limbajul de selectare a datelor (DSL - Data Selection Language)
d. Limbajul de manipulare a datelor (DML - Data Manipulation Language)
20. Limbajul de definire a datelor (DDL - Data Definition Language) nu include urmatoarea instructiune
a. DELETE
b. CREATE
c. ALTER
d. DROP
21. Limbajul de manipulare a datelor (DML – Data Manipulation Language) nu include instructiuniea
a. INSERT
b. UPDATE
c. DELETE
d. ALTER
22. Tipurile de date temporale standard nu includ
a. DATE
b. DATETIME
c. TIME
d. TIMESTAMP
23. Valorile NULL
a. Sunt egale cu alte valori NULL
b. Este acelasi lucru ca si spatiile libere
c. Sunt intotdeauna permise in mod prestabilit
d. Pot fi folosite pentru reprezentarea datelor care lipsesc sau nu sunt
cunoscute
24. Definitia unei coloane din instructiunea CREATE TABLE nu poate include
a. Numele tabelului
b. O clauza DEFAULT
c. O clauza NULL sau NOT NULL
d. Numele coloanei
25. Sintaxa corecta pentru o restrictie NOT NULL este
a. nume_coloana REFERENCES NOT NULL
b. nume_coloana tip_de_DATA IS NOT NULL
c. nume_coloan tip_de_DATA NOT NULL
d. DEFAULT
a [NULL | NOT NULL]
26. Sintaxa corecta pentru o restrictie UNIQUE este
a. [CONSTRAINT nume_restrictie] UNIQUE {nume_coloana[,nume
b. coloana...])
c. [CONSTRAINT nume_restrictie] UNIQUE (nume_tabel)
d. nume_coloana REFERENCES UNIQUE nume_tabel
27. DEFAULT
Sintaxa corecta UNIQUE (nume_coloana)
pentru o restrictie referentiala asupra unei coloane este
a. CONSTRAINT nume_restrictie] REFERENCES nume_tabel
b. nume_coloana REFERENCES nume_tabel
c. FOREIGN KEY nume_coloana REFERENCES nume_tabel (nume_coloana)
d. REFERENCES nume_tabel (nume_coloana)
28. Utilizarile valide ale instructiunii ALTER TABLE nu include
a. Adaugarea coloanelor
b. Eliminarea unei chei primare
c. Redenumirea unui tabel
d. Adaugarea unei restrictii
29. Nu este functie SQL standard pentru siruri de caractere
a. UPPER
b. LENGTH sau LEN
c. LOWER
d. LIKE
30. Operatorul UNION
a. Include randurile duplicate in setul de rezultate
b. Combina seturile de rezultate a doua interogari intr-un singur set de
rezultate si elimina randurile duplicate din setul de rezultate
c. Combina doua interogari intr-o singura interogare de tip join
d. Este numit JOIN in unele implementari SQL
31. O instructiune SQL care contine o functie de agregare
a. Nu poate include, in acelasi timp, o clauza GROUP BY si o clauza ORDER BY
b. Trebuie sa includa o clauza GROUP BY
c. Trebuie sa includa o clauza ORDER BY
d. Poate contine si coloane obisnuite si coloane calculate
32. Care este varianta corecta pentru a crea tabelul Salariat, cu caracteristicile de mai jos?
VARST
COD _ANG NUME PRENUME DATA_ANG EMAIL SALARIU
A
valoare
sir date, sir deimplicita
not null caractere de
sir caractere
valoare
numeric
caractere de0
de dimensiunenumar de
numeric de 5 de maxim 20 de 2
maxim implicita 10
dimensiune
20 data curentă fixa, de 30 cu 2
zecimale
a. CREATE TABLE SALARIAT (
cod_ang NUMBER(5) NOT
NULL, nume VARCHAR2(20),
prenume VARCHAR2(20),
data_angajarii DATE DEFAULT
SYSDATE, varsta NUMBER(2),
email CHAR(50),
salariu NUMBER(10,2) DEFAULT 0);
b. CREATE TABLE SALARIAT (
cod_ang NUMBER(5)
nume VARCHAR2(20),
prenume VARCHAR2(20),
data_angajarii DATE ,
varsta NUMBER(2),
email CHAR(50),
salariu NUMBER(10,2) DEFAULT 0);
c. CREATE TABLE SALARIAT (
cod_ang NUMBER(5) , NOT NULL,
nume VARCHAR2(20),
prenume VARCHAR2(20),
data_angajarii DATE , DEFAULT SYSDATE,
varsta NUMBER(2),
email CHAR(50),
salariu NUMBER(10,2) , DEFAULT 0);
33. Pentru a insera in tabelul SALARIAT inregistrari
DATA_AN
COD _ANG NUME PRENUME VARSTA EMAIL SALARIU
G
valoare
sir de
implicita
sir date, caractere
not null caractere de
sir caractere
valoare numeric de 2 de
0
numeric de 5 de maxim 20 numar de
maxim 20 implicita data dimensiune
10 cu 2
curentă fixa, de 30
zecimale
care varianta este incorecta?
a. INSERT INTO SALARIAT(COD _ANG, NUME, PRENUME, DATA_ANG, VARSTA, EMAIL,
SALARIU) VALUES(5, ‘Ene’, ‘Ana’, ‘1/06/2009’, 20, ‘ea@gmail.com’, 2500.50)
b. INSERT INTO SALARIAT(COD _ANG, NUME, PRENUME, VARSTA, EMAIL)
VALUES(5, ‘Ene’, ‘Ana’, 20, ‘ea@gmail.com’)
c. INSERT INTO SALARIAT(COD _ANG, NUME,PRENUME,VARSTA,EMAIL,
SALARIU) VALUES(5, ‘Ene’, ‘Ana’, ‘1/06/2009’, 20, ‘ea@gmail.com’)
d. INSERT INTO SALARIAT
VALUES(5, ‘Ene’, ‘Ana’, ‘1/06/2009’, 20, ‘ea@gmail.com’, 2500.50)

34. Care este varianta corecta pentru a crea tabelul CARTE, cu caracteristicile de mai jos, indicand cheile la nive
de coloana?
(Tabelele DOMENIU_CARTE si CARTE sunt in relatia 1:M)

CARTE(codc CHAR(5), titlu VARCHAR2(30), autor VARCHAR2(30), pret NUMBER(8,2), nrex


NUMBER(3), coddom CHAR(5))

a. CREATE TABLE CARTE


(codc CHAR(5) PRIMARY KEY,
titlu VARCHAR2(30),
autor VARCHAR2(30),
pret
NUMBER(8,2), nrex
NUMBER(3),
coddom CHAR(5) NOT NULL)
b. CREATE TABLE CARTE
(codc CHAR(5) PRIMARY
KEY,
titlu VARCHAR2(30),
autor VARCHAR2(30),
pret
NUMBER(8,2), nrex
NUMBER(3),
coddom CHAR(5) NOT NULL
REFERENCES DOMENIU(coddom));
c. CREATE TABLE CARTE
(codc CHAR(5) ,
titlu VARCHAR2(30),
autor VARCHAR2(30),
pret
NUMBER(8,2), nrex
NUMBER(3),
coddom CHAR(5) NOT NULL
PRIMARY KEY (codc),
FOREIGN KEY (coddom)
REFERENCES DOMENIU (coddom));
35. Care este varianta corecta pentru a crea tabelul CARTE, cu caracteristicile de mai jos(codc cheie primara
coddom cheie secundara), indicand cheile la nivel de tabel?

CARTE(codc CHAR(5) , titlu VARCHAR2(30), autor VARCHAR2(30), pret NUMBER(8,2), nrex


NUMBER(3), coddom CHAR(5))

a. CREATE TABLE CARTE


(codc CHAR(5) PRIMARY KEY,
titlu VARCHAR2(30),
autor VARCHAR2(30),
pret
NUMBER(8,2), nrex
NUMBER(3),
coddom CHAR(5) NOT NULL)
b. CREATE TABLE CARTE
(codc CHAR(5) PRIMARY KEY,
titlu VARCHAR2(30),
autor VARCHAR2(30),
pret
NUMBER(8,2), nrex
NUMBER(3),
coddom CHAR(5) NOT NULL
REFERENCES DOMENIU(coddom));
c. CREATE TABLE CARTE
(codc CHAR(5),
titlu VARCHAR2(30),
auto VARCHAR2(30),
r NUMBER(8,2),
pret
nrex NUMBER(3),
coddom CHAR(5) NOT
NULL, PRIMARY KEY
(codc),
FOREIGN KEY (coddom)
REFERENCES DOMENIU
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
a. la mai multi)
IMPRUMUTA (
codc CHAR(5),
codcit CHAR(5),
dataim DATE DEFAULT
datare SYSDATE,
s 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 tabelu
CARTE(codc CHAR(5) , titlu VARCHAR2(30), autor VARCHAR2(30), pret NUMBER(8,2), nrex
NUMBER(3), coddom CHAR(5))

selectand cartile care au coddom=’I’


a. CREATE TABLE CARTEINFO
(codc CHAR(5),
titlu VARCHAR2(30),
autor VARCHAR2(30),
FROM CARTE
PRIMARY KEY (codc),
FOREIGN KEY (coddom)
REFERENCES DOMENIU (coddom));

b. CREATE TABLE CARTE_INFO


(codc CHAR(5) PRIMARY
KEY,
titlu VARCHAR2(30),
autor VARCHAR2(30),
FROM CARTE
WHERE coddom = ’I’;
c. CREATE TABLE CARTE_INFO
AS SELECT codc, titlu, autor
FROM CARTE
WHERE coddom = ’I’;
38. Pentru a introduce in tabelul SALARIAT
COD DATA_AN
NUME PRENUME VARSTA SALARIU
_ANG G
valoare
implicita
date,
not null sircaractere sir caractere
valoare numeric de 2
0
numeric de 5 de maxim 20 de maxim 20 numar de
implicita data
10 cu 2
curentă
zecimale
doua coloane: Cod_Funct si Email ce varianta folosim?

a. ALTER TABLE SALARIAT ADD Cod_Funct NUMBER(2), ALTER COLUMN ADD


Email char(25);
b. ALTER TABLE SALARIAT ADD Cod_Funct NUMBER(2), ADD Email CHAR(25);
c. ALTER TABLE SALARIAT ADD (Cod_Funct NUMBER(2) , Email CHAR(25));
d. ALTER TABLE SALARIAT ADD Cod_Funct NUMBER(2), ALTER ADD Email
char(25);
39. Ce comanda creeaza tabelul SALARIAT_1 care să aiba aceeiasi structura c
tabelul SALARIAT
DATA_AN VARST
COD _ANG NUME PRENUME EMAIL SALARIU
G A
valoare
sir de date, sir de caractere
not null caractere de
sir caractere
valoare
numeric
de
implicita
numeric de 5 maxim 20 de maxim 20 de 2 0
implicita data dimensiune
numar de
curentă fixa, de 30
10 cu 2
zecimale

si sa contina salariatii care au salariu >100?


a. CREATE TABLE SALARIAT_1
SELECT * FROM SALARIAT WHERE SALARIU>100;
b. CREATE TABLE SALARIAT_1
AS SELECT * FROM SALARIAT WHERE SALARIU>100;
c. CREATE TABLE SALARIAT_1
AS SELECT FROM SALARIAT WHERE SALARIU>100;
d. CREATE TABLE SALARIAT_1
AS SELECT COD_ANG, SALARIU FROM SALARIAT WHERE SALARIU>100;
40. Ce comanda sterge din tabelul
SALARIAT
COD DATA_AN
NUME PRENUME VARSTA EMAIL SALARIU
_ANG G
valoare
sir de
implicita
sir de date, valoare caractere
not null caractere de
sir caractere
implicita
numeric
de
0
numeric de 5 de maxim 20 de numar de
maxim 20 data curentă dimensiune
2 10 cu 2
fixa, de 30
zecimale
coloana nume si coloana salariu?

a. ALTER TABLE SALARIAT


DROP nume, salariu;
b. ALTER TABLE SALARIAT
DROP COLUMN (nume, salariu);
c. ALTER TABLE
SALARIAT DROP (nume,
d. salariu);
ALTER TABLE SALARIAT
41. Ce DROP COLUMN
comanda nume, tabelul
creeaza corect COLUMN salariu; specificand constrangerile?
SALARIAT,
COD DATA_AN
NUME PRENUME VARSTA EMAIL SALARIU
_ANG G
unic
sir de
not null > 0
cheie date, valoare caractere
sir de sir caractere numar de
primara implicita data numeric de 2 de
caractere de de maxim 20 10 cu 2
numeric de 5 curentă dimensiun
maxim 20 zecimale
e fixa,
de
30
a. CREATE TABLE salariat(
cod_ang NUMBER(5) PRIMARY
KEY, nume VARCHAR2(20) NOT
NULL, prenume VARCHAR2(20),
data_ang DATE DEFAULT
SYSDATE, varsta NUMBER(2),
email CHAR(30) UNIQUE,
salariu NUMBER(10,2) CHECK (salariu >
0));
b. CREATE TABLE salariat(
cod_ang NUMBER(5) PRIMARY KEY,
nume VARCHAR2(20) NOT NULL,
prenume VARCHAR2(20),
data_ang DATE DEFAULT SYSDATE,
varsta NUMBER(2),
email CHAR(30) UNIQUE,
salariu NUMBER(10,2) > 0));
c. CREATE TABLE salariat(
cod_ang NUMBER(5) PRIMARY KEY,
nume VARCHAR2(20) NOT NULL,
prenume VARCHAR2(20),
data_ang DATE DEFAULT SYSDATE,
varsta NUMBER(2),
email CHAR(30),
salariu NUMBER(10,2) CHECK (salariu > 0));
42. Care este comanda corecta prin care se adauga constrangerea de cheie primara tabelului
IMPRUMUTA (cod_cititor, cod_carte, data_imprumut, data_restituire)?

a. ALTER TABLE IMPRUMUTA


ADD PRIMARY KEY cod_cititor, PRIMARY KEY cod_carte, PRIMARY KEY
data_imprumut;
b. ALTER TABLE IMPRUMUTA
ADD PRIMARY KEY cod_cititor, cod_carte, data_imprumut;
c. ALTER TABLE IMPRUMUTA
ADD CONSTRAINT cp PRIMARY KEY (cod_cititor, cod_carte,
d. data_imprumut);
ALTER TABLE IMPRUMUTA
ADD
43. Pentru PRIMARY
tabelul Salariat KEY (cod_cititor, cod_carte, data_imprumut);
cod_depart cod_ang# nume pren salariu cod_funct
care este comanda corecta, pentru a modifica salariu la 3000, pentru angajatii care lucreaza in departamentu
10 si au salariul<3000?
a. UPDATE salariat SET salariu=3000
WHERE cod_depart=10 AND salariu<3000;
b. MODIFY salariat SET salariu=3000
WHERE cod_depart=10 , salariu<3000;
c. UPDATE salariat SET cod_depart=10 AND
salariu<3000
d. WHERE salariu=3000;
MODIFY salariat SET salariu=3000
WHEREîn
44. Să se insereze cod_depart=10
tabelul CARTEAND salariu<3000;
toate cărŃile din tabelul CARTE_INFO, presupunând că tabelul
CARTE_INFO a fost deja creat.
a. CREATE TABLE CARTE
AS SELECT codc, titlu, autor
FROM CARTE_INFO;
b. INSERT INTO CARTE
SELECT
FROM CARTE_INFO;
c. CREATE TABLE CARTE
AS SELECT *
FROM CARTE_INFO;
d. INSERT INTO
SELECt
CARTE *
TFROM CARTE_INFO;
45. Pentru profesorii titulari, sa se maresca cumulul cu 10% si sa se rotunjeasca la 2 zecimale.
UPDATE PROF SET CUMUL = ROUND([CUMUL]*1.1,2)
WHERE TITULAR="Y";
a. UPDATE PROF SET CUMUL = (CUMUL*1.1)
WHERE TITULAR=’Y’;
b. MODIFY PROF SET CUMUL = ROUND(CUMUL*1.1,2)
WHERE TITULAR=’Y’;
c. UPDATE PROF SET CUMUL = ROUND(CUMUL*1.1,2
WHERE TITULAR=’Y’;
d. UPDATE PROF SET CUMUL = ROUND(CUMUL*1.1,2);
46. Sã se modifice pretul cartilor din biblioteca, care se gasesc intr-un numar de exemplare
mai mic
decat media numarului de exemplare pe biblioteca. Noua valoare a pretului sa fie egala c
suma
a. preturilor cartilor
UPDATE CARTE scrise de ‘BARBU’.
SET pret = SUM(pret)
(SELECT CARTE
FROM autor = ’BARBU’)
WHERE nrexWHERE < (SELECT AVG(nrex)
FROM CARTE);
b. MODIFY CARTE
SET pret = (SELECT SUM(pret)
FROM carte
WHERE autor = ’BARBU’)
WHERE nrex < (SELECT AVG(nrex)
FROM CARTE);
c. UPDATE CARTE
pret = ( SUM(pret)
FROM carte
WHERE autor = ’BARBU’)
WHERE nrex < ( AVG(nrex)
FROM CARTE);
d. UPDATE CARTE
pret = (SELECT SUM(pret)
FROM carte
WHERE autor = ’BARBU’ and
nrex < ( AVG(nrex)
FROM CARTE);
47. Pentru tabelele:
PROF
cod_prof# cod_fac nume pren salariu cod_fuct
TOTALURI
cod_fac# nr_prof total_sal
care este secventa corecta pentru o instructiune INSERT cu o instructiune SELECT interna, pentru a insera in
tabelul TOTALURI, un rand pentru fiecare facultate din tabelul PROF, care sa contina numarul de profesori
din facultate si suma salariilor lor?
a. INSERT TO TOTALURI
SELECT COD_FAC, COUNT(*) , SUM(SALARIU)
FROM PROF ORDER BY COD_FAC;
b. INSERT INTO TOTALURI
SELECT COD_FAC, COUNT(*) AS NR_PROF, SUM(SALARIU) AS TOTAL_SAL
FROM PROF ;
c. INSERT INTO TOTALURI
SELECT COD_FAC, COUNT(*) AS NR_PROF, SUM(SALARIU) AS
TOTAL_SAL FROM PROF GROUP BY COD_FAC;
48. Pentru tabelul
PROFcod_prof# cod_fac pren salariu

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
b. COD_FUNCT=’C’;
c. DELETE PROF WHERE COD_FUNCT<>’C’;
d. DROP FROM PROF WHERE COD_FUNCT=’C’;
DROP
50. Pentru tabelul:PROF WHERE COD_FUNCT=’C’;
FAC
cod_fac# denumire adresa
care este secventa corecta pentru o inserare, folosind instructiunea SELECT

a. INSERT INTO FAC


(COD_FAC, DENUMIRE, ADRESA)
SELECT VALUES(MAX(COD_FAC)+1, 'LIMBI', 'ION GHICA')
b. INSERT INTO FAC
SELECT MAX(COD_FAC)+1, 'LIMBI', 'ION GHICA'
FROM FAC;
c. INSERT INTO FAC
(COD_FAC, DENUMIRE, ADRESA)
SELECT MAX(COD_FAC)+1, 'LIMBI', 'ION
GHICA' FROM FAC;
51. Pentru tabelul
PROF
cod_prof# cod_fac nume pren salariu

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
FROM PROF medie_salariu
ORDER BY COD_FAC;
b. SELECT COD_FAC,
ROUND (AVG (SALARIU, 2) AS
FROM PROF medie_salariu
GROUP BY COD_FAC;
c. SELECT COD_FAC,
ROUND (AVG (SALARIU), 2) AS
FROM PROF medie_salariu
GROUP BY COD_FAC;
d. SELECT FROM PROF COD_FAC,
ROUND AVG (SALARIU), 2 AS
medie_salariu
GROUP BY COD_FAC;
52. Pentru
tabelul
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
d. FROM PROF;
SELECT COD_FAC, SUM (Salariu) AS Total_Salariu
53. PentruFROM PROF;
tabelul
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.

a. SELECT COD_FAC, COD_PROF, NUME, SALARIU


FROM PROF
WHERE (COD_FAC=1 OR SALARIU >1200)
AND (COD_FAC =3 OR SALARIU<2000);
b. SELECT COD_FAC, COD_PROF, NUME,SALARIU
FROM PROF
WHERE (COD_FAC=1 AND SALARIU >1200)
AND (COD_FAC =3 AND SALARIU<2000);
c. SELECT COD_FAC, COD_PROF, NUME,
SALARIU
FROM PROF
WHERE (COD_FAC=1 AND SALARIU >1200)
OR (COD_FAC =3 AND SALARIU<2000);
d. SELECT COD_FAC, COD_PROF, NUME,SALARIU
FROM PROF
WHERE COD_FAC=1 OR SALARIU >1200
OR (COD_FAC =3 OR SALARIU<2000);
54. Pentru tabelul
PROF
cod_prof# cod_fac nume pren salariu
care secventa este corecta pentru a afisa citi profesori nu au o valoare introdusa pe coloana salariu?
a. SELECT COUNT(salariu)
FROM PROF
WHERE SALARIU =0;
b. SELECT COUNT(*)
FROM PROF
WHERE SALARIU =NULL;
c. SELECT COUNT(*)
FROM PROF
WHERE SALARIU IS NOT NULL;
d. SELECT
COUNT(*) FROM
PROF
WHERE
55. O uniune SALARIU
(join) IS NULL;
fara o clauzä WHERE sau o clauza JOIN
a. Nu returneaza nici un rand din setul de rezultate
b. Reprezinta o uniune interna (inner join)
c. Are ca rezultat un produs cartezian
d. Reprezinta o uniune externa(outer join)
56. O uniune externa (outer join) nu

a. Poate fi scrisa in Oracle SQL folosind un simbol (+) in clauza


b. FROM
c. Poate fi scrisa in Oracle SQL folosind un simbol (+) in clauza WHERE
d. Returneaza toate randurile din unul sau din ambele tabele
Poate
57. Pentru fi catre stanga, catre dreapta sau completa
tabelele:
PROF
cod_prof# cod_fac nume pren salariu

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. a.Să SELECT
se obtinapentru
codcfiecare carte, codul sau şi numarul de exemplare care nu au fost inca restituite.
FROM IMPRUMUTA
WHERE dataef IS
NULL
GROUP BY codc;
b. SELECT COUNT(*)
FROM
IMPRUMUTA
GROUP BY codc;
c. SELECT codc,
COUNT(*)
FROM IMPRUMUTA
WHERE
GROUP BY dataef codc;
IS
d. SELECT COUNT(*)
FROM
IMPRUMUTA
WHERE
GROUP BY dataef =0 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 o
a fost împrumutată).
a. SELECT
COUNT(COUNT(codel))
FROM imprumuta
GROUP BY codcarte
b. HAVING COUNT(*)>1;
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

a. SELECT codcarte, COUNT(*), AVG(pret)


FROM CARTE
GROUP BY codcarte;
b. SELECT coded, AVG(pret), SUM(nrex)
FROM CARTE
GROUP BY codcarte;
c. SELECT codcarte, COUNT(*), AVG(pret),
SUM(nrex) FROM CARTE
GROUP BY codcarte;
d. SELECT COUNT(*), AVG(pret), SUM(nrex)
FROM CARTE
ORDER BY codcarte;
61. Pentru
tabelele:
PROF
cod_prof# cod_fac nume pren salariu

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

a. SELECT NUME, PREN, DENUMIRE


FROM FAC PROF LEFT OUTER JOIN ON A.COD_FAC = B.COD_FAC;
b. SELECT NUME, PREN, DENUMIRE
FROM FAC LEFT OUTER JOIN PROF ON
A.COD_FAC = B.COD_FAC;
c. SELECT NUME, PREN, DENUMIRE
FROM FAC A LEFT OUTER JOIN PROF B ON A.COD_FAC =
B.COD_FAC;
62. Pentru tabelele:
PROF
cod_prof# cod_fac nume pren salariu cod_funct
FUNCTII
cod_funct# nume_funct

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
b. prof);
SELECT cod_funct, nume_funct
FROM functii
WHERE cod_funct NOT IN
c. SELECT DISTINCT cod_funct FROM prof;
SELECT cod_funct, nume_funct
FROM functii
WHERE cod_funct IN
63. Care(SELECT
este comandacod_funct
corecta careFROM
pentruprof);
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. SELECT x.titlu, x.pret


FROM carte x, y
WHERE x.pret < y.pret
AND y.titlu = ’Baze de date’
AND y.autor = ’Popescu’;
b. SELEC x.titlu, x.pret
T carte x, carte y
FROM x.pret > y.pret
WHERE y.titlu = ’Baze de date’
AND y.autor = ’ Popescu’;
c. AND x.titlu, x.pret
SELECT carte x, carte y
FROM x.pret > y.pret
WHERE titlu = ’Baze de date’
AND autor = ’ Popescu’;
d. AND x.titlu, x.pret
SELECT carte x, carte y
FROM x.pret > y.pret
WHERE y.titlu = ’Baze de date’, y.autor = ’ Popescu’;
65. PentruANDtabelele
PROFESORI(codp, nume, pren, salariu)
COPII (codp, nume_c, virsta)
care este secventa corecta pentru a afisa profesorii cu copii
a. SELECT a.nume, a.pren
FROM PROFESORI A
WHERE a.codp IN (SELECT DISTINCT
codp
b. FROM COPII);
SELECT a.nume, a.pren
FROM PROFESORI A
WHERE codp IN (SELECT codp
FROM COPII);
c. SELECT a.nume, a.pren
FROM PROFESORI A
WHERE a.codp IN COPII;
d. SELECT a.nume, a.pren
FROM PROFESORI A
WHERE a.codp IN DISTINCT codp
FROM COPII;
66. Pentru tabelele
PROFESORI(codp, nume, pren, salariu)
COPII (codp, nume_c, virsta)
care este secventa corecta pentru a afisa profesorii fara copii
a. SELECT a.nume, a.pren
FROM PROFESORI A
WHERE codp NOT IN (SELECT codp FROM COPII);
b. SELECT a.nume, a.pren
FROM PROFESORI A
WHERE a.codp NOT IN (SELECT DISTINCT codp FROM
c. COPII);
SELECT a.nume, a.pren
FROM PROFESORI A
d. WHERE a.codp NOT IN SELECT codp FROM copii;
SELECT a.nume, a.pren
FROM PROFESORI A
WHERE a.codp
67. Se considera IS NOTunei(SELECT
pentru actionarii DISTINCT codpFROM
firme, urmatoarele tabele COPII
ACTIONARI(nume varchar2(20), cod_act number(5))
ACTIUNI (cod_act number(5), seriain number(8), seriasf number(8), valoar number(8))
(unde seriain si seriasf reprezinta seria de inceput, respectiv de sfarsit al intervalului de actiuni pe
care il are un actionar).
Care este secventa corecta care afiseaza pentru un actionar (introdus de la tastatura), intervalele
seriilor actiunilor sale
a. SELECT a.seriain, a.seriasf, b.nume
FROM actiuni a, actionari b
WHERE a.codact=b.codact AND
b. b.nume=‘&x’;
SELECT a.seriain, a.seriasf, b.nume
FROM actiuni , actionari
c. WHERE a.codact=b.codact AND nume=‘&x’;
SELECT a.seriain, a.seriasf, b.nume
FROM actiuni a, actionari b
d. WHERE a.codact=b.codact ;
SELECT a.seriain, a.seriasf, b.nume
FROM actiuni a, actionari b
WHERE a.codact=b.codact
68. Se considera pentru actionarii uneiOR
firme,b.nume=‘&x’;
tabelul
ACTIUNI (cod_act number(5), seriain number(8), seriasf number(8), valoar number(8))
(unde seriain si seriasf reprezinta seria de inceput, respectiv de sfarsit al intervalului de actiuni pe
care il are un actionar).
Care este secventa corecta care afiseaza suma necesara firmei pentru plata tuturor
devidentelor (numrul de actiuni inmultit cu valoarea unei actiuni)?
a. SELECT SUM((seriain+seriasf)*valoare))
FROM ACTIUNI;
b. SELECT SUM((seriasf-seriasf)*valoare))
FROM ACTIUNI;
c. SELECT SUM((seriain-seriasf)*valoare))
FROM ACTIUNI;
d. SELECT SUM((seriasf-
seriain+1)*valoare)) FROM
ACTIUNI;
69. Pentru tabelele
Angajat(cod_angajat, nume, pren, …..)
Are_functia (cod_angajat, cod_functie, salariu ,…..)
Functii(cod_functie, ……)
care este comanda corecta pentru a calcula suma salariilor angajatului ‘ENE ANA’, care cumuleaza mai multe
functii, in diferite compartimente?
a. SELECT COUNT(SALARIU) AS SALARIU_CUMULAT
FROM salariat, are_functia
WHERE s.cod_salariat=a.cod_salariat
AND NUME='ENE' AND PREN='ANA’;
b. SELECT Sum(SALARIU) AS SALARIU_CUMULAT
FROM salariat, are_functia
WHERE NUME='ENE' , PREN='ANA’;
c. SELECT Sum(SALARIU) AS
SALARIU_CUMULAT FROM salariat s,
are_functia a
WHERE s.cod_salariat=a.cod_salariat
AND
70. Pentru NUME='ENE' AND PREN='ANA’;
tabelele:
PROF
cod_prof# cod_fac nume pren salariu cod_funct
FAC
cod_fac# denumire adresa
care este secventa corecta pentru o subinterogare corelata, care sa afiseze toate facultatile pentru care suma
salariile profesorilor este mai mare 10000
a. SELECT DISTINCT DENUMIRE
FROM FAC
WHERE 10000< (SELECT sum(salariu)
FROM PROF WHERE A.COD_FAC=B.COD_FAC);
b. SELECT DISTINCT
DENUMIRE FROM FAC A
WHERE 10000< ( SELECT sum(salariu)
FROM PROF B WHERE
c. A.COD_FAC=B.COD_FAC);
SELECT DISTINCT DENUMIRE
FROM FAC A
WHERE 10000< SELECT sum(salariu)
71. CareFROM PROFcorecta
este comanda B WHERE
pentruA.COD_FAC=B.COD_FAC;
a afisa toti salariatii , in ordine crescatoare dupa nume, care sunt manageri ?
a. SELECT DISTINCT sef.nume, angajat.cod_manager
FROM salariati sef, salariati angajat
WHERE sef.cod_salariat= angajat.cod_manager
ORDER BY sef.nume;
b. SELECT DISTINCT sef.nume, angajat.cod_manager
FROM salariati sef, salariati angajat
WHERE cod_salariat= cod_manager
ORDER BY sef.nume;
c. SELECT DISTINCT nume, cod_manager
FROM salariati sef, salariati angajat
WHERE sef.cod_salariat= angajat.cod_manager;
d. ELECT DISTINCT nume, cod_manager
FROM salariati sef, salariati angajat
WHERE cod_salariat= cod_manager
ORDER BY sef.nume;
72. Care este comanda corecta care sa afiseze daca exista angajati care nu lucreaza in departamentul ‘Contractari
si al caror salariu coincide cu salariul unui angajat din departamentul ‘Contractari’?
a. SELECT nume, salariu, cod_depart
FROM salariati
WHERE salariu IN (SELECT salariu FROM salariati , department d
WHERE s.cod_depart = d.cod_depart AND nume_depart <> ‘Contractari’)
AND cod_depart= (SELECT cod_depart FROM department
WHERE nume_depart = ‘Contractari’);
b. SELECT nume, salariu, cod_depart
FROM salariati
WHERE salariu IS IN (SELECT salariu FROM salariati , department
WHERE s.cod_depart = d.cod_depart , nume_depart = ‘Contractari’)
AND cod_depart<> (SELECT cod_depart FROM department
WHERE nume_depart = ‘Contractari’);
c. SELECT nume, salariu, cod_depart
FROM salariati
WHERE (salariu) IN (SELECT salariu FROM salariati s, department
d
WHERE s.cod_depart = d.cod_depart AND nume_depart =
‘Contractari’) AND cod_depart<> (SELECT cod_depart FROM
73. Care estedepartment
comanda corecta care afiseaza numarul total de carti imprumutate si restituite pentru fiecare citito
al unei biblioteci?
a. SELECT cod_cititor, COUNT()
FROM imprumuta
WHERE data_restituirii NOT NULL
GROUP BY cod_cititor;
b. SELECT cod_cititor, COUNT(*)
FROM imprumuta
WHERE data_restituirii IS NOT NULL;
c. SELECT cod_cititor, COUNT(*)
FROM imprumuta
GROUP BY cod_cititor;
d. SELECT cod_cititor,
COUNT(*) FROM imprumuta
WHERE data_restituirii IS NOT
NULL
GROUP BY cod_cititor;
74. Care este comanda corecta care determina micsorarea salariilor cu 10%, cu rotunjire la 2 zecimale , a
angajatilor care nu sunt titulari?
a. UPDATE salariat
SET salariu=ROUND(salariu*0.9, 2);
b. UPDATE salariat
SET salariu=ROUND(salariu*1.1)
WHERE titular =’N’;
c. UPDATE salariat
SET salariu = ROUND(salariu*0.9,
2) WHERE TITULAR=’N’;
d. UPDATE salariat
SET salariu=ROUND(salariu+salariu*0.1)
WHERE titular =’Y’;
75. Care este comanda corecta care afiseaza numele si salariul angajatilor condusi direct de ‘ENE DAN’?
a. SELECT nume, salariu
FROM salariati
WHERE cod_ang = (SELECT cod_manager FROM salariati
WHERE UPPER(nume) ='ENE' , UPPER(pren) ='DAN' );
b. SELECT nume, salariu
FROM salariati
WHERE cod_manager IN (SELECT cod_ang FROM salariati
WHERE nume ='ENE' , pren ='DAN' );
c. SELECT nume, salariu
FROM salariati
(SELECT cod_ang FROM salariati
WHERE UPPER(nume) ='ENE' AND UPPER(pren) ='DAN' );
d. SELECT nume, salariu
FROM salariati
WHERE cod_manager = (SELECT cod_ang FROM salariati
WHERE UPPER(nume) ='ENE' AND UPPER(pren) ='DAN
76. Care este);comanda corecta care afiseaza numele cititorilor care au carti nerestituite?
a. SELECT nume_cititor
FROM imprumuta
WHERE data_restituirii = NULL;
b. SELECT nume_cititor
FROM imprumuta
WHERE data_restituirii IS NOT NULL;
c. SELECT nume_cititor
FROM imprumuta
WHERE data_restituirii IS NULL;
d. SELECT nume_cititor
FROM imprumuta
WHERE data_restituirii > SYSDATE;
77. Care este comanda corecta care sterge valoarea coloanei salariu pentru angajatii care sunt angajati cu contract
de colaborare?

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,
a. SELECT in ordine
nume crescatoare a salariului?
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);