Documente Academic
Documente Profesional
Documente Cultură
RAPORT
Lucrare de laborator Nr.6
Disciplina: BD
Tema: Crearea tabelelor și indecșilor
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
--/\--
alter table grupe add constraint FK_Prof_Indrumator foreign key (Prof_indrumator)
references profesori(Id_Profesor);
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;
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.
--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)
alter table orarul add Record_ID int NOT NULL IDENTITY(1,1) PRIMARY KEY
Sarcina 8