Sunteți pe pagina 1din 58

baze_de_date

Probleme pentru examenul de licenta

A
____ 1. O baza de date relationala este
a. O colectie de date interrelationate gestionate ca o singura unitate
b. Un produs software furnizat de un producator de baze de date
c. O structura de date, cum ar fi un tabel, o vizualizare sau un index
d. Definita in acelasi mod de toti producatorii de software
C
____ 2. Un Obiect al unei baze de date este
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
C
____ 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
D
____ 4. Un sistem RDBMS(sistem de gestionare a bazelor de date relatioanale) nu include urmatorul
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)
B
____ 5. Componentele unei baze de date relationale nu includ
a. Tabele
b. Diagrame ERD
c. Restrictii
d. Relatii
B
____ 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
D
____ 7. Normalizarea nu rezolva
a. Anomalia de stergere
b. Anomalia de actualizare
c. Anomalia de inserare
d. Anomalia de creare
B
____ 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
A
____ 9. Prima forma normala rezolva anomaliile cauzate de
a. Grupurile repetitive si atributele multivaloare
b. Dependentele partiale de cheia primara
c. Dependentele tranzitive
d. Relatiile de tip unu-la-mai-multi
8 B 10. A doua forma normala rezolva anomaliile cauzate de
____
a. Grupurile repetitive
b. Dependentele partiale de cheia primara
c. Grupurile repetitive si atributele multi valoare
d. Dependentele tranzitive
9 C 11. A treia forma normala rezolva anomaliile cauzate de
____
a. Dependentele partiale de cheia primara
b. Grupurile repetitive
c. Dependentele tranzitive
d. Atributele multivaloare
D 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ă
10
____B 13. SQL este
a. Un limbaj procedural
b. Un limbaj neprocedural
c.
Un limbaj orientat spre obiecte
d.
Un limbaj grafic, folosit pentru definirea diagramelor ER si a diagramelor
conceptuale
11
____C 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.
A 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
12 D
____ 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
primare asociate.
d. Integritatea referirii. O cheie externa trebuie sa fie ori null in intregime, ori sa
corespunda unei valori a cheii primare asociate.
13 B
____ 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
14 D 18. Care nu este un concept utilizat pentru a descrie formal - uzual - fizic elementele de baza ale
____
organizarii datelor
a. relatie - tablou- fisier
b. tuplu - linie- inregistrare
c. atribut - coloana - camp
d. domeniu - zona- functie
15
____C 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)
16
____A 20. Limbajul de definire a datelor (DDL - Data Definition Language) nu include urmatoarea instructiune
a. DELETE
b. CREATE
c. ALTER
d. DROP
17
____D 21. Limbajul de manipulare a datelor (DML – Data Manipulation Language) nu include instructiuniea
a. INSERT
b.
UPDATE
c.
DELETE
d.
ALTER
B
____ 22. Tipurile de date temporale standard nu includ
a. DATE
b. DATETIME
c. TIME
d. TIMESTAMP
18 D 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
19 A
____ 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
20
____C 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_coloana tip_de_DATA NOT NULL
d. DEFAULT [NULL | NOT NULL]
21 A
____ 26. Sintaxa corecta pentru o restrictie UNIQUE este
a. [CONSTRAINT nume_restrictie] UNIQUE {nume_coloana[,nume coloana...])
b. [CONSTRAINT nume_restrictie] UNIQUE (nume_tabel)
c. nume_coloana REFERENCES UNIQUE nume_tabel
d. DEFAULT UNIQUE (nume_coloana)
22
____D 27. Sintaxa corecta 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)
23 C
____ 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
26
____D 29. Nu este functie SQL standard pentru siruri de caractere
a. UPPER
b. LENGTH sau LEN
c. LOWER
d. LIKE
27
____B 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
D
____ 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
28 A
____ 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 caractere date, valoare sir de caractere implicita 0
not null de maxim
sir caractere de
implicita data
numeric
de dimensiune numar de 10
numeric de 5 20 maxim 20 de 2
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);
29
____C 33. Pentru a insera in tabelul SALARIAT inregistrari,
DATA_AN
COD _ANG NUME PRENUME VARSTA EMAIL SALARIU
G
valoare
sir de
implicita
sir date, valoare caractere
not null caractere de
sir caractere de
implicita data numeric de 2 de
0
numeric de 5 maxim 20 numar de
maxim 20 curentă dimensiune
10 cu 2
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)

30
____B 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)

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));
31
____C 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?
(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));

32
____A 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));
33
____C 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))

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’;
34
____C 38. Pentru a introduce in tabelul SALARIAT
COD DATA_AN
NUME PRENUME VARSTA SALARIU
_ANG G
valoare
implicita
date, valoare
not null sircaractere sir caractere de
implicita data numeric de 2
0
numeric de 5 de maxim 20 maxim 20 curentă
numar de
10 cu 2
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);
35 B
____ 39. Ce comanda creeaza tabelul SALARIAT_1 care să aiba aceeiasi structura cu
tabelul SALARIAT
DATA_AN VARST
COD _ANG NUME PRENUME EMAIL SALARIU
G A
valoare
sir de date, valoare sir de caractere
not null caractere de
sir caractere de
implicita data
numeric
de dimensiune
implicita
numeric de 5 maxim 20 maxim 20 curentă
de 2
fixa, de 30
0
numar de
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;
36 C
____ 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 de
implicita data
numeric de
de
0
numeric de 5 maxim 20 2 numar de
maxim 20 curentă dimensiune
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, salariu);
d. ALTER TABLE SALARIAT
DROP COLUMN nume, COLUMN salariu;
37 A
____ 41. Ce comanda creeaza corect tabelul SALARIAT, specificand constrangerile?
COD DATA_AN
NUME PRENUME VARSTA EMAIL SALARIU
_ANG G
unic
sir de
not null > 0
cheie date, valoare caractere
sir de sir caractere de numar de
primara implicita data numeric de 2 de
caractere 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));
38 C
____ 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, data_imprumut);
d. ALTER TABLE IMPRUMUTA
ADD PRIMARY KEY (cod_cititor, cod_carte, data_imprumut);
39 A
____ 43. Pentru tabelul Salariat
cod_depart cod_ang# nume pren salariu cod_funct
care este comanda corecta, pentru a modifica salariu la 3000, pentru angajatii care lucreaza in departamentul
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
WHERE salariu=3000;
d. MODIFY salariat SET salariu=3000
WHERE cod_depart=10 AND salariu<3000;
40
____D 44. Să se insereze în tabelul CARTE 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 CARTE
SELECT *
FROM CARTE_INFO;
41
____C 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);
42
____A 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 cu suma
preturilor cartilor scrise de ‘BARBU’.
a. UPDATE CARTE
SET pret = (SELECT SUM(pret)
FROM CARTE
WHERE autor = ’BARBU’)
WHERE nrex < (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);
43 C
____ 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;
44 B
____ 48. Pentru tabelul PROF
cod_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;
45 A
____ 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’;
46 B 50. Pentru tabelul:
____
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;
47
____C 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 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;
48
____A 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;
49
____C 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.

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);
50
____D 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 SALARIU IS NULL;
51
____C 55. O uniune (join) 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)
A
____ 56. O uniune externa (outer join) nu

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


b. Poate fi scrisa in Oracle SQL folosind un simbol (+) in clauza WHERE
c. Returneaza toate randurile din unul sau din ambele tabele
d. Poate fi catre stanga, catre dreapta sau completa
B
____ 57. Pentru 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;
C
____ 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;
B
____ 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;
C
____ 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;
C 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;
A
____ 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 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);
C 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;
B
____ 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. SELECT x.titlu, x.pret
FROM carte x, carte y
WHERE x.pret > y.pret
AND y.titlu = ’Baze de date’
AND y.autor = ’ Popescu’;
c. SELECT x.titlu, x.pret
FROM carte x, carte y
WHERE x.pret > y.pret
AND titlu = ’Baze de date’
AND autor = ’ Popescu’;
d. SELECT x.titlu, x.pret
FROM carte x, carte y
WHERE x.pret > y.pret
AND y.titlu = ’Baze de date’, y.autor = ’ Popescu’;
A 65. Pentru tabelele
____
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
FROM COPII);
b. 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;
B
____ 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 COPII);
c. SELECT a.nume, a.pren
FROM PROFESORI A
WHERE a.codp NOT IN SELECT codp FROM copii;
d. SELECT a.nume, a.pren
FROM PROFESORI A
WHERE a.codp IS NOT (SELECT DISTINCT codpFROM COPII);
A
____ 67. Se considera pentru actionarii unei firme, urmatoarele tabele
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.nume=‘&x’;
b. SELECT a.seriain, a.seriasf, b.nume
FROM actiuni , actionari
WHERE a.codact=b.codact AND nume=‘&x’;
c. SELECT a.seriain, a.seriasf, b.nume
FROM actiuni a, actionari b
WHERE a.codact=b.codact ;
d. SELECT a.seriain, a.seriasf, b.nume
FROM actiuni a, actionari b
WHERE a.codact=b.codact OR b.nume=‘&x’;
D
____ 68. Se considera pentru actionarii unei firme, 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;
C 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 NUME='ENE' AND PREN='ANA’;
B 70. Pentru 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 A.COD_FAC=B.COD_FAC);
c. SELECT DISTINCT DENUMIRE
FROM FAC A
WHERE 10000< SELECT sum(salariu)
FROM PROF B WHERE A.COD_FAC=B.COD_FAC;
A
____ 71. Care este comanda corecta pentru 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;
C
____ 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 department
WHERE nume_depart = ‘Contractari’);
D
____ 73. Care este comanda corecta care afiseaza numarul total de carti imprumutate si restituite pentru fiecare cititor
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;
C 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’;
D
____ 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' );
C
____ 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;
D
____ 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’;
C
____ 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;
B
____ 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;
D
____ 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);
Adevarat / Fals
Pentru a fi in a treia forma normala , o relatie trebuie sa nu fie in prima forma normala sau in a doua
forma normala:
- Adevarat
- Fals
Pentru a fi in a treia forma normala o relatie nu trebuie sa fie in prima sau a doua forma normala?
- Adevarat
- Fals
Probleme de dependenta tranzitiva apar atunci cand un atribut non-cheie depinde de un alt atribut non-
cheie
- Adevarat
- Fals
Diagrama ERD este un model de date conceptual de nivel înalt, dependent de platforma hardware
utilizată şi de tipul de RDBMS (SGBD) – ului utilizat
- Adevarat
- Fals
Folosind aplicatia Microsoft Access, se poate administra toata informatia într-o singura baza de date
(Database)?
- Adevarat
- Fals
Folosing MSAccess se poate administra toata informatia intr-o singura baza de date ?
- Adevarat
- Fals
A doua forma normala nu rezolva anomaliile cauzate de
a. Dependentele partiale de cheia primară
b. Grupurile repetitive
c. Dependentele tranzitive
d. Atributele multi valoare
e. Relatiile de tip unu-la-mai-multi

A doua formă normală rezolvă anomaliile cauzate de


a. Grupurile repetitive
b. Dependentele partiale de cheia primară
c. Grupurile repetitive si atributele multivaloare
d Dependentele tranzitive

A treia forma normala rezolva anomaliile cauzate de : si 4 var de raspuns


a. Dependentele partiale de cheia primară
b. Grupurile repetitive
c. Dependentele tranzitive
d. Atributele multivaloare
e. Relatiile de tip unu-la-mai-multi

Atunci când se foloseste operatorul “+” , apare o eroare de tipul Type Mismatch (Nepotrivire de tip) in
cazul cand
a. ambii operanzi sunt valori numerice
b. ambii operanzi sunt siruri de caractere
c. un operand este valoare numerica si celalalt un sir de caractere
d. un operand este valoare numerica si celalalt de tipul date/time
Care din următoarele baze de date nu este RDBMS
a. Postage SQL
b. Oracle Database
c. My SQL
d. Microsoft SQL Server
e. Excel database

Care nu este un concept utilizat pentru a descrie formal-uzual-fizic elementele de baza ale organizarii
datelor
a. relatie-tablou-fisier
b. tuplu-linie-inregistrare
c. atribut-coloana-camp
d. domeniu-functie-functie

Care nu este o interogare de actiune?


a. cu actualizare
b. cu creeare de tabele
c. cu adaugare si stergere
d. cu parametru

Care din interogarile cu actiune pot afecta doar campuri izolate?:


a. cu actualizare
b.cu adaugare
c.cu stergere
d.cu creare de tabele

Clinetii SQL oferiti de Microsoft nu sunt:


a. SqLWorsheet
b. sql PLUS
c. iSql
d. Isql PLUS

Campurile calculate intr-un raport se pot introduce in modul Design View:


a. numai in banda Report Footer
b. numai in banda Group Footer
c. in banda de Detail,Group F.si Report F.
d. numai in banda de Detail

Cind se realizeaza un table cu Report View din tabele relationale, informatiile fiind grupate pe parte one
a relatiei si se opteaza pentru SUMMARY OPTION atunci:
a. se introduc calculele solicitate in banda de subsol de grup
b. se introduc calculele solicitate in banda de detaliu de grup
c. se introduc calculele solicitate in benzile de subsol de grup de subsol de raport
d. se introduc calculele solicitate in banda de detaliu de grup si subsol de grup

Cate reguli a emis Codd / Modelul relational conceput si dezvoltat de E.F. Codd cuprinde un set de
a. 25 reguli
b. 13 reguli
c. 100 reguli
d 15 reguli
Cand operatorii AND si OR sunt combinati in aceeasi clauza WHERE
a. Operatorul AND are prioritate mai mare decat operatorul OR
b. Sistemul DBMS returneaza un mesaj de eroare
c. Operatorul AND are prioritate mai mica decat operatorul OR
d. Parantezele, sunt obligatorii

Cand operatorii AND §i OR sunt combinati in aceeasi clauza WHERE


a. Sistemul SGBD returneaza un mesaj de eroare
b. Operatorul AND are prioritate mai mare decat operatorul OR
c. Operatorul AND are prioritate mai mica decat operatorul OR
d. Parantezele, sunt obligatorii
e. Parantezele sunt optionale

Componentele unei baze de date relationale NU includ :


a. Relatii
b. tabele
c. restrictii
d. diagrame ERD

Componentele unei baze de date relationale nu includ:


a.indexuri
b.tabele
c.diagrame ERD
d.restrictii
e.relatii

<!>Criteriul de selectie se poate seta


a. prin intermediul celulei TOTALS + Expression Builder
b. prin intermediul celulei Criteria +Expression Builder sau prin tastarea expresiei
c. prin intermediul celulei Sort + tastarea expresiei
d. prin intermediul celulei TOTALS si Criteria, ambele ambele avand acelasi efect

<!>Criteriul de selectie se poate seta


a. prin intermediul celulei TOTALS + Expression Builder
b. prin intermediul celulei Criteria +Expression Builder sau prin tastarea expresiei
c. prin intermediul celulei Sort + tastarea expresiei
d. prin intermediul celulei TOTALS si Criteria, ambele ambele avand acelasi efect

<!>Calificatorii numelor de coloane NU :


a. rezolva referintele ambigue la coloane
b. pot fi nume de tabele
c. pot fi pseudonime ptr. numele de coloane, definite in clauza FROM
d. pot fi pseudonime pentru numele de tabele, definite in clauza FROM

<!>Calificatorii numelor de coloane NU :


a. rezolva referintele ambigue la coloane
b. pot fi nume de tabele
c. pot fi pseudonime pentru numele de coloane, definite in clauza FROM
d. pot fi pseudonime pentru numele de tabele, definite in clauza FROM
Daca relationarea tabelelor dintr-o interogare s-a facut prin definirea legaturilor implicite (din fereastra
Relationships), atunci:
a. trebuie refacute legaturile in cadrul interogarii
b. acestea sunt ignorate in timpul rularii interogarii
c. adaugarea lor intr-o interogare se face impreuna cu relatiile dintre ele
d. tabelele nu trebuiesc sa fie legate in interogare

Dacă tabelele dintr-o interogare nu sunt legate una de alta fie direct (în interogare), fie indirect (prin
legătură implicită, din fereastra Relationship), Acces afisează
a. Toate combinatiile de înregistrări (produs cartezian) dintre câmpurile tabelelor
b. Numai înregistrările din prima tabelă
c. Numai înregistrările din ultima tabelă
d. Nu afisează nimic

Definitia unei coloane din instructiunea CREATE TABLE nu poate include


a. Numele tabelului …sau [/restrictie la nivel de tabel/]
b. O clauză DEFAULT
c. O clauză NULL sau NOT NULL
d Numele coloanei

<!>Din ferestra Relationships la apasarea butonului Join Type se poate selecta modul in care vor fi
extrase datele din tabele, mod care nu poate fi:
a. numai acele înregistrari în care câmpurile din legatura coincid
b. toate înregistrarile din tabela principala si numai acele înregistrari din tabela corelata în care
câmpurile din legatura coincid.
c. toate înregistrarile din tabela corelata si numai acele înregistrari din tabela principala în care
câmpurile din legatura coincid.
d. toate inregistrarile din ambele tabele

<!>Din ferestra Relationships la apasarea butonului Join Type se poate selecta modul in care vor fi
extrase datele din tabele, mod care nu poate fi:
a. numai acele înregistrari în care câmpurile din legatura coincid
b. toate înregistrarile din tabela principala si numai acele înregistrari din tabela corelata în care
câmpurile din legatura coincid.
c. toate înregistrarile din tabela corelata si numai acele înregistrari din tabela principala în care
câmpurile din legatura coincid.
d. toate inregistrarile din ambele tabele

Expresiile nu se utilizează în
a. Definirea unui criteriu de selectie
b. Crearea unui câmp calculat
c. Actualizarea unor înregistrări într-o interogare
d. Definirea proprietătii Validation Text a unei tabele

Functia AVG(Expr):
a. include campuri de valoare NULL in calcul
b. poate fi folosita intr-o interogare
c. calculeaza media geometrica a datelor din acel camp
d. operanzii din Expr nu pot include o functie definita de utilizator.
Functiile SQL matematice standard NU includ :
-ROUND
-ABS
-CAST
-EXP

Functia LTRIM
a. Elimina spatiile de la sfarsitul sirurilor de caractere
b. Elimina spatiile de la inceputul sirurilor de caractere
c. Poate fi imbricata cu alte functii
d. Inlocuieste valorile nule cu alte valori in sirurile de caractere
e. Elimina spatiile de la inceputul si de la sfarsitul sirurilor de caractere

Integritatea referintiala este un sistem de reguli folosit de Acces pentru a se asigura ca:
a. relatiile intre tabele sunt valide
b. relatiile intre tabele nu se modica
c. relatiile intre tabele sunt valide si ca nu se sterg sau modica accidental datele in legatura
d. nu sunt definite relatii

Integritatea referentială nu se poate seta atunci când


a. Câmpurile în relatie au acelasii tip de date
b. Tabelele nu apartin aceleasi baze de date Access
c. Tabelele apar in aceleasi baze de date Access
d. Câmpul în relatie din tabela principală este cheie primară sau are un index unic

In cadrul diagramei entitate-relatie (ERD) care nu este o entitate speciala


a. Entitate dependentã
b. Entitate tranzitiva
c. Subentitate
d. Superentitate

Interogariea de tip functie


a. poate calcula suma, media, numararea, minimul, maximul, varianta sau deviatia standard
pentru unul sau mai multe câmpuri dintr-o tabela in linia Totals, fie pentru toate înregistrarile, fie
pe unul sau mai multe grupuri de înregistrari
b. poate calcula suma, media, numararea, minimul, maximul, varianta sau deviatia standard pentru unul
sau mai multe câmpuri dintr-o tabela in linia Totals, numai pentru toate înregistrarile
c. poate calcula suma, media, numararea, minimul, maximul, varianta sau deviatia standard pentru unul
sau mai multe câmpuri dintr-o tabela in linia Totals, numai pentru pe un grup de înregistrari
d. prin intermediul liniei Criteria nu pot fi afectate rezultatele calcularii.

Integritatea referentială nu se poate seta atunci când


a. Câmpurile în relatie au acelasii tip de date
b. Tabelele nu apartin aceleasi baze de date Access
c. Tabelele apar in aceleasi baze de date Access
d. Câmpul în relatie din tabela principală este cheie primară sau are un index unic
Limbajul DML nu include următoarea instructiune SQL
a. INSERT
b. UPDATE
c. SELECT …sau [/CREATE /]
d. DELETE

Modelul relational NU are ca regula de integritate structurala :


a. Unicitatea cheii primare
b. Intregritatea entitatii.Atributele cheii primare sunt diferite de valoarea NULL
c. Integritatea referiirii. O cheie externa trebuie sa corespunda unei valori a cheii primare
associate.
d. Integritatea referiirii. O cheie externa trebuie sa fie NULL in intregime, ori sa corespunda unei valori
a cheii primare asociate

Modelul relațional conceput și dezvoltat de E.F. Codd cuprinde un set de


a. 25 reguli
b. 13 reguli
c. 100 reguli
d. 15 reguli

Nu sunt clientii SQL oferiti de Oracle


a. SQL Worksheet
b. My SQL
c. SQL*Plus
d. iSQL*Plus

Nu se selecteaza intr-o interogare


a. un singur câmp prin executarea unui click pe numele unui câmpului
b. un bloc de câmpuri prin click pe primul câmp din bloc, se tine apasata tasta Shift si apoi se executa
click pe ultimul câmp din blocul dorit.
c. mai multor câmpuri dar nesituate intr-un bloc atunci se executa click pe fiecare dintre ele
tinându-se apasata tot timpul tasta Shift
d. toate cimpurile prin dublu-click pe bara de titlu a tabelei sau printr-un singur click pe asterix (*).

Normalizarea nu rezolva anomalia:


a. de creare
b. de stergere
c. de actualizare
d. de inserare

Nu este functie SQL matematica standard:


a. ROUND
b. EXP
c. ABS
d. CAST
Numele unei coloane dintr-un tabel :
a. Nu trebuie sa fie in baza de date
b. Nu trebuie sa fie in cadrul unui tabel
c. Trebuie sa fie specificat in instructiunea ALTER TABLE
d. Trebuie sa fie specificat in instructiunea CREATE TABLE
…sau[/trebuie sa fie unic in cadrul tabelului/]

O interogare parametrizată este o interogare


a. În care una sau mai multe valori ale criteriilor de selectie sunt specificate în mod interactive
b. În care numai una dintre valorile criteriilor de selectie poate fi specificată
c. Care atunci când se rulează afisează o fereastră creată de utilizator
d.Care atunci când se rulează afisează o fereastră proprie în care afisează un rezultat

O uniune incrucisata(cross join)


a. O uniune Naturală
b. N produs cartezian
c. O uniune externă
d. O uniune Internă

O uniune (Join) fara o clauza WHERE sau o clauza JOIN


a. Are ca rezultat un mesaj de eroare
b. Nu returnează nici un rând din setul de rezultate
c. Reprezintă o uniune externă (outer join)
d. Reprezintă o uniune internă (inner join)
e. Are ca rezultat un produs cartezian

O uniune de egalitate(equijoin):
a. este cunoscuta si sub numele de auto-uniune(slfjoin)
b. este cunoscuta si sub numele de uniune externa(outerjoin)
c. realizeaza intotdeauna legarea randurilor folosind o conditie de egalitate(=)
d. realizeaza intotdeauna legarea randurilor folosind o conditie de inegalitate(<>)

O cheie Primara nu poate fi setata: U click-dreaptape campul dorit sa fie cheie primarasi din meniul
afisat se apasa Primary Key sau U se selecteaza campul respectiv si se apasa butonul de Primary Key
meniul Design View,U se deschide fereastra de definire a unui index caruia i se adreseaza proprietatea
Primary la Yes.
a. cu click dreapta pe campul dorit sa fie cheie primara si din meniul afisat se apasa Primary Key.
b. daca se deschide fereastra de definire a unui index si se creeaza un index caruia i se seteaza
proprietatea Primary la Yes.
c. din FieldProprerties,Indexed,Yes(No Duplicates)
d. daca se selecteaza campul respectiv si se apasa butonul de Primary Key din meniul Design View.

O interogare incrucisata (Crosstab) este realizata dintr-o o interogare de selectie, din care se poate alege
a. toate campurile interogarii
b. cel mult 3 campuri pentru antet de linii, un camp pentru antet coloana si o functie aplicata
valorilor dintr-un camp
c. cal putin 3 campuri pentru antet de linii, si mai multe campuri entru antet coloana si o functie aplicata
valorilor dintr-un cimp
d. nu se poate realiza astfel de interogari
O forma (sau formular) reprezinta modalitatea de a
a. modifica date numai dintr-o singura tabela
b. modifica, adauga, sterge date din mai multe tabele
c. modifica date dintr-o singura interogare
d. modifica date dintr-o interogare si un tabel

O baza de date este


a. O colectie de date interrelationate gestionate ca o singura unitate
b. Un produs software furnizat de un producator de baze de date
c. O structura de date, cum ar fi un tabel, o vizualizare sau un index
d. Definita in acelasi mod de toti producatorii de software

O forma nu poate fi creata


a. pe baza unei interogari de actiune
b. pe baza unui tabel
c. pe baza unei interogari
d. pe baza mai multor tabele

O forma (sau formular) reprezinta modalitatea de a


a. modifica date numai dintr-o singura tabela
b. modifica, adauga, sterge date din mai multe tabele
c. modifica date dintr-o singura interogare
d. modifica date dintr-o interogare si un tabel

O cheie Primara nu poate fi setata:


a. cu click dreapta pe campul dorit sa fie cheie primara si din meniul afisat se apasa Primary Key.
b. daca se deschide fereastra de definire a unui index si se creeaza un index caruia i se seteaza
proprietatea Primary la Yes.
c. din FieldProprerties,Indexed,Yes(No Duplicates)
d. daca se selecteaza campul respectiv si se apasa butonul de Primary Key din meniul Design View.

O uniune de egalitate(equijoin):
a. este cunoscuta si sub numele de auto-uniune(slfjoin)
b. este cunoscuta si sub numele de uniune externa(outerjoin)
c. realizeaza intotdeauna legarea randurilor folosind o conditie de egalitate(=)
d. realizeaza intotdeauna legarea randurilor folosind o conditie de inegalitate(<>)

O clauza JOIN folosind cuvantul cheie USING


a. Nu poate fi folosita atunci cand coloanele prin care se face legarea tabelelor au aceleasi nume
b. Nu poate fi folosita atunci cand coloanele prin care se face legarea tabelelor au nume diferite
c. Defineste o uniune externa
d. Defineste o auto-uniune

O interogare cu stergere (Delete Query) poate:


a. sterge doar cimpurile izolate
b. sterge un grup de inregistrari dintr-un tabel
c. sterge un grup de inregistrari dintr-un table sau din mai multe tabele legate intr-o relatie unu-
la- mai- multi daca stergerile in cascada sunt active
d. sterge o inregistrare dintr-un tabel la un moment dat
Operatorul + genereaza eroarea Type Mismatch atunci cand
a. ambii operanzi sunt siruri de caractere
b. ambii operanzi sunt numere
c. un operator este numar si unul sir de caractere
d. un operator este numar si unul data

O interogare incrucisata (Crosstab) este realizata dintr-o interogare de selectie din care se poate alege:
a. toate campurile interogatorii
b. cel mult 3 campuri pt. antet de linii,un camp pt. antet coloana si o functie aplicata valorilor
dintr-un camp.
c. cel putin 3 campuri pt. antet de linii si mai multe campuri penru antet coloana si o functie aplicata
valorilor dintr-un camp.
d. nu se poate realiza astfel de interogari.

O instructiune UPDATE trebuie sa includa:


a. o clauza WHERE
b. o clauza SET
c. o clauza SELECT
d. o clauza INSERT

O interogare parametrizata este o interogare


a. in care una sau mai multe valori ale criteriilor de selectie sunt specificate in mod interactiv
b. in care numai una dintre valorile criteriilor de selectie poate fi specificata
c. care atunci cand se ruleaza afiseaza o fereastra creata de utilizator
d. care atunci cand se ruleaza afiseaza o fereastra proprie in care afiseaza un rezultat

O forma (formulare) reprezinta modalitatea de a:


a. modifica date numai dintr-o singura tabela
b. modifica, adauga, sterge date din mai multe tabele
c. modifica date dintr-o singura interogare
d. modifica date dintr-o interogare si un tabel

O interogare MakeQuery nu realizeaza:


a. Realizarea unei copii de siguranta a unei tabele
b. Schimbarea ordinii inregistrarilor dintr-o tabela
c. Crearea unei tabele pentru exportul intr-o alta baza de date MS Access
d. Crearea unei tabele ce va contine numai inregistrari vechi

<!>O interogare cu actiune este o interogare care realizeaza modificari asupra:


a. unei singure inregistrari dintr-un table
b. asupra mai multor inregistrari din una sau mai multe tabele
c. unei singure tabele la un moment dat
d. mai multor tabele la un moment dat

<!>O interogare cu actiune este o interogare care realizeaza modificari asupra:


a. unei singure inregistrari dintr-un table
b. asupra mai multor inregistrari din una sau mai multe tabele
c. unei singure tabele la un moment dat
d. mai multor tabele la un moment dat
Operatorul BETWEEN
a. Specifică un domeniu de valori care include si capetele
b. Poate fi rescris folosind operatorii <= si NOT <=
c. Selectează rândurile adăugate în tabel într-un anumit interval de timp
d. Nu este inclus în standardul ISO/ANSI

Proprietatea Format se foloseste pt:


a. a seta modul in care campurile de tip text sunt afisate
b. a stoca datele intr-un anumit format
c. a seta modul in care campul de tip numar sunt tiparite
d. a seta modul in care datele sunt afisate si tiparite

Proprietatea de Indexare (Indexed)


a. seteaza un index pe un singur cimp
b. creaza si seteaza un index pe un cimp al unei tabele
c. se foloseste pentru a mari viteza de interogare a unei tabele pe unul sau mai multe campuri
d. afecteaza ordinea de stocare (ordinea fizica) a inregistrarilor

Pentru a crea un raport utilizând generatorul (Report Wizard) avem planul general cu optiunea implicita
a. Columnar
b. Tabular
c. Justified

Pentru a introduce câmpuri calculate într-un raport se foloseşte elemente din bara toolbox
a. Label Box Aa
b. Text Box ab
c. Check
d. Combo Box

Pentru aducerea in prima forma normala a unei relatii ne-normalizate se operatie nu se efectueaza ?
a. Grupurile repetitive sunt mutate intr-o noua relatie
b. Atributele multivaloare sunt mutate intr-o noua relatie
c. Atributele care sunt dependente tranzitiv sunt eliminate
d. Identificatorul unic al unei relatii originale este copiat in noua relatie

Pentru a specifica criterii de selectii pentru o interogare, acestea nu se fac


a. numai pentru un camp
b. pentru mai multe campuri, daca expresiile pentru criteriile de selectie sunt pe aceeasi linie in tabelul
de design, cand Access foloseste operatorul And, adica vor fi returnate numai inregistratile ce
indeplinesc toate criteriile
c. pentru mai multe campuri, daca expresiile pentru criteriile de selectie sunt in linii diferite ale tabelului
de design, cand Access foloseste operatorul Or, adica vor fi returnate numai inregistratile ce indeplinesc
cel putin unul din criteriile de selectie
d. in celula TOTALS a tabelului de design

Problemele de dependenta partiala nu:


a. sunt rezolvate de a 2 forma normala
b. sunt rezolvate de a 3 forma normala
c. apar atunci cand un atribut non-cheie depinde doar de o parte a cheii primare
d. pot aparea numai in relatii cu chei primare concatenate
Pentru realizarea unei interogari cu actualizare nu se efectueaza pasul:
a. se creeeaza o interogare
b. se adauga tabelele si se selecteaza campurile ce se doresc actualizate
c. se stabilesc criteriile de selectie pt acestea,daca exista atunci se apasa butonul Update Query din
meniul Query Type din Toolbar
d. in celula Update To …(aici cred ca e incompleta)

Problemele de dependenta partiala nu:


a. sunt rezolvate de a 2 forma normala
b. sunt rezolvate de a 3 forma normala
c. apar atunci cand un atribut non-cheie depinde doar de o parte a cheii primare
d. pot aparea numai in relatii cu chei primare concatenate

Pentru realizarea unei interogari cu actualizare nu se efectueaza pasul:


a. se creeeaza o interogare
b. se adauga tabelele si se selecteaza campurile ce se doresc actualizate
c. se stabilesc criteriile de selectie pt acestea,daca exista atunci se apasa butonul Update Query din
meniul Query Type din Toolbar
d. in celula Update To (aici cred ca e incompleta)

Pentru a introduce câmpuri calculate într-un raport se foloseste din bara toolbox:
a. Label Box Aa
b. Text Box ab
c. Check
d. Combo Box

Prima forma normala rezolva anomaliile cauzate de


a. Grupurile repetitive si atributele multivaloare
b. Dependentele partiale de cheia primara
c. Dependentele tranzitive
d. Relatiile de tip unu-la-mai-multi

Pentru a specifica criterii de selctie pentru o interogare, aceste nu se fac


a. numai pentru un cimp
b. penrtru mai multe cimpuri, daca expresiile pentru criteriile de selectie sunt pe aceeasi linie în
tabelul de design, cand Access foloseste operatorul And, adica vor fi returnate numai
înregistrarile ce îndeplinesc toate criteriile.
c. pentru mai multe criterii pe acelasi camp, expresiile sunt în linii diferite ale tabelului de deisgn cand
Access foloseste operatorul Or, adica vor fi returnate acele înregistrari ce îndeplinesc cel putin unul
dintre criteriile de selectie.
d. in celula TOTALS a tabelului design

Relatia m:n devine in modelul relational:


a. tabel asociativ cu cheia primara formata din 2 chei externe pt. cele 2 tabele asociate
b. tabel asociativ cu cheia primara formata din 2 chei externe pt. cele 2 tabele asociate plus eventuale
coloane aditionale
c. chei externe
d. entitate independenta
Sintaxa corectă pentru o restricţie NOT NULL este
a. nume_coloană tip-de-date IS NOT NULL
b. nume_coloană tip_de_date NOT NULL
c. DEFAULT [NULL | NOT NULL]
d. CREATE NOT NULL INDEX ON nume_coloană

Sintaxa corecta pentru o restrictie referentiala este


a. [CONSTRAINT nume—restrictie] REFERENCES nume_index
b. [CONSTRAINT nume—restrictie] REFERENCES nume_tabel
c. FOREIGN KEY nume_coloana REFERENCES nume_tabel (nume_coloana)
d. REFERENCES nume—tabel (nume_coloana)

Sintaxa corecta pentru eliminarea valorilor nule din rezultatele interogarii este
a. = NULL
b. NOT = NULL
c. <>NULL
d. IS NULL
e. IS NOT NULL

SQL NU este:
a. Un limbaj procedural
b. Un limbaj nonprocedural
c. Un limbaj declarativ
d. Un limbaj standard

Tipurile numerice standard nu includ:


a. INTEGER
b. FLOAT
c. INTERVAL
d. BIGINT

Textul de validare se foloseste


a. pentru a valida datele dintr-un cimp
b. impreuna cu Regula de Validare (Validation Rule) si reprezinta mesajul afisat la incalcarea regulei de
validare
c. impreuna cu Regula de Validare (Validation Rule) si reprezinta mesajul afisat daca nu se incalca
regula de validare
d. pentru a valida datele dintr-o inregistrare

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. constrangeri existente asupra datelor sistemului real analizat

Un obiect al bazei de date este


a. O structura denumita de date, cum ar fi un tabel, o vizualizare sau un index
b. Un produs software furnizat de un producator de baze de date
c. O colectie de date interrelationale gestionate ca o singura unitate
d. O colectie de inregistrari inrudite, stocate ca o singura unitate
Un sistem de gestionare a bazelor de date, abreviat sub forma DBMS sau RDBMS sau SGBD este
a. o colectie de inregistrari inrudite, stocate ca o singura unitate
b. o colectie de date interrelationate gestionate ca o singura unitate
c. o structura de date, cum ar fi un tabel, o vizualizare sau un index
d. un produs software furnizat de un producator de baze de date

Un sistem de gestionare a bazelor de date :


a. o structura cum ar fi un tabel
b. o colectie de date interrelationate
c. un produs softwer furnizat de un producator
d. o structura denumita date , cum ar fi un tabel

Un câmp calculat într-o interogare


a. Se efectuează pe fiecare înregistrare folosind numai un câmp
b. Afisează rezultatul unei expresii si valoarea este recalculată de fiecare dată când o valoare din
exprese se schimbă
c. Se pot folosi numai la afisarea unor rezultate
d. Se pot folosi numai la definirea unor criterii de selectie sau pentru a determina asupra căror
înregistrări să se execute o actiune

Valorile NULL
a. pot fi folosite pentru reprezentarea datelor care lipsesc sau care nu sunt cunoscute
b. înseamnă acelaşi lucru ca şi spaţiile libere
c. sunt egale cu alte valori NULL
d. sunt întotdeauna permise în mod prestabilit

Un identificator unic (cheie) poate fi compus...


- am raspuns : poate fi compus din mai multe atribute concatenate

Pentru realizarea unor interogari grupate...


- am raspuns: se realizeaza o interogare de selectie din tabelele dorite si se selecteaza pentru
anumite campuri o functie de celula Total.

Daca integritatea referentiala este setata:


- am raspuns: nu se poate valoarea unei chei primare in tabela principala, daca acea inregistrare
are inregistrari corelate in tabela secuindara.

Functia NOW() intoarce:


- am raspuns: data si timpul exact conform cu data si ora sistemului

Prin operatia Export se poate


- am raspuns: exporta dintr-o baza de date access intr-o alta baza de date access

Proprietatea Format se foloseste pentru


- am raspuns: a seta modalitatea in care datele sunt afisate si tiparite

Daca integritatea referentiala este setata


- am raspuns: nu se poate schimba valoarea unei chei primare
In meniul Tools ce apartine database Utilities nu exista
- am raspuns: memo

Problemele de dependenta partiala Nu


- am raspuns: sunt rezolvate de FN3

Relatia m:n devine in mod relational


- am raspuns: tabel asociativ in care o inregistrare din A poate avea mai multe in B si invers

Pentru a crea un raport utilizand report Wizard avem planul general cu optiunea implicita
- am raspuns: tabular

O instructiune Alter Table nu poate fi folosita pentru


- am raspuns: redenumirea unei coloane

DDL nu include urmatoarea instructiune


- am raspuns: DELETE

Un identificator unic (o cheie primara)


- am raspuns: poate fi compus dintr-un singur atribut

O interogare cu stergere (Delete Query)


- am raspuns : sterge un grup de inregistrari dintr-un tabel sau din mai multe tabele legate printr-o
relatie unu la mai multi daca stergerile in cascada sunt active.

Componentele unei baze de date relationale nu includ


- am raspuns : diagrame ERD

O uniune fara clauza WHERE sau o clauza Join


- am raspuns are ca rezultat un produs cartezian

Operatorul BETWEEN
a. Specifică un domeniu de valori care include si capetele
b. Poate fi rescris folosind operatorii <= si NOT <=
c. Selectează rândurile adăugate în tabel într-un anumit interval de timp
d. Nu este inclus în standardul ISO/ANSI

O instructiune DELETE nu
a. Poate include o listă optională de coloane
b. Poate include o clauză WHERE optională
c. Nu poate încălca restrictiile referentiale ale tabelului
d. Poate avea o instructiune SELECT internă, ca parte a clauzei WHERE

Functiile SQL standar pt.siruri de caractere NU includ


- Upper
-LOWER
-...
-LIKE - raspuns LIKE
Care este secvenţa corectă pentru a şterge toate înregistrările tabelului TOTALURI
- DELETE FROM TOTALURI

Access permite crearea unor relaţii logice sub forma unor legări între tabele
- temporale (la nivelul interogărilor) şi implicite (din fereastra Relationships)

O interogare cu creare de tabele (Make-tables Query) nu realizează


- crearea unor tabele pentru exportul într-o bază de date MS Access

Pentru realizarea unor interogări grupate


- se selectează pentru toate câmpurile o funcţie în celula Totals

Un obiect al unei baze de date este


- o structură, cum ar fi un tabel, o vizualizare sau un index

Pasii pentru conversia unei baze de date NU sunt:


- deschiderea bazei ce urmeaza a fi convertita

O instructiune SELECT fara o clauza WHERE


- va selecta toate randurile din tabel sau vizualizare

Instructiune SQL prin care se cerea sa se stearga toti profesorii din tabel.
- DELETE profesori FROM tabel

table cod fac, denumire adresa


care este secventa corecta pentru o inserare folosind instructiunea SELECT
-INSERT INTO FAC
(COD_FAC, DENUMIRE, ADRESA)
SELECT VALUES(MAX(COD_FAC)+1, 'LIMBI', 'ION GHICA');
-INSERT INTO FAC
SELECT MAX(COD_FAC)+1, 'LIMBI', 'ION GHICA'
FROM FAC;
-INSERT INTO FAC
(COD_FAC, DENUMIRE, ADRESA)
SELECT MAX(COD_FAC)+1, 'LIMBI', 'ION GHICA'
FROM FAC;

table prof cod fac, cod prof,nume, prenume, salariu, cod functie
care este secventa corecta , pentru a modifica functia si salariu prof cu (cod_fac=2 cod_prof=1) din
lector(cod_funct=3, salariu 2000) la conferentiar(cod_funct=4, salriu=3000)?
-UPDATE PROF SET COD_FUNCT=4, SALARIU=3000
WHERE COD_FAC=2 AND COD_PROF=1;
-UPDATE PROF SELECT COD_FUNCT=4, SALARIU=3000
WHERE COD_FAC=2 AND COD_PROF=1;
-UPDATE PROF SET COD_FAC=2 AND COD_PROF=1
WHERE COD_FUNCT=4, SALARIU=3000;
2 tabele a. ca cel de la nr 12 b.functii
cod functii, den functii
care este secventa corecta pentru o subinterogare necorelata, care sa afiseze toate functiile pentru care nu
exista profesorii incadrati
-SELECT cod_funct, nume_funct
FROM functii
WHERE cod_funct NOT IN
(SELECT DISTINCT cod_funct FROM prof)
-SELECT cod_funct, nume_funct
FROM functii WHERE cod_funct NOT IN
SELECT DISTINCT cod_funct FROM prof
-SELECT cod_funct, nume_funct
FROM functii
WHERE cod_funct IN
(SELECT cod_funct FROM prof);

Pt. tabelul:
PROF cod_fac# cod_prof# nume prenume salariu
care este secvența corectă pt. a insera o înregistrare:
• INSERT INTO PROF VALUES (4, 3, ’POPA’, ’DAN’, 1234)
• INSERT INTO PROF VALUES (4, 5, POPA, DAN, 1234)
• INSERT INTO PROF (cod_prof, nume, prenume, salariu) VALUES (4, 3, ’POPA’, ’DAN’, 1234)

Pt. tabelul:
PROF cod_fac# cod_prof# nume prenume salariu
care este secvența corectă pt. a afișa toate facultățile pt. care COD_FAC=1 și salariu>=1200, sau
facultățile pt. care COD_FAC=3 și salariu<2000
• SELECT COD_FAC, COD_PROF, NUME, SALARIU, FROM PROF WHERE (COD_FAC=1
AND SALARIU>1200) OR (COD_FAC=3 AND SALARIU<2000)
Au mai fost 3 variante asemănătoare unde erau înlocuite AND cu OR

Care nu sunt instructiuni SQL?


Limbajul dc replicare a datelor (DRL - Dala Replication Language)

Limbajul de manipulare a datelor (DML - Data Manipulation Language) NU include:


CREATE

Tipurile de date temporale standard NU includ


TIMEZONE

Text boxurile unei forme create automat


sint legate direct la mai multe tabele astfel incit orice modificare adusa valorilor din ele se
transmite..

O interogare SQL din care trebuie selectati din tabelul PROF profesorii care au codul facultatii
(COD_FAC) egal cu 8
a. SELECT FROM PROF WHERE COD_FAC=8;
b. SELECT FROM PROF WHERE COD_FAC<>8;
c. SELECT FROM PROF WHERE COD_FAC IS 8; (asa imi aduc aminte aici, dar daca nu era IS era tot
o balarie)
Pentru tabelul PROF Cod_fac# | Cod_prof# | Nume | 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 SELECT SALARIU = SALARIU*1.1
WHERE SALARIU <> 0;

O cheie primara (Primary Key)


reprezinta un mod unic de identificare a unei înregistrari într-o tabela.
a. nu este un index
b. este un idex creat numai pe un cimp
c. este un idex creat pe minimum doua cimpuri

Dacă tabelele dintr-o interogare nu sunt legate una de alta fie direct (în interogare), fie indirect (prin
legătură implicită, din fereastra Relationship), Acces afișează
• Toate combinațiile de înregistrări (produs cartezian) dintre câmpurile tabelelor
• Numai înregistrările din prima tabelă
• Numai înregistrările din ultima tabelă
• Nu afișează nimic

Textul de validare se foloseste


Raspuns: impreuna cu Regula de Validare si reprezinta mesajul afisat la incalcarea regulei de
validate

Numerele stocate in campuri nenumerice ale unei interogari sunt stocate


Raspuns: ca siruri de caractere (celelalte variante erau ca siruri numerice, se pune in fata 0 pt
numerele mici si nu se accepta sortarea)

Un camp calculat intr-o interogare


Raspuns: afiseaza rezultatul unei expresii si valoarea este recalculata de fiecare data cand o
valoare din expresie se schimba)

Pentru aducerea in prima forma normala a unei relatii ne-normalizate ce operatie nu se efectueaza
Raspuns: nu mai tin minte cum era formulat ceva despre atribute dependent tranzitive, oricum era
singurul care nu avea legatura cu FN1

O insctructiune SELECT fara o clauza WHERE


Raspuns: selecteaza toate randurile din tabel sau vizualizare

Tabelul PROF cu coloanele cod_fac, cod_prof, nume, ore, salariu se intreba care este secventa corecta
pentru a afisa suma salariilor tuturor profesorilor (de la toate facultatile)
Raspuns:
SELECT SUM(salariu) AS TotalSalarii
FROM PROF
GROUP BY
Se dadea tabelul FAC cu campurile cod_fac, denumire si adresa si se intreba care este varianta corecta
pentru introducerea unei noi inregistrari
Raspuns:
INSERT INTO FAC
(cod_fac, denumire, adresa)
SELECT VALUES (MAX(cod_fac)+1, 'o demunire', 'o adresa');

Utilizarile valide ale instructiunii ALTER TABLE nu include


Raspuns: Redenumirea unui tabel

Operatorul LIKE
Raspuns: Foloseste caracterul procent drept caracter de inlocuire nepozitional

O interogare SQL prin care se solicita afisarea rotunjirii mediei salariilor profesorilor, cu 2 zecimale,
grupat dupa facultati.
Aici a fost ceva ciudat. O varianta era cu SORTED BY, una era cu expresia numerica fara o paranteza si
2 erau identice, si aici ma refer la semne de punctuatie, paranteze, spatii, etc.
Aceste 2 variante identice aveau si formatul corect din punctul meu de vedere:
SELECT ROUND(AVG(expresie numerica),2)AS salarii
FROM prof GROUP BY COD_FAC;

Care nu este un concept utilizat pentru a descrie formal-uzual-fizic elementele de baza ale organizarii
datelor:
raspuns: domeniu- functie-functie
Un sistem de gestiune al bazelor de date este:
raspuns : un produs software furnizat de un producator de baze de date
Numerele stocate in campuri nenumerice ale unei interogari sunt sortate:
raspuns: ca siruri de caractere
Care nu este restrictie (Tipuri de restrictii)
raspuns: relatie ( mai erau variantele primary key, not null, check)
Functia NOW() ...
raspuns: returneaza data si ora sistemului
Eliminarea valorilor nule ...
raspuns: IS NOT NULL
57. Instructiunile SQL ....
raspuns: incep cu un cuvant cheie si se termina cu caracterul;
58. Intr-un aranjament client server:
raspuns: componentele soft ale clientului SQL ruleaza pe client
O auto-uniune:
raspuns: autouniunea foloseste un singur tabel
extensiile procedurale ale limbajului sql includ:java,c++,php, oracle pl/sql
pt tabelul ...
raspuns INSERT INTO PROF(cod_prof nume, prenume, salariu) NAMES (4,3,POPA,DAN,1234)
nu este functie sql standard pt siruri de caractere:upper, lenght, lower, like

pt tabelul...
raspuns SELECT DISTINCT DENUMIRE FROM FAC WHERE 1000<(SELECT sum(salariu)

O uniune join --combina coloanele din doua sau mai multe tabele in rezultatul unei singure
interogari
un sistem dbms nu ofera serviciul- - mecanisme de securitate

un index poate fi creat pe urmat tipuri-- text number, currency sau date and time

daca relationarea tabelelor dintr-o interogare s-a facut prin definirea legaturilor implicite atunci:
- adaugarea lor intr-o interogare se face impreuna cu relatiile dintre ele
interogarea cu stergere sterge.. daca stergerile in cascada sint active
prin operatia de import nu se pot introduce in baza de date
- tabele de informare din baze de date in versiuni mai vechi..
prima forma normala rezolva anomaliile
- grupuri repetitive si atribute multivaloare
integritatea referentiala este un sistem de reguli folosit de acces pt a se asigura ca :
relatiile intre tabele sint valide
care nu este un concept utilizat pt a descrie formal- uzual- fizic
- domeniu-functie- functie
text boxurile unei forme create automat
- sint legate direct la mai multe tabele astfel incit orice modificare adusa valorilor din ele se
transmite..

Numerele stocate in campuri nenumerice ale unei interogari sunt sortate:


a.ca siruri de caractere
Pentru realizarea unei interogari cu actualizare nu se efectueaza pasul:
a)se creeeaza o interogare
b)se adauga tabelele si se selecteaza campurile ce se doresc actualizate
c)se stabilesc criteriile de selectie pt acestea,daca exista atunci se apasa butonul Update Query din
meniul Query Type din Toolbar
d) NU.......(aici este o varianta de raspuns care incepe cu NU...si aceasta este cea corecta )

Tabelul PROF cu coloanele cod_fac, cod_prof, nume, ore, salariu se intreba care este secventa corecta
pentru a afisa suma salariilor tuturor profesorilor :
SELECT SUM(salariu) AS TotalSalarii FROM PROF

Intr-un aranjament client/server NU :


(componentele softwer DBMS ruleaza pe un client )

Definitia unei coloane din instructiunea CREATE TABEL NU poate include :


Numele tabelului

O uniune Join fara o clauza WHERE sau o clauza JOIN:


Are ca rezultat un produs cartezian

Dacă o tabelă din baza de date cerută care a fost legată de o tabelă externă, se şterg
- se şterge şi legătura sa, nu însă şi fişierul extern de care a fost legat
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;