Sunteți pe pagina 1din 16

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
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
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
Fals
13. Care este comanda corecta pentru a afisa numele, prenumele si varsta
salariatilor, iar
pentru cei care au varsta necunoscuta sa apara textul “varsta necunoscuta”?
SE LECT nume, prenume, NVL(varsta, ‘varsta necunoscuta’)
FROM salariat;
SELECT nume, prenume, NVL(TO_CHAR(varsta), ‘varsta necunoscuta’)
FROM salariat;
SE LECT nume, prenume, NVL(CHAR(varsta), ‘varsta necunoscuta’)
FROM salariat;
SE LECT nume, prenume, NVL2(TO_CHAR(varsta), ‘varsta necunoscuta’)
FROM salariat;
14. Care comanda afiseaza numarul de angajati din fiecare departament?
SE LECT cod_departament, COUNT(*)
FROM salariat;
SE LECT cod_departament, SUM(cod_ angajat)
FROM salariat
GROUP BY cod_departament;
SELECT cod_ departament, COUNT(*)
FROM salariat
GROUP BY cod_departament;
SE LECT cod_departament, COUNT()
FROM salariat
GROUP BY cod_departament;
15. Pentru a introduce in tabelul SALARIAT
COD _ ANG
NUME
PRENUME
DATA_ ANG
VARSTA
SALARIU
not null
numeric de 5
sircaractere
de maxim 20
sir caractere
de maxim 20
date, valoare
implicita data
curentã
numeric de 2
valoare
implicita 0
numar de 10
cu 2 zecimale
doua coloane: Cod_Funct si Email ce varianta folosim?
ALTER TABLE SALARIAT ADD Cod_Funct NUMBER(2), ALTER COLUMN ADD Email char(25);
ALTER TABLE SALARIAT ADD Cod_Funct NUMBER(2), ADD Email CHAR(25);
ALTER TABLE SALARIAT ADD (Cod_Funct NUMBER(2) , Email CHAR(25));
ALTER TABLE SALARIAT ADD Cod_Funct NUMBER(2), ALTER ADD Email char(25);
16. 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?
CRE ATE TABLE SALARIAT_1
SE LECT * FROM SALARIAT WHERE SALARIU>100;
CREATE TABLE SALARIAT_ 1 AS
SELECT * FROM SALARIAT WHERE SALARIU>100;
CRE ATE TABLE SALARIAT_1 AS
SE LECT FROM SALARIAT WHERE SALARIU>100;
CRE ATE TABLE SALARIAT_1 AS
SE LECT COD_ANG, SALARIU FROM SALARIAT WHERE SALARIU>100;
17. Pentru a modifica dimensiunea coloanei prenume la 30 si pe cea a salariului la
12 cu 3
zecimale, 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
care varienta este corecta?
ALTER TABLE SALARIAT
MODIFY (prenume VARCHAR2(30) salariu NUMBER(12,3));
ALTER TABLE SALARIAT
MODIFY (prenume VARCHAR2(30)), MODIFY(salariu NUMBE R(12,3));
ALTER TABLE SALARIAT
MODIFY (prenume VARCHAR2(30) , salariu NUMBER(12,3));
ALTER TABLE SALARIAT
ADD (prenume VARCHAR2(30), salariu NUMBER(12,3));
18. Care este varianta corecta pentru a crea tabelul Salariat, cu caracteristicile de
mai jos?
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
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);
CRE ATE 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);
CRE ATE TABLE SALARIAT (
cod_ ang NUMBER(5) NOT NULL,
nume VARCHAR2(20),
prenume VARCHAR2(20),
data_ angajarii DATE, DE FAULT SYSDATE ,
varsta NUMBER(2),
email CHAR(50),
salariu NUMBER(10,2), DE FAULT 0);
19. Care varianta este corecta pentru a redenumi tabelul SALARIAT cu numele
SALARIATI?
RENAME SAL ARIAT TO SALARIATI;
RENAME SALARIAT WITH SALARIATI;
RENAME TABLE SALARIAT TO TABLE SALARIATI;
RENAME TABLE SALARIAT WITH TABLE SALARIATI;
20. Care ste comanda corecta care afiseaza codul departamentelor pentru care
salariul
minim depaseste 5000$?
SELECT cod_departament
FROM salariat
WHERE MIN(salariu)>5000
GROUP BY cod_departament;
SE LECT cod_departament
FROM salariat
GROUP BY cod_departament
HAVING MIN(salariu)>5000;
SE LECT cod_departament
FROM salariat
GROUP 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?
SELECT nume_ cititor
FROM imprumuta
WHERE data_ restituirii = NULL;
SE LECT nume_cititor
FROM imprumuta
WHERE data_ restituirii IS NOT NULL;
SELECT nume_ cititor
FROM imprumuta
WHERE data_ restituirii IS NULL;
SE LECT nume_cititor
FROM imprumuta
WHERE data_ restituirii > SYSDATE;
6-Care comanda nu defineste corect un tabel?
CREATE TABLE [schema.]nume_ tabel (
nume_coloana tip_de_date [DEFAULT expr], ...);
CREATE TABLE nume_ tabel [(col1, col2...)]
AS subcerere;
CREATE TABLE [schema.]nume_ tabel (
nume_ coloana tip_de_date, [DEFAULT expr], [constrangere_de_coloana], ...);
CREATE TABLE [schema.]nume_ tabel (
nume_coloana tip_de_date [DEFAULT expr] [constrangere_ de_coloana], ...
..[constrangere la nivel de tabel])
8-Ce comanda creeaza corect tabelul SALARIAT, specificand constrangerile
COD _ ANG NUME PRENUME DATA_ANG VARSTA EMAIL SALARIU
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?
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));
CREATE TABLE salariat(
cod_ ang NUMBER(5) PRIMARY KE Y,
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));
CREATE TABLE salariat(
cod_ ang NUMBER(5) PRIMARY KE Y,
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));
9-Care este comanda corecta care afiseaza numele si salariul angajatilor condusi direct de
‘ENE
DAN’?
SELECT nume, salariu
FROM salariati
WHERE cod_manager = (SELE CT cod_manager FROM salariati
WHERE UPPER(nume) ='ENE ' , UPPER(pren) ='DAN' );
SE LECT nume, salariu
FROM salariati
WHERE cod_manager = (SELE CT cod_ang FROM salariati
WHERE nume ='ENE' , pren ='DAN' );
SE LECT nume, salariu
FROM salariati
(SE LECT cod_ang FROM salariati
WHERE UPPER(nume) ='ENE ' AND UPPER(pren) ='DAN' );
SELECT nume, salariu
FROM salariati
WHERE cod_manager = (SELECT cod_ ang FROM salariati
WHERE UPPER(nume) ='ENE' AND UPPER(pren) ='DAN' );
10. Care este comanda corecta care afiseaza numarul total al cartilor imprumutate in anul
2008?
SELECT COUNT()
FROM imprumuta
WHERE TO_CHAR(data_ imprumutului,’yyyy’)=2008;
SELECT COUNT(*)
FROM imprumuta
WHERE TO_CHAR(data_ imprumutului,’yyyy’)=2008;
SE LECT COUNT(*)
FROM imprumuta
WHERE data_ imprumutului=2008;
SE LECT COUNT(*)
FROM imprumuta
WHERE TO_CHAR(data_ imprumutului,’yy’)=2008;
14-Care comanda listeaza numele tuturor angajatilor care au a treia litera din nume 'a'?
SELECT nume
FROM salariat
WHERE nume LIKE '_ _a$';
SELECT nume
FROM salariat
WHERE nume LIKE '%a%';
SELECT nume
FROM salariat
WHERE nume LIKE '__ a%';
15-Care este comanda corecta care afiseaza toate departamentele care platesc salariatilor
sai o
suma mai mare ca 20000?
SELECT nume_ departament
FROM departament
WHERE 20000<
(SE LECT sum(salariu) FROM salariat);
SE LECT nume_departament
FROM departament A
WHERE 20000<
(SE LECT sum(salariu) FROM salariat B
where cod_ departament=cod_departament);
SE LECT nume_departament
FROM departament
WHERE 20000<
(SE LECT sum(salariu) FROM salariat
where A.cod_ departament=B.cod_departament);
SELECT nume_departament
FROM departament A
WHERE 20000<
(SELECT sum(salariu) FROM salariat B
where A.cod_departament=B.cod_departament);
18-Care este comanda corecta care afiseaza codul departamentelor, numele
departamentelor si
suma salariilor pentru fiecare departament?
SELECT cod_ departament, nume_departament, SUM(salariu)
FROM salariati s, departamente d
GROUP BY cod_departament, nume_departament;
SE LECT cod_departament, nume_ departament, SUM(salariu)
FROM salariati s, departamente d
WHERE s.cod_ departament=d.cod_departament
GROUP BY cod_departament;
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;
SE LECT cod_departament, nume_ departament, SUM(salariu)
FROM salariati, departamente
WHERE s.cod_ departament=d.cod_departament
GROUP BY cod_departament, nume_departament;
19-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’?
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 department
WHERE nume_depart = ‘Contractari’);
SE LECT nume, salariu, cod_depart
FROM salariati
WHERE salariu IS IN (SELECT salariu FROM salariati s, department d
WHERE s.cod_ depart = d.cod_ depart , nume_ depart = ‘Contractari’)
AND cod_depart<> (SELECT cod_depart FROM department
WHERE nume_depart = ‘Contractari’);
SE LECT 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 department
WHERE nume_depart = ‘Contractari’);
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;