Sunteți pe pagina 1din 7

Ministerul Educaţiei, Culturii și Cercetării al Republicii Moldova

Universitatea Tehnică a Moldovei


Departamentul Ingineria Software și Automatică

RAPORT
Lucrare de laborator Nr.6
Disciplina: BD
Tema: Crearea tabelelor și indecșilor

A efectuat: st.gr. TI-192,


Mereuță Ana

A verificat : asist.univ.
Scrob Sergiu

Chișinău 2021
Sarcina 1: Să se scrie o instrucțiune T-SQL, care ar popula coloana Adresa _ Postala _ Profesor
din tabelul profesori cu valoarea 'mun. Chisinau', unde adresa este necunoscută.

use universitatea

update profesori
set Adresa_Postala_Profesor = 'mun.chisinau'
where Adresa_Postala_Profesor is NULL;
select *from profesori

Sarcina 2: Să se modifice schema tabelului grupe, ca să corespundă următoarelor cerințe:


a) Câmpul Cod_ Grupa sa accepte numai valorile unice și să nu accepte valori necunoscute.
b) Să se țină cont ca cheie primare, deja, este definitii asupra coloanei Id_ Grupa.

alter table grupe add constraint Cod_Grupa_Unique unique (Cod_Grupa)

alter table grupe add Sef_Grupa int, Prof_indrumator int;


Sarcina 3: La tabelul grupe, să se adauge 2 coloane noi Sef_grupa și Prof_Indrumator,
ambele de tip INT. Si se populeze campurile nou-create cu cele mai potrivite candidaturi în
baza criteriilor de maijos:
a) Șeful grupei trebuie să aiba cea mai buna reușită (medie) din grupă la toate formele de
evaluare și la toate disciplinele. Un student nu poate fi șef de grupa la mai multe grupe.
b) Profesorul îndrumator trebuie să predea un număr maximal posibil de discipline la grupa
data. Daca nu există o singură candidatură, care corespunde primei cerinte, atunci este ales
din grupul de candidati acel cu identificatorul (Id_Profesor) minimal. Un profesor nu poate fi
îndrumator la mai multe grupe.
c) Să se scrie instructiunile ALTER, SELECT, UPDATE necesare pentru crearea coloanelor
in tabelul grupe, pentru selectarea candidaților și inserarea datelor .
alter table grupe add constraint FK_Sef_Grupa foreign key (Sef_Grupa) references
studenti(Id_Student);

UPDATE grupe SET Sef_Grupa =


(SELECT Sef_Grupa FROM
(SELECT Id_Grupa, MIN(Id_Student) Sef_Grupa, MAX (Media) as Nota_max FROM
(SELECT Id_Student, Id_Grupa, AVG(Nota) AS Media FROM studenti_reusita GROUP BY
Id_Student, Id_Grupa) AS rezultat1 GROUP BY Id_Grupa) AS rezultat2
WHERE grupe.Id_Grupa = rezultat2.Id_Grupa);

--/\--
alter table grupe add constraint FK_Prof_Indrumator foreign key (Prof_indrumator)
references profesori(Id_Profesor);

update grupe set Prof_indrumator =


(select Prof_indrumator from
(select Id_Grupa, max(Id_Profesor) Prof_indrumator, max(d_counted) as n_max from
(select Id_Grupa, Id_Profesor, count(Id_Disciplina) as d_counted from studenti_reusita
group by Id_Profesor, Id_Grupa) as rez1 group by Id_Grupa) as rez_2
where grupe.Id_Grupa = rez_2.Id_Grupa);

Sarcina 4: Să se scrie o instrucțiune T-SQL, care ar mări toate notele de evaluare șefilor de
grupe cu un punct. Nota maximală (10) nu poate fi mărită.
update studenti_reusita set Nota +=1 from studenti_reusita sr join grupe g on
sr.Id_Student = g.Sef_Grupa where Nota < 10;

Sarcina 5: Să se creeze un tabel profesori_new, care include urmatoarele coloane: Id_Profesor,


Nume _ Profesor, Prenume _ Profesor, Localitate, Adresa _ 1, Adresa _ 2.
a) Coloana Id_Profesor trebuie sa fie definita drept cheie primara și, îl baza ei, sa fie
construit un index CLUSTERED.
b) Campul Localitate trebuie sa posede proprietatea DEF A ULT= 'mun. Chisinau'.
c) Sa se insereze toate datele din tabelul profesori ill tabelul profesori_new. Sa se scrie, cu
acest scop, un numiir potrivit de instructiuni T-SQL. Datele trebuie sa fie transferate in felul
urmator:

Fig. 6
in coloana Localitate sii fie inserata doar informatia despre denumirea localitiitii din coloana-
sursa Adresa_Postala_Profesor. in coloana Adresa_l, doar denumirea striizii. in
coloanaAdresa_2, sii se păstreze numărul casei și (posibil) a apartamentului.

create table profesori_new(


Id_Profesor int NOT NULL Primary Key,
Nume_Profesor char(100) NOT NULL,
Prenume_Profesor char(100) NOT NULL,
Localitate varchar(100) Default 'num.Chisinau',
Adresa_1 char(100),
Adresa_2 char(100)
);

--clustered index--
execute sp_helpindex profesori_new

--transfer de date--
insert into profesori_new(Id_Profesor, Nume_Profesor, Prenume_Profesor, Localitate,
Adresa_1, Adresa_2)
select Id_Profesor, Nume_Profesor, Prenume_Profesor,
SUBSTRING(Adresa_Postala_Profesor, 1, PATINDEX('%,%', Adresa_Postala_Profesor) - 1),
SUBSTRING(Adresa_Postala_Profesor, PATINDEX('%, %', Adresa_Postala_Profesor) + 2,
LEN(Adresa_Postala_Profesor) - 19),
SUBSTRING(Adresa_Postala_Profesor, PATINDEX('%[0-9]%', Adresa_Postala_Profesor),
LEN(Adresa_Postala_Profesor))
FROM profesori
WHERE PATINDEX('%,%', Adresa_Postala_Profesor) > 0

Sarcina 6: Sa se insereze datele in tabelul orarul pentru Grupa= 'CIBJ 71' (Id_ Grupa= 1) pentru
ziua de luni. Toate lectiile vor avea loc ill blocul de studii 'B'. Mai jos, sunt prezentate detaliile
de inserare:
(ld_Disciplina = 107, Id_Profesor= 101, Ora ='08:00', Auditoriu = 202);
(Id_Disciplina = 108, Id_Profesor= 101, Ora ='11:30', Auditoriu = 501);
(ld_Disciplina = 119, Id_Profesor= 117, Ora ='13:00', Auditoriu = 501);
create table orarul(
Id_Grupa smallint Foreign Key References grupe(Id_Grupa),
Id_Disciplina int NOT NULL,
Id_Profesor int NOT NULL,
Ora char(10) NOT NULL,
Auditoriul int NOT NULL
);

Insert into orarul (Id_Grupa, Id_Disciplina, Id_Profesor, Ora, Auditoriul) values(1, 107,
101, '08:00', 202);
Insert into orarul (Id_Grupa, Id_Disciplina, Id_Profesor, Ora, Auditoriul) values(1, 108,
101, '11:30', 501);
Insert into orarul (Id_Grupa, Id_Disciplina, Id_Profesor, Ora, Auditoriul) values(1, 119,
117, '13:00', 501);
Sarcina 7: Să se scrie expresiile T-SQL necesare pentru a popula tabelul orarul pentru grupa
INFl 7, ziua de luni.
Datele necesare pentru inserare trebuie sa fie colectate cu ajutorul instructiunii/instructiunilor
SELECT și introduse in tabelul-destinatie, ~tiind ca: lectie #1 (Ora ='08:00', Disciplina =
'Structuri de date si algoritmi', Profesor ='Bivol Ion') lectie #2 (Ora ='11 :30', Disciplina =
'Programe aplicative', Profesor ='Mircea Sorin') lectie #3 (Ora ='13:00', Disciplina ='Baze de
date', Profesor = 'Micu Elena')
Insert into orarul (Id_Grupa, Id_Disciplina, Id_Profesor, Ora, Auditoriul)
values((select Id_Grupa from grupe where Cod_Grupa like 'INF171'),
(select Id_Disciplina from discipline where Disciplina like 'Structuri de date si
algoritmi'),
(select Id_Profesor from profesori where Nume_Profesor like 'Bivol' and Prenume_Profesor
like 'Ion'), '08:00', 000)

Insert into orarul (Id_Grupa, Id_Disciplina, Id_Profesor, Ora, Auditoriul)


values((select Id_Grupa from grupe where Cod_Grupa like 'INF171'),
(select Id_Disciplina from discipline where Disciplina like 'Programe aplicative'),
(select Id_Profesor from profesori where Nume_Profesor like 'Mircea' and Prenume_Profesor
like 'Sorin'), '08:00', 000)

Insert into orarul (Id_Grupa, Id_Disciplina, Id_Profesor, Ora, Auditoriul)


values((select Id_Grupa from grupe where Cod_Grupa like 'INF171'),
(select Id_Disciplina from discipline where Disciplina like 'Baze de date'),
(select Id_Profesor from profesori where Nume_Profesor like 'Micu' and Prenume_Profesor
like 'Elena'), '08:00', 000)

alter table orarul add Record_ID int NOT NULL IDENTITY(1,1) PRIMARY KEY

Sarcina 8

SELECT DISTINCT Nume_Student, Prenume_Student, Disciplina, Nota, Data_Evaluare,


Tip_Evaluare
FROM studenti s JOIN studenti_reusita r ON s.Id_Student = r.Id_Student , discipline
WHERE Prenume_Student = 'Alex'
ORDER BY Data_Evaluare;

create nonclustered index st_name on studenti(Nume_Student)


create nonclustered index pn_name on studenti(Prenume_Student)
create nonclustered index mark on studenti_reusita(Nota)
create nonclustered index extype on studenti_reusita(Tip_Evaluare)

SELECT Disciplina FROM discipline


WHERE LEN(Disciplina) > 20;

create nonclustered index disciplina_name on discipline(Disciplina)

S-ar putea să vă placă și

  • Proiect Baze de Date
    Proiect Baze de Date
    Document26 pagini
    Proiect Baze de Date
    Anya Mr
    Încă nu există evaluări
  • LL8 Mereuta Ana TI-192
    LL8 Mereuta Ana TI-192
    Document6 pagini
    LL8 Mereuta Ana TI-192
    Anya Mr
    Încă nu există evaluări
  • IoT LL1
    IoT LL1
    Document12 pagini
    IoT LL1
    Anya Mr
    100% (1)
  • LL1 Prelucrarea Semnalelor
    LL1 Prelucrarea Semnalelor
    Document20 pagini
    LL1 Prelucrarea Semnalelor
    Anya Mr
    Încă nu există evaluări
  • LL1 Prelucrarea Semnalelor
    LL1 Prelucrarea Semnalelor
    Document20 pagini
    LL1 Prelucrarea Semnalelor
    Anya Mr
    Încă nu există evaluări
  • IoT LL2
    IoT LL2
    Document9 pagini
    IoT LL2
    Anya Mr
    Încă nu există evaluări
  • IoT LL7
    IoT LL7
    Document4 pagini
    IoT LL7
    Anya Mr
    Încă nu există evaluări
  • LL4 PS
    LL4 PS
    Document12 pagini
    LL4 PS
    Anya Mr
    100% (1)
  • LL2 Baze de Date
    LL2 Baze de Date
    Document15 pagini
    LL2 Baze de Date
    Anya Mr
    Încă nu există evaluări
  • LL3 PS ECiobanu TI192
    LL3 PS ECiobanu TI192
    Document14 pagini
    LL3 PS ECiobanu TI192
    Ecaterina Ciobanu
    Încă nu există evaluări
  • IoT LL4
    IoT LL4
    Document4 pagini
    IoT LL4
    Anya Mr
    Încă nu există evaluări
  • IoT LL6
    IoT LL6
    Document8 pagini
    IoT LL6
    Anya Mr
    Încă nu există evaluări
  • Si LL1
    Si LL1
    Document12 pagini
    Si LL1
    Anya Mr
    Încă nu există evaluări
  • Si LL2
    Si LL2
    Document6 pagini
    Si LL2
    Anya Mr
    Încă nu există evaluări
  • LL5 PS
    LL5 PS
    Document11 pagini
    LL5 PS
    Anya Mr
    Încă nu există evaluări
  • FileMaker Pro - Mereuta - Ana - TI - 192
    FileMaker Pro - Mereuta - Ana - TI - 192
    Document4 pagini
    FileMaker Pro - Mereuta - Ana - TI - 192
    Anya Mr
    Încă nu există evaluări
  • Testarea1 IOC Mereuta Ana TI-192
    Testarea1 IOC Mereuta Ana TI-192
    Document3 pagini
    Testarea1 IOC Mereuta Ana TI-192
    Anya Mr
    Încă nu există evaluări
  • LL6 PS
    LL6 PS
    Document5 pagini
    LL6 PS
    Anya Mr
    Încă nu există evaluări
  • LL
    LL
    Document7 pagini
    LL
    Anya Mr
    Încă nu există evaluări
  • LL3 TS Final A TI-192
    LL3 TS Final A TI-192
    Document8 pagini
    LL3 TS Final A TI-192
    Anya Mr
    Încă nu există evaluări
  • LL1 Testarea Software
    LL1 Testarea Software
    Document4 pagini
    LL1 Testarea Software
    Anya Mr
    Încă nu există evaluări
  • LL4 BD
    LL4 BD
    Document6 pagini
    LL4 BD
    Anya Mr
    Încă nu există evaluări
  • LL3
    LL3
    Document6 pagini
    LL3
    Anya Mr
    Încă nu există evaluări
  • NiveledeTestare Referat
    NiveledeTestare Referat
    Document10 pagini
    NiveledeTestare Referat
    Anya Mr
    Încă nu există evaluări
  • LL5 Baze de Date
    LL5 Baze de Date
    Document3 pagini
    LL5 Baze de Date
    Anya Mr
    Încă nu există evaluări
  • LL3 BD
    LL3 BD
    Document4 pagini
    LL3 BD
    Anya Mr
    Încă nu există evaluări
  • LL6 Baze de Date
    LL6 Baze de Date
    Document7 pagini
    LL6 Baze de Date
    Anya Mr
    Încă nu există evaluări
  • LL7 Baze de Date
    LL7 Baze de Date
    Document5 pagini
    LL7 Baze de Date
    Anya Mr
    Încă nu există evaluări
  • LL4 Baze de Date
    LL4 Baze de Date
    Document6 pagini
    LL4 Baze de Date
    Anya Mr
    Încă nu există evaluări