You are on page 1of 17

Ministerul Educatiei a Republicii Moldova

UNIVERSITATEA TEHNICĂ A
MOLDOVEI
Facultatea „Calculatoare, Informatică şi Microelectronică”

RAPORT

Lucrare de laborator nr. 4

Baze de date

A efectuat: Popa Cristian

st. gr. AI-182

A verificat: Varvara Ciorbă

Lector . univ.

Chisinau 2021
Select * From grupe;
SELECT * FROM grupe WHERE Nume_Facultate='Informatica si Cibernetica';

SELECT * FROM discipline ORDER BY Nr_ore_plan_disciplina DESC;

SELECT DISTINCT Disciplina as Curs, Nume_Profesor, Prenume_Profesor FROM


discipline JOIN profesori ON discipline.Id_Disciplina = profesori.Id_Profesor ORDER BY
Nume_Profesor DESC, Prenume_Profesor;
SELECT Disciplina FROM discipline WHERE LEN(Disciplina)>20

SELECT Nume_Student FROM studenti WHERE Nume_Student LIKE '%u';


Select Top(5) WITH TIES Nume_Student, Prenume_Student, Nota FROM discipline,
studenti JOIN studenti_reusita ON studenti_reusita.Id_Student=studenti.Id_Student WHERE
Tip_Evaluare='Testul 2' AND Disciplina='Baze de Date' ORDER BY NOTA DESC;
SELECT DISTINCT Adresa_Postala_Student AS Adresa, Cod_Grupa FROM grupe g,
studenti s JOIN studenti_reusita sr ON sr.Id_Student=s.Id_Student WHERE
Adresa_Postala_Student LIKE '%31 August%'

SELECT DISTINCT studenti.Id_Student, Nume_Student FROM studenti JOIN


studenti_reusita ON studenti.Id_Student=studenti_reusita.Id_Student WHERE
Data_Evaluare LIKE '%2018%'
SELECT DISTINCT Nume_Student, Adresa_Postala_Student, Disciplina FROM discipline,
studenti JOIN studenti_reusita ON studenti_reusita.Id_Disciplina=studenti.Id_Student
WHERE Nota >= 8 AND Data_Evaluare LIKE '%2018%'

SELECT DISTINCT Nume_Student, Prenume_Student FROM discipline, studenti JOIN


studenti_reusita ON studenti_reusita.Id_Student = studenti.Id_Student WHERE
Disciplina='Baze de Date' AND Tip_Evaluare='examen' AND Data_Evaluare LIKE
'%2018%' AND Nota <= 8 AND Nota >= 4
SELECT DISTINCT Nume_Profesor, Prenume_Profesor FROM discipline, profesori JOIN
studenti_reusita ON studenti_reusita.Id_Profesor=profesori.Id_Profesor WHERE Disciplina
= 'Baze de Date' AND Data_Evaluare LIKE '%2018%' AND Nota < 5

SELECT DISTINCT Nume_Student, Prenume_Student, Disciplina, Nota, Tip_Evaluare,


Data_Evaluare FROM discipline, studenti JOIN studenti_reusita ON
studenti_reusita.Id_Student = studenti.Id_Student WHERE Prenume_Student='Alex' ORDER
BY Tip_Evaluare DESC
SELECT DISTINCT Disciplina FROM discipline, studenti JOIN studenti_reusita ON
studenti_reusita.Id_Student=studenti.Id_Student WHERE Nume_Student='Florea' AND
Prenume_Student='Ioan'

SELECT DISTINCT Nume_Student, Prenume_Student, Disciplina, Tip_Evaluare, Nota


FROM discipline, studenti JOIN studenti_reusita ON
studenti_reusita.Id_Student=studenti.Id_Student WHERE Nota >=8 AND
Tip_Evaluare='examen' ORDER BY Nota ASC

SELECT Nume_Student, Prenume_Student FROM studenti_reusita JOIN studenti ON


studenti.Id_Student = studenti_reusita.Id_Student, profesori WHERE Prenume_Profesor
LIKE '%Ion%' AND Tip_Evaluare='Examen' AND Data_Evaluare LIKE '%2017%'
INTERSECT SELECT DISTINCT Nume_Student, Prenume_Student FROM
studenti_reusita JOIN studenti ON studenti.Id_Student = studenti_reusita.Id_Student,
profesori WHERE Prenume_Profesor LIKE '%George%' AND Tip_Evaluare='Examen' AND
Data_Evaluare LIKE '%2017%'

SELECT DISTINCT Nume_Student, Prenume_Student, Id_Profesor FROM discipline,


studenti JOIN studenti_reusita ON studenti_reusita.Id_Student=studenti.Id_Student WHERE
Nr_ore_plan_disciplina <= 60 ORDER BY Nume_Student

SELECT DISTINCT Nume_Profesor, Prenume_Profesor FROM profesori JOIN


studenti_reusita ON Id_Student=100

SELECT DISTINCT Nume_Profesor, Prenume_Profesor FROM discipline, profesori JOIN


studenti_reusita ON profesori.Id_Profesor=studenti_reusita.Id_Profesor WHERE
Nr_ore_plan_disciplina<60 AND discipline.Id_Disciplina=studenti_reusita.Id_Disciplina

SELECT DISTINCT Nume_Profesor, Prenume_Profesor FROM discipline, studenti,


profesori JOIN studenti_reusita ON studenti_reusita.Id_Profesor=profesori.Id_Profesor
WHERE Nume_Student='Cosovanu' AND Nota < 5
SELECT COUNT(Id_Student) AS Total FROM discipline JOIN studenti_reusita ON
discipline.Id_Disciplina=studenti_reusita.Id_Disciplina WHERE Tip_Evaluare='Testul 2'
AND Disciplina='Baze de Date' AND Data_Evaluare LIKE '%2018%'

SELECT Nume_Student, Prenume_Student, COUNT(Nota) AS ‘Numarul de Note’ FROM


studenti JOIN studenti_reusita ON studenti.Id_Student = studenti_reusita.Id_Student GROUP
BY Nume_Student, Prenume_Student ORDER BY Nume_Student

SELECT Nume_Profesor, Prenume_Profesor, COUNT(DISTINCT Id_Disciplina) AS


Numarul_de_Discipline FROM profesori JOIN studenti_reusita ON profesori.Id_Profesor =
studenti_reusita.Id_Profesor GROUP BY Nume_Profesor, Prenume_Profesor ORDER BY
Nume_Profesor

SELECT DISTINCT Disciplina, AVG(Nota) AS Medie FROM discipline JOIN


studenti_reusita ON studenti_reusita.Id_Disciplina=discipline.Id_Disciplina WHERE
Tip_Evaluare='Examen' GROUP BY Disciplina HAVING AVG(Nota) >= 7 ORDER BY
Disciplina DESC
SELECT DISTINCT Disciplina, COUNT(DISTINCT Id_Profesor) AS
Numarul_de_Profesori FROM discipline JOIN studenti_reusita ON
discipline.Id_Disciplina=studenti_reusita.Id_Disciplina GROUP BY Disciplina HAVING
COUNT(DISTINCT Id_Profesor)>=2

SELECT Cod_Grupa, COUNT(DISTINCT Id_Student) AS Total_Student FROM grupe


JOIN studenti_reusita ON grupe.Id_Grupa = studenti_reusita.Id_Grupa GROUP BY
Cod_Grupa HAVING COUNT(DISTINCT Id_Student)>=24

SELECT Nume_Student, Prenume_Student, Adresa_Postala_Student FROM studenti


WHERE Adresa_Postala_Student LIKE '%31 August%' UNION ALL SELECT
Nume_Profesor, Prenume_Profesor, Adresa_Postala_Profesor FROM profesori WHERE
Adresa_Postala_Profesor LIKE '%31 August%'

SELECT DISTINCT Id_Student FROM profesori JOIN studenti_reusita ON


studenti_reusita.Id_Profesor=profesori.Id_Profesor WHERE Prenume_Profesor LIKE '%Ion
%' AND Nota >= 5 AND Tip_Evaluare = 'Examen'
SELECT DISTINCT Nume_Student, Prenume_Student, studenti_reusita.Id_Grupa,
AVG(Nota) OVER (PARTITION BY studenti_reusita.Id_Grupa) as Media_Grupei FROM
studenti, studenti_reusita, profesori, grupe WHERE
studenti_reusita.Id_Student=studenti.Id_Student AND
studenti_reusita.Id_Grupa=grupe.Id_Grupa AND Adresa_Postala_Profesor LIKE '%31
August%' GROUP BY Nume_Student, Prenume_Student, studenti_reusita.Id_Grupa, Nota
ORDER BY studenti_reusita.Id_Grupa

SELECT DISTINCT Nume_Student, Prenume_Student, sr.Nota FROM studenti s,


studenti_reusita sr, (SELECT Min(Nota) as NOTA FROM studenti_reusita srr WHERE
srr.Tip_Evaluare='Examen' AND srr.Id_Student='100') AS MIN_NOTA WHERE
sr.Id_Student=s.Id_Student AND sr.Tip_Evaluare='Examen' AND sr.Nota <
MIN_NOTA.NOTA GROUP BY Nume_Student, Prenume_Student, MIN_NOTA.NOTA,
sr.Nota

SELECT DISTINCT Nume_Student, Prenume_Student, MEDIA.NOTA, Data_Evaluare


FROM studenti s, discipline d, studenti_reusita sr, (SELECT Nota as NOTA FROM
studenti_reusita) AS MEDIA WHERE sr.Id_Student = s.Id_Student AND sr.Id_Disciplina =
d.Id_Disciplina AND sr.Nota = MEDIA.NOTA AND sr.Tip_Evaluare = 'Reusita curenta'
AND d.Disciplina = 'Baze de date' AND sr.Data_Evaluare LIKE '%2018%' OR
sr.Data_Evaluare LIKE '%2019%' GROUP BY Nume_Student, Prenume_Student,
MEDIA.NOTA, Data_Evaluare ORDER BY Nume_Student;

SELECT Nume_Student, Prenume_Student, COUNT(sr.Nota) AS Numarul_de_Dezaprobari


FROM studenti s, studenti_reusita sr WHERE s.Id_Student=sr.Id_Student AND
sr.Data_Evaluare LIKE '%2017%' AND sr.Nota < 5 GROUP BY Nume_Student,
Prenume_Student HAVING COUNT(sr.Nota)>=2 ORDER BY Nume_Student

SELECT Nume_Student, Prenume_Student, COUNT(sr.Nota) AS Numarul_de_Dezaprobari


FROM studenti s, studenti_reusita sr WHERE s.Id_Student=sr.Id_Student AND
sr.Data_Evaluare LIKE '%2018%' AND sr.Nota < 5 GROUP BY Nume_Student,
Prenume_Student HAVING COUNT(sr.Nota)>=2 UNION ALL SELECT Nume_Student,
Prenume_Student, COUNT(sr.Nota) AS Numarul_de_Dezaprobari FROM studenti s,
studenti_reusita sr WHERE s.Id_Student=sr.Id_Student AND sr.Data_Evaluare LIKE
'%2017%' AND sr.Nota < 5 GROUP BY Nume_Student, Prenume_Student HAVING
COUNT(sr.Nota)>=2 ORDER BY Nume_Student

SELECT DISTINCT Nume_Student, Prenume_Student, sr.Id_Grupa, AVG(Nota) AS 'Media'


FROM studenti s, studenti_reusita sr, profesori p, grupe g WHERE
sr.Id_Student=s.Id_Student AND sr.Id_Grupa = g.Id_Grupa GROUP BY Nume_Student,
Prenume_Student, sr.Id_Grupa ORDER BY sr.Id_Grupa
SELECT DISTINCT Nume_Student, Prenume_Student FROM studenti s, studenti_reusita sr
WHERE sr.Id_Student = s.Id_Student AND sr.Nota < 5 AND sr.Tip_Evaluare = 'Reusita
curenta' AND sr.Id_Disciplina = ANY (SELECT sr.Id_Disciplina FROM studenti_reusita)

SELECT DISTINCT Nume_Student, Prenume_Student, Id_Disciplina FROM studenti s


JOIN studenti_reusita sr ON s.Id_Student=sr.Id_Student WHERE sr.Nota = ALL(SELECT
Nota FROM studenti_reusita WHERE Nota <= 5)

SELECT Disciplina, AVG(CAST(Nota AS DECIMAL)) AS 'Nota Medie' FROM discipline


d, studenti_reusita sr WHERE d.Id_Disciplina=sr.Id_Disciplina GROUP BY Disciplina
HAVING AVG(Nota) >= 7
SELECT Prenume_Student, COUNT(*) overall from (select Prenume_Student from studenti
union all select Prenume_Profesor from profesori) as ee GROUP BY Prenume_Student
ORDER BY COUNT(*) DESC

SELECT Nume_Student AS Nume, Prenume_Student AS Prenume, tm.Adresa_Postala_Student AS Adresa,


COUNT(*) 'Total Membri' FROM (SELECT Adresa_Postala_Student FROM studenti UNION ALL SELECT
Adresa_Postala_Profesor FROM profesori) AS tm, studenti GROUP BY Nume_Student, Prenume_Student,
tm.Adresa_Postala_Student UNION ALL SELECT Nume_Profesor AS Nume, Prenume_Profesor AS Prenume,
tm.Adresa_Postala_Profesor AS Adresa, COUNT(*) 'Total Membri' FROM (SELECT Adresa_Postala_Profesor
FROM profesori UNION ALL SELECT Adresa_Postala_Student FROM studenti) AS tm, profesori GROUP
BY Nume_Profesor, Prenume_Profesor, tm.Adresa_Postala_Profesor ORDER BY COUNT(*) DESC

SELECT Adresa_Postala_Student AS Adresa, COUNT(*) 'Total Membri' FROM (SELECT


Adresa_Postala_Student FROM studenti UNION ALL SELECT Adresa_Postala_Profesor
FROM profesori) AS tm GROUP BY Adresa_Postala_Student UNION ALL SELECT
Adresa_Postala_Profesor AS Adresa, COUNT(*) 'Total Membri' FROM (SELECT
Adresa_Postala_Profesor FROM profesori UNION ALL SELECT Adresa_Postala_Student
FROM studenti) AS tm GROUP BY Adresa_Postala_Profesor ORDER BY COUNT(*)
DESC

SELECT Disciplina FROM discipline d JOIN studenti_reusita sr ON


d.Id_Disciplina=sr.Id_Disciplina WHERE sr.Tip_Evaluare = 'Examen' AND sr.Nota=ALL
(SELECT MAX(Nota) FROM studenti_reusita) AND sr.Nota > ANY (SELECT AVG(Nota)
AS 'Nota Medie' FROM studenti_reusita) GROUP BY Disciplina
SELECT d.Disciplina, AVG (Nota) AS Nota_Medie FROM studenti_reusita r JOIN
discipline d ON r.Id_Disciplina = d.Id_Disciplina GROUP BY d.Disciplina HAVING
AVG(Nota) < ALL (SELECT AVG(Nota) AS Nota_Medie FROM studenti_reusita r JOIN
discipline d ON r.Id_Disciplina = d.Id_Disciplina WHERE Disciplina = 'Baze de date'
GROUP BY Disciplina)

SELECT Disciplina FROM discipline d, studenti_reusita sr WHERE sr.Id_Disciplina =


d.Id_Disciplina AND sr.Tip_Evaluare = 'Examen' AND sr.Id_Student = ALL (SELECT
AVG(Id_Student) FROM studenti_reusita WHERE Tip_Evaluare = 'Examen' AND Nota < 5)
GROUP BY Disciplina HAVING AVG(Id_Student)> 5

You might also like