Sunteți pe pagina 1din 19

1.

Care este forma corecta pentru a adauga constrangeri la nivel de coloana si /sau la nivel
de tabel?

CREATE TABLE [schema.]nume_tabel (


nume_coloana tip_de_date, [DEFAULT expr] [constrangere_de_coloana], ...
..[constrangere la nivel de tabel])

CREATE TABLE [schema.]nume_tabel (


nume_coloana tip_de_date [DEFAULT expr], [constrangere_de_coloana] ...
..[constrangere la nivel de tabel])

CREATE TABLE [schema.]nume_tabel (


nume_coloana tip_de_date, [DEFAULT expr], [constrangere_de_coloana], ...
..[constrangere la nivel de tabel])

CREATE TABLE [schema.]nume_tabel (


nume_coloana tip_de_date [DEFAULT expr] [constrangere_de_coloana], ...
..[constrangere la nivel de tabel])

2. Care este comanda corecta care determina marirea salariul tuturor angajatilor din tabelul
salariat cu 5%?

UPDATE salariu
SET salariu = salariu * 1.05;

UPDATE salariat
SET salariu = salariu * 1.05;

UPDATE salariat
SET salariu = 1.05;

UPDATE salariat
SET salariu = salariu + salariu* 1.05;

3. Care este comanda corecta care insereaza in tabelul TOTALURI(cod_departament,


numar_angajati, suma_salarii)?

INSERT INTO totaluri


SELECT cod_departament, COUNT(*),SUM(salariu)
FROM salariat
GROUP BY cod_departament;

INSERT INTO totaluri


SELECT cod_departament, SUM(cod_angajat),SUM(salariu)
FROM salariat
GROUP BY cod_departament;

INSERT INTO totaluri


SELECT cod_departament, COUNT(*),SUM(salariu)
FROM salariat;

INSERT INTO totaluri


SELECT cod_departament, COUNT(),SUM(salariu)
FROM salariat
ORDER BY cod_departament;

4. Care comanda afiseaza numele angajatilor, fara duplicate, care au manager?

SELECT DISTINCT nume


FROM salariat
WHERE manager IS NOT NULL;

SELECT DISTINCT nume


FROM salariat
WHERE manager IS NULL;

SELECT nume
FROM salariat
WHERE manager IS NOT NULL;

SELECT DISTINCT nume


FROM salariat
WHERE manager != NULL;

5. Care este comanda corecta care pentru fiecare facultate, se insereaza in tabelul
SALARII(cod_fac, nr_prof, total_sal_fac) numarul de profesori si suma salariilor pe care
facultatea o plateste profesorilor sai?

INSERT TO TOTALURI
SELECT COD_FAC, COUNT(*) , SUM(SALARIU)
FROM PROF ORDER BY COD_FAC;

INSERT INTO TOTALURI


SELECT COD_FAC, COUNT(*) , SUM(SALARIU)
FROM PROF ;

INSERT INTO TOTALURI


SELECT COD_FAC, COUNT(*) , SUM(SALARIU)
FROM PROF GROUP BY COD_FAC;

INSERT INTO totaluri


SELECT COD_FAC, SUM(COD_PROF),SUM(SALARIU)
FROM PROF
GROUP BY COD_FAC;
6. Care secventa este corecta pentru a afisa citi angajati nu au o valoare introdusa pe
coloana salariu?

SELECT COUNT()
FROM salariati
WHERE SALARIU =0;

SELECT COUNT(*)
FROM salariati
WHERE SALARIU =NULL;

SELECT COUNT(*)
FROM salariati
WHERE SALARIU IS NOT NULL;
SELECT COUNT(*)
FROM salariati
WHERE SALARIU IS NULL;

7. Care este comanda corecta care determina dublarea salariilor cu rotunjire la 2 zecimale a
angajatilor care sunt titulari?

UPDATE salariat
SET salariu=ROUND(salariu*2,2);

UPDATE salariat
SET salariu=ROUND(salariu*2)
WHERE titular =’y’;

UPDATE salariat
SET salariu=ROUND(salariu*2,2)
WHERE titular =’y’;

UPDATE salariat
SET salariu=ROUND(salariu*0.5,2)
WHERE titular =’y’;

8. Care este comanda corecta care afiseaza numele salariatilor care castiga mai mult decat
salariul mediu pe companie, in ordine crescatoare a salariului?

SELECT nume
FROM salariati
WHERE salariu >AVG(salariu);

SELECT nume
FROM salariati
WHERE salariu > (SELECT AVG(salariu) FROM salariati)
ORDER BY salariu;
SELECT nume
FROM salariati
WHERE salariu > (SELECT AVG(salariu) FROM salariati
ORDER BY salariu);

SELECT nume
FROM salariati
WHERE salariu > (SELECT AVG(salariu) FROM salariati)
ORDER BY 1;

9. Ce comanda modifica in tabelul SALARIAT

COD _ANG NUME PRENUME DATA_ANG VARSTA EMAIL SALARIU

not null sir de sir date, numeric de sir de valoare


numeric de caractere caractere valoare 2 caractere implicita 0
5 de de maxim implicita de numar de
maxim 20 20 data dimensiune 10 cu 2
curentã fixa, de 30 zecimale

dimensiunea coloanei nume la 30 si pe cea a coloanei salariu la 12 cu 3 zecimale?

ALTER TABLE salariat


MODIFY nume VARCHAR2(30), salariu NUMBER(12,3);

ALTER TABLE salariat


MODIFY nume VARCHAR2(30), salariu NUMBER(12,3);

ALTER TABLE salariat


MODIFY nume VARCHAR2(30), MODIFY salariu NUMBER(12,3);

ALTER TABLE salariat


MODIFY (nume VARCHAR2(30), salariu NUMBER(12,3));

10. Care este comanda corecta care sterge valoarea coloanei salariu pentru angajatii care
sunt angajati cu contract de colaborare?

DELETE salariu
FROM salariati
WHERE contract=’colaborare’;

UPDATE salariati
SET salariu IS null
WHERE contract=’colaborare’;
DROP salariu
FROM salariati
WHERE contract=’colaborare’;

UPDATE salariati
SET salariu=null
WHERE contract=’colaborare’;

11. Care este comanda incorecta care afiseaza numele, salariul si varsta pentru toti salariatii
care castiga mai mult de 1000, rezultatul fiind sortat descendent dupa salariu, iar pentru cei
care au acelasi salariu in ordine crescatoare dupa nume?

SELECT nume, salariu, varsta


FROM salariat
WHERE salariu>1000
ORDER BY salariu DESC nume ASC;

SELECT nume, salariu, varsta


FROM salariat
WHERE salariu>1000
ORDER BY salariu DESC, nume ASC;

SELECT nume, salariu, varsta


FROM salariat
WHERE salariu>1000
ORDER BY salariu DESC, nume;

SELECT nume, salariu, varsta


FROM salariat
WHERE salariu>1000
ORDER BY 2 DESC, 1 ASC;

12. Actualizarile realizate asupra tabelelor de baza ale unei vizualizari se reflecta totdeauna
in vizualizare

Adevărat
F als

13. C are es te comanda corec ta pentru a afis a numele, prenumele s i vars ta salariatilor, iar
pentru c ei care au vars ta nec unoscuta s a apara textul “vars ta necunos cuta”?

S E LE CT nume, prenume, NVL(varsta, ‘varsta necunoscuta’)


F R OM salariat;

SE LE CT nume, prenume, NVL(TO_ CHAR(vars ta), ‘varsta necunos cuta’)


FROM s alariat;

S E LE CT nume, prenume, NVL(C HAR (varsta), ‘varsta necunoscuta’)


F R OM salariat;
S E LE CT nume, prenume, NVL2(TO_ CHAR (varsta), ‘varsta necunoscuta’)
F R OM salariat;

14. C are comanda afiseaza numarul de angajati din fiecare departament?

S E LE CT cod_ departament, C OUNT(*)


F R OM salariat;

S E LE CT cod_ departament, S UM(cod_ angajat)


F R OM salariat
GR OUP BY cod_ departament;

SE LE CT c od_ departament, C OUNT(*)


FROM s alariat
GROUP BY cod_ departament;

S E LE CT cod_ departament, C OUNT()


F R OM salariat
GR OUP BY cod_ departament;

15. Pentru a introduce in tabelul S AL AR IAT

COD _ ANG NUME PR E NUME DATA_ ANG VAR S T A S ALAR IU

not null sircaractere sir caractere date, valoare numeric de 2 valoare


numeric de 5 de ma xim 20 de ma xim 20 implicita data implicita 0
curentã numar de 10
cu 2 zecimale

doua coloane: Cod_ Funct s i E mail ce varianta folos im?

ALTE R T ABLE S ALAR IAT ADD Cod_ F unct NUMBE R (2), ALTE R C OLUMN ADD E mail char(25);

ALTE R T ABLE S ALAR IAT ADD Cod_ F unct NUMBE R (2), ADD E mail CHAR (25);

AL TE R TABLE S AL AR IAT ADD (C od_ F unc t NUMB E R(2) , E mail C HAR(25));

ALTE R T ABLE S ALAR IAT ADD Cod_ F unct NUMBE R (2), ALTE R ADD E mail char(25);

16. C e c omanda c reeaza tabelul S AL AR IAT_ 1 care sã aiba aceeias i s tructura cu


tabelul S AL AR IAT

COD _ANG NUME PRENUME DATA_ANG VARSTA EMAIL SALARIU

not null sir de sir date, numeric de sir de valoare


numeric de caractere caractere valoare 2 caractere implicita 0
5 de de maxim implicita de numar de
maxim 20 20 data dimensiune 10 cu 2
curentã fixa, de 30 zecimale

s i s a c ontina salariatii c are au salariu >100?

CR E ATE T ABLE S ALAR IAT_ 1


S E LE CT * FR OM S ALAR IAT WHE R E S AL AR IU>100;

CRE ATE TABLE S AL AR IAT_ 1 AS


SE LE CT * FROM S AL AR IAT WHE R E S AL AR IU>100;

CR E ATE T ABLE S ALAR IAT_ 1 AS


S E LE CT FR OM S ALAR IAT WHE R E S AL AR IU>100;

CR E ATE T ABLE S ALAR IAT_ 1 AS


S E LE CT C OD_ ANG , S AL AR IU F R OM S ALAR IAT WHE R E S ALAR IU>100;

17. Pentru a modifica dimens iunea coloanei prenume la 30 s i pe cea a salariului la 12 cu 3


zecimale, din tabelul S AL AR IAT

COD _ANG NUME PRENUME DATA_ANG VARSTA EMAIL SALARIU

not null sir de sir date, numeric de sir de valoare


numeric de caractere caractere valoare 2 caractere implicita 0
5 de de maxim implicita de numar de
maxim 20 20 data dimensiune 10 cu 2
curentã fixa, de 30 zecimale

care varienta es te corecta?

ALTE R T ABLE S ALAR IAT


MODIF Y (prenume VAR CHAR 2(30) salariu NUMBE R (12,3));

ALTE R T ABLE S ALAR IAT


MODIF Y (prenume VAR CHAR 2(30)), MODIF Y (salariu NUMBE R (12,3));
AL TE R TABLE S AL AR IAT
MODIFY (prenume VARCHAR2(30) , s alariu NUMBE R(12,3));

ALTE R T ABLE S ALAR IAT


ADD (prenume VAR CHAR 2(30), salariu NUMBE R (12,3));

18. C are es te varianta c orecta pentru a c rea tabelul Salariat, cu carac teris ticile de mai jos?

COD _ANG NUME PRENUME DATA_ANG VARSTA EMAIL SALARIU

not null sir de sir date, numeric de sir de valoare


numeric de caractere caractere valoare 2 caractere implicita 0
5 de de maxim implicita de numar de
maxim 20 20 data dimensiune 10 cu 2
curentã fixa, de 30 zecimale

CRE ATE TABLE S AL AR IAT (


c od_ ang NUMBE R (5) NOT NULL,
nume VARCHAR 2(20),
prenume VARCHAR2(20),
data_ angajarii DATE DE FAULT SYSDATE ,
vars ta NUMBE R(2),
email C HAR(50),
s alariu NUMBE R (10,2) DE FAULT 0);

CR E ATE T ABLE S ALAR IAT (


cod_ ang NUMB E R (5)
nume VAR CHAR 2(20),
prenume VAR C HAR 2(20),
data_ angajarii DAT E ,
varsta NUMBE R (2),
email C HAR (50),
salariu NUMB E R (10,2) DE F AULT 0);

CR E ATE T ABLE S ALAR IAT (


cod_ ang NUMB E R (5) NOT NULL ,
nume VAR CHAR 2(20),
prenume VAR C HAR 2(20),
data_ angajarii DAT E , DE FAULT S YS DATE ,
varsta NUMBE R (2),
email C HAR (50),
salariu NUMB E R (10,2), DE F AULT 0);

19. C are varianta es te c orecta pentru a redenumi tabelul S AL AR IAT c u numele


S AL AR IATI?

RE NAME S AL AR IAT TO S AL AR IATI;


R E NAME S ALAR IAT WITH S ALAR IAT I;
R E NAME T ABLE S ALAR IAT T O T ABL E S AL AR IAT I;
R E NAME T ABLE S ALAR IAT WITH T ABLE S ALAR IAT I;

20. C are s te comanda c orecta care afis eaza codul departamentelor pentru care s alariul
minim depases te 5000$?

SE LE CT cod_ departament
FROM s alariat
WHE R E MIN(s alariu)>5000
GROUP BY cod_ departament;

S E LE CT cod_ departament
F R OM salariat
GR OUP BY cod_ departament
HAVING MIN(salariu)>5000;

S E LE CT cod_ departament
F R OM salariat
GR OUP BY cod_ departament
MIN(salariu)>5000;
ALTE SUBIECTE TIMISOARA

Care este comanda corecta care afiseaza numele si salariul angajatilor condusi direct de
Ionescu Mihai?

SELECT nume, salariu


FROM salariati
WHERE cod_sef = (SELECT cod_angajat FROM salariati
WHERE nume ='Ionescu' AND prenume ='Mihai' );

SELECT nume, salariu


FROM salariati
WHERE cod_sef = (SELECT cod_angajat FROM salariati
WHERE nume ='Ionescu', prenume ='Mihai' );
SELECT nume, salariu
FROM salariati
WHERE cod_sef = ‘Ionescu Mihai';
SELECT nume, salariu
FROM salariati
WHERE cod_sef != (SELECT cod_angajat FROM salariati
WHERE nume ='Ionescu' AND prenume ='Mihai' );

Ce comanda sterge din tabelul SALARIAT

COD _ANG NUME PRENUME DATA_ANG VARSTA EMAIL SALARIU


not null numeric de 5 sir de
caractere de
maxim 20 sir caractere de maxim 20 date, valoare implicita data curentã numeric de 2 sir de
caractere de dimensiune fixa, de 30 valoare implicita 0
numar de 10 cu 2 zecimale

coloana nume si coloana salariu?

ALTER TABLE SALARIAT


DROP nume, salariu;
ALTER TABLE SALARIAT
DROP COLUMN (nume, salariu);
ALTER TABLE SALARIAT
DROP (nume, salariu);
ALTER TABLE SALARIAT
DROP COLUMN nume, COLUMN salariu;

Care este comanda corecta care afiseaza numele salariatilor care lucreaza in departamentul
3 si au salariul >100 sau care sunt din departamentul 5 si au salariul <200?
SELECT nume
FROM salariat
WHERE (cod_deptartament=3 OR salariu>100) AND (cod_deptartament=5 OR salariu<200);
SELECT nume
FROM salariat
WHERE (cod_deptartament=3 AND salariu>100) OR (cod_deptartament=5 AND salariu<200);
SELECT nume
FROM salariat
WHERE (cod_deptartament=3 AND salariu>100) AND (cod_deptartament=5 AND
salariu<200);
SELECT nume
FROM salariat
WHERE (cod_deptartament=3 AND salariu>100) OR (cod_deptartament=5 OR salariu<200);

Care dintre urmatoarele comenzi intoarce numarul zilei din luna carespunzator datei
curente?
SELECT TO_CHAR(SYSDATE,’DDD’)
FROM dual;
SELECT TO_CHAR(SYSDATE,’DAY’)
FROM dual;
SELECT TO_CHAR(SYSDATE,’D’)
FROM dual;
SELECT TO_CHAR(SYSDATE,’DD’)
FROM dual;

Care este comanda corecta care afiseaza numele salariatilor si numele departamentelor in
care lucreaza, inclusiv departamentele in care nu lucreaza salariati?

SELECT nume_salariat, nume_departament


FROM salariati s, departamente d
WHERE s.cod_departament = d.cod_departament;
SELECT nume_salariat, nume_departament
FROM salariati s, departamente d
WHERE s.cod_departament(+) = d.cod_departament;
SELECT nume_salariat, nume_departament
FROM salariati s, departamente d
WHERE s.cod_departament = d.cod_departament(+);
SELECT nume_salariat, nume_departament
FROM salariati s, departamente d
WHERE s.cod_departament(+) = d.cod_departament(+);

Pentru a insera in tabelul SALARIAT inregistrari,

COD _ANG NUME PRENUME DATA_ANG VARSTA EMAIL SALARIU


not null numeric de 5 sir caractere de maxim 20 sir caractere de maxim 20 date, valoare
implicita data curentã numeric de 2 sir de
caractere de dimensiune fixa, de 30 valoare implicita 0
numar de 10 cu 2 zecimale

care varianta este incorecta?


INSERT INTO SALARIAT(COD _ANG, NUME,PRENUME,DATA_ANG,VARSTA,EMAIL, SALARIU)
VALUES(5, ‘Ene’, ‘Ana’, ‘1/06/2009’, 20, ‘INTERZIS PE FORUM CU ADRESE DE EMAIL.com’, 2500.50)

INSERT INTO SALARIAT(COD _ANG, NUME,PRENUME, VARSTA, EMAIL) VALUES(5, ‘Ene’, ‘Ana’, 20,
‘INTERZIS PE FORUM CU ADRESE DE EMAIL.com’)

INSERT INTO SALARIAT(COD _ANG, NUME,PRENUME,VARSTA,EMAIL, SALARIU) VALUES(5,


‘Ene’, ‘Ana’, ‘1/06/2009’, 20, ‘INTERZIS PE FORUM CU ADRESE DE EMAIL.com’)

INSERT INTO SALARIAT


VALUES(5, ‘Ene’, ‘Ana’, ‘1/06/2009’, 20, ‘INTERZIS PE FORUM CU ADRESE DE EMAIL.com’, 2500.50)

Ce comanda creeaza tabelul SALARIAT_1 care sã aiba aceeiasi structura cu


tabelul SALARIAT

COD _ANG NUME PRENUME DATA_ANG VARSTA EMAIL SALARIU


not null numeric de 5 sir de
caractere de
maxim 20 sir caractere de maxim 20 date, valoare implicita data curentã numeric de 2 sir de
caractere de dimensiune fixa, de 30 valoare implicita 0
numar de 10 cu 2 zecimale

si sa contina salariatii care au salariu >100?

CREATE TABLE SALARIAT_1


SELECT * FROM SALARIAT WHERE SALARIU>100;
CREATE TABLE SALARIAT_1 AS
SELECT * FROM SALARIAT WHERE SALARIU>100;
CREATE TABLE SALARIAT_1 AS
SELECT FROM SALARIAT WHERE SALARIU>100;
CREATE TABLE SALARIAT_1 AS
SELECT COD_ANG, SALARIU FROM SALARIAT WHERE SALARIU>100;

Care este comanda nu elimina simultan spatiile de la inceputul si sfarsitul coloanei nume?
SELECT TRIM(nume)
FROM salariat;
SELECT RTRIM(LTRIM(nume))
FROM salariat;
SELECT LTRIM(RTRIM(nume))
FROM salariat;
SELECT LTRIM(nume)
FROM salariat;

2. Care este comanda corecta care afiseaza toate functiile pe care nu lucreaza angazatii?

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)

Raspuns D.

ALTE TESTE

3-Care este comanda corecta care afiseaza numele cititorilor care au carti nerestituite?
S E L E CT nume_ cititor
F R OM imprumuta
WHE R E data_ restituirii = NULL ;

S E LE CT nume_ cititor
F R OM imprumuta
WHE R E data_ restituirii IS NOT NULL;

SE LE CT nume_ cititor
FROM imprumuta
WHE R E data_ res tituirii IS NULL;

S E LE CT nume_ cititor
F R OM imprumuta
WHE R E data_ restituirii > S YS DAT E ;

6-Care c omanda nu defineste corect un tabel?

C R E AT E T ABL E [schema.]nume_ tabel (


nume_ coloana tip_ de_ date [DE F AULT expr], ...);

C R E AT E T ABLE nume_ tabel [(col1, col2...)]


AS subcerere;

C RE ATE TABLE [sc hema.]nume_ tabel (


nume_ coloana tip_ de_ date, [DE FAULT expr], [cons trangere_ de_ coloana], ...);

C R E AT E T ABLE [schema.]nume_ tabel (


nume_ coloana tip_ de_ date [DE F AULT expr] [constrangere_ de_ coloana], ...
..[constrangere la nivel de tabel])

8-Ce comanda creeaza corect tabelul S ALAR IAT , specificand constrangerile

COD _ ANG NUME P R E NUME DATA_ ANG VAR S TA E MAIL S AL AR IU


cheie primara numeric de 5 not null
sir decaractere demaxim 20 sir caractere de maxim 20 date, valoare
implicita data curentã numeric de 2 unic sir de caractere de dimensiune fixa , de 30 > 0
numar de 10 cu 2 zecimale
coloana nume si coloana salariu?

C RE ATE TAB LE salariat(


c od_ ang NUMBE R (5) PRIMAR Y KE Y,
nume VARCHAR 2(20) NOT NUL L,
prenume VARCHAR2(20),
data_ ang DATE DE F AULT SYSDATE ,
vars ta NUMBE R(2),
email C HAR(30) UNIQUE ,
s alariu NUMBE R (10,2) C HE CK (salariu > 0));

C R E AT E T ABL E salariat(
cod_ ang NUMB E R (5) PR IMAR Y KE Y ,
nume VAR CHAR 2(20) NOT NULL,
prenume VAR C HAR 2(20),
data_ ang DAT E DE F AULT S YS DATE ,
varsta NUMBE R (2),
email C HAR (30) UNIQUE ,
salariu NUMB E R (10,2) > 0));

C R E AT E T ABLE salariat(
cod_ ang NUMB E R (5) PR IMAR Y KE Y ,
nume VAR CHAR 2(20) NOT NULL,
prenume VAR C HAR 2(20),
data_ ang DAT E DE F AULT S YS DATE ,
varsta NUMBE R (2),
email C HAR (30),
salariu NUMB E R (10,2) C HE C K (salariu > 0));

9-Care este comanda corecta care afiseaza numele si salariul angajatilor condusi direct de ‘E NE
DAN’?

S E L E CT nume, salariu
F R OM salariati
WHE R E cod_ manager = (S E LE CT cod_ manager FR OM salariati
WHE R E UPPE R (nume) ='E NE ' , UPPE R (pren) ='DAN' );

S E LE CT nume, salariu
F R OM salariati
WHE R E cod_ manager = (S E LE CT cod_ ang F R OM salariati
WHE R E nume ='E NE ' , pren ='DAN' );

S E LE CT nume, salariu
F R OM salariati
(S E LE CT cod_ ang FR OM salariati
WHE R E UPPE R (nume) ='E NE ' AND UPPE R (pren) ='DAN' );

SE LE CT nume, s alariu
FROM s alariati
WHE RE cod_ manager = (SE LE CT c od_ ang FROM salariati
WHE RE UPPE R (nume) ='E NE ' AND UPPE R(pren) ='DAN' );

10. C are este comanda corecta care afiseaza numarul total al cartilor imprumutate in anul 2008?

S E L E CT COUNT()
F R OM imprumuta
WHE R E TO_ C HAR (data_ imprumutului,’yyyy’)=2008;

SE LE CT C OUNT(*)
FROM imprumuta
WHE R E TO_ C HAR(data_ imprumutului,’yyyy’)=2008;

S E LE CT C OUNT (*)
F R OM imprumuta
WHE R E data_ imprumutului=2008;

S E LE CT C OUNT (*)
F R OM imprumuta
WHE R E TO_ C HAR (data_ imprumutului,’yy’)=2008;

14-C are comanda listeaza numele tuturor angajatilor care au a treia litera din nume 'a'?

S E L E CT nume
F R OM salariat
WHE R E nume L IK E '_ _ a$';

S E LE C T nume
F R OM salariat
WHE R E nume L IK E '%a%';

S E LE C T nume
F ROM s alariat
WHE RE nume LIKE '_ _ a%';

15-C are este comanda corecta care afiseaza toate departamentele care platesc salariatilor sai o
suma mai mare ca 20000?

S E L E CT nume_ departament
F R OM departament
WHE R E 20000<
(S E LE CT sum(salariu) FR OM salariat);

S E LE CT nume_ departament
F R OM departament A
WHE R E 20000<
(S E LE CT sum(salariu) FR OM salariat B
where cod_ departament=cod_ departament);

S E LE CT nume_ departament
F R OM departament
WHE R E 20000<
(S E LE CT sum(salariu) FR OM salariat
where A.cod_ departament=B.cod_ departament);

SE LE CT nume_ departament
FROM departament A
WHE RE 20000<
(SE LE CT s um(salariu) FROM s alariat B
where A.cod_ departament=B.cod_ departament);

18-C are este comanda corecta care afiseaza codul departamentelor, numele departamentelor si
suma salariilor pentru fiecare departament?

S E L E CT cod_ departament, nume_ departament, S UM(salariu)


F R OM salariati s , departamente d
GR OUP BY cod_ departament, nume_ departament;

S E LE CT cod_ departament, nume_ departament, S UM(salariu)


F R OM salariati s , departamente d
WHE R E s.cod_ departament=d.cod_ departament
GR OUP BY cod_ departament;

SE LE CT cod_ departament, nume_ departament, SUM(salariu)


FROM s alariati s , departamente d
WHE R E s .cod_ departament=d.cod_ departament
GROUP BY cod_ departament, nume_ departament;

S E LE CT cod_ departament, nume_ departament, S UM(salariu)


F R OM salariati, departamente
WHE R E s.cod_ departament=d.cod_ departament
GR OUP BY cod_ departament, nume_ departament;

19-C are este comanda corecta care sa afiseze daca exista angajati care nu lucreaza in
departamentul ‘C ontractari’ s i al caror salariu coincide cu salariul unui angajat din departamentul
‘C ontractari’?

SE L E CT nume, s alariu, cod_ depart


F ROM s alariati
WHE R E salariu IN (SE L E CT s alariu FROM s alariati s , department d
WHE R E s .cod_ depart = d.cod_ depart AND nume_ depart <> ‘C ontractari’)
AND c od_ depart= (SE LE CT cod_ depart FR OM department
WHE R E nume_ depart = ‘Contrac tari’);

S E LE CT nume, salariu, cod_ depart


F R OM salariati
WHE R E salariu IS IN (S E L E CT salariu FR OM salariati s, department d
WHE R E s.cod_ depart = d.cod_ depart , nume_ depart = ‘Contractari’)
AND cod_ depart<> (S E LE CT cod_ depart F R OM department
WHE R E nume_ depart = ‘C ontractari’);

S E LE CT nume, salariu, cod_ depart


F R OM salariati
WHE R E (salariu) IN (S E LE CT salariu F R OM salariati s, department d
WHE R E s.cod_ depart = d.cod_ depart AND nume_ depart = ‘C ontractari’)
AND cod_ depart<> (S E LE CT cod_ depart F R OM department
WHE R E nume_ depart = ‘C ontractari’);
teste fotografii care nu se regasesc mai sus
1.Care este comanda corecta care afiseaza numarul total de carti dintr-o biblioteca pentru
fiecare domeniu:

SELECT cod_domeniu, COUNT(numar_exemplare)


FROM biblioteca
GROUP BY cod_domeniu;

SELECT cod_domeniu, SUM(numar_exemplare)


FROM biblioteca
GROUP BY cod_domeniu;

SELECT cod_domeniu, SUM(cod_carte)


FROM biblioteca
GROUP BY cod_domeniu;

SELECT cod_domeniu, COUNT(*)


FROM biblioteca
GROUP BY cod_domeniu;

2.Pentru tabelul salariat


cod_depart cod_ang# nume pren salariu cod_funct

care este comanda corecta, pentru a modifica salariul la 3000, pentru angajatii care lucreaza
in departamentul 10 si au salariul <3000?

UPDATE salariat SET salariu=3000


WHERE cod_depart=10 AND salariu<3000;

MODIFY salariat SET salariu=3000


WHERE cod_depart=10, salariu<3000;

UPDATE salariat SET cod_depart=10 AND salariu<3000


WHERE salariu=3000;

MODIFY salariat SET salariu=3000


WHERE cod_depart=10 AND salariu<3000;

3.Care este comanda corecta care listeaza numele ale functiilor care exista in departamentul
30, fara duplicate

SELECT DISTINCT nume_functie


FROM salariati s, functii f
WHERE cod_functie=cod_functie
AND cod_departament=30;
SELECT DISTINCT nume_functie
FROM salariati s, functii f
WHERE s.cod_functie=f.cod_functie
AND cod_departament=30;

SELECT DISTINCT nume_functie


FROM salariati, functii f
WHERE s.cod_functie=f.cod_functie
AND cod_departament=30;

SELECT nume_functie
FROM salariati s, functii f
WHERE s.cod_functie=f.cod_functie
AND cod_departament=30;

4.Care este comanda corecta care determina micsorarea salariilro cu 10%, cu rotunjire la 2
zecimale, a angajatilor care sunt titulari

UPDATE salariat
SET salariu=ROUND(salariu*0.9,2);

UPDATE salariat
SET salariu=ROUND(salariu*1,1)
WHERE titular='N';

UPDATE salariat
SET salariu=ROUND(salariu*0.9,2)
WHERE titular='N';

UPDATE salariat
SET salariu=ROUND(salariu*0.1,2)
WHERE titular='Y';

5.O constrangere de tip PRIMARY KEY poate fi declarata numai la nivel de coloana

A/F

6.Efectele unei comenzi DDL pot fi anulate cu o comanda ROLLBACK

A/F

7.Efectele unei comenzi DML pot fi anulate cu o comanda ROLLBACK

A/F
8.Care este comanda corecta care se afiseaza numele si prenumele pentru toti angajatii cu
varsta necunoscuta?

SELECT nume, prenume


FROM salariat
WHERE varsta=NULL;

SELECT nume, prenume


FROM salariat
WHERE varsta IS NULL;

SELECT nume, prenume


FROM salariat
WHERE varsta=0;

SELECT nume, prenume


FROM salariat
WHERE varsta IS NOT NULL;

9.Care este comanda corecta care determina micsorarea salariilro cu 10%, cu rotunjire la 2
zecimale, a angajatilor care NU sunt titulari

UPDATE salariat
SET salariu=ROUND(salariu*0.9,2);

UPDATE salariat
SET salariu=ROUND(salariu*1,1)
WHERE titular='N';

UPDATE salariat
SET salariu=ROUND(salariu*0.9,2)
WHERE titular="N";

UPDATE salariat
SET salariu=ROUND(salariu*0.1,2)
WHERE titular='Y';

10.Pot fi eliminate mai multe coloane dintr-un tabel folosind o singura comanda ALTER
TABLE ... DROP COLUMN

A/F
11.Care este comanda corecta care afiseaza numele si data angajarii pentru salariatii care au
fost angajati dupa angajatul avand codul 10, in ordine descrescatoare a numelui?

SELECT nume, data_angajarii


FROM salariat
WHERE data_angajarii >
(SELECT data_angajarii FROM salariat WHERE cod_angajat = 10);

SELECT nume, data_angajarii


FROM salariat
WHERE data_angajarii >
(SELECT data_angajarii FROM salariat WHERE cod_angajat = 10)
ORDER BY nume;

SELECT nume, data_angajarii


FROM salariat
WHERE data_angajarii >
(SELECT data_angajarii FROM salariat WHERE cod_angajat = 10)
ORDER BY nume DESC;

SELECT nume, data_angajarii


FROM salariat
WHERE data_angajarii >
(SELECT * FROM salariat WHERE cod_angajat = 10)
ORDER BY nume DESC;