Informatică Baze de date
Exercitii SQL rezolvate
Exercițiile SQL rezolvate implică aplicarea practică a comenzilor SQL pentru a rezolva probleme specifice din baze de date. Acestea ajută la înțelegerea conceptelor prin exemple concrete. Voi prezenta un exercițiu tipic cu rezolvarea pas cu pas.
Enunțul exercițiului
- Tabelele Avem două tabele: 'studenti' cu coloanele id, nume, și 'note' cu id, student_id, nota. Student_id este cheie străină către studenti.id.
- Cerința Să se găsească numele studenților și media notelor lor, dar doar pentru cei cu media mai mare sau egală cu 5.
- Date de intrare Exemplu: studenti: (1, 'Ana'), (2, 'Bogdan'); note: (1, 1, 6), (2, 1, 7), (3, 2, 4).
Rezolvarea pas cu pas
- 1 Pasul 1 Combină tabelele cu INNER JOIN pentru a asocia studenții cu notele lor: SELECT studenti.nume, AVG(note.nota) AS media FROM studenti INNER JOIN note ON studenti.id = note.student_id.
- 2 Pasul 2 Grupează rezultatele după student pentru a calcula media pe fiecare: GROUP BY studenti.id, studenti.nume.
- 3 Pasul 3 Filtrează cu HAVING pentru a selecta doar studenții cu media >= 5: HAVING AVG(note.nota) >= 5.
- 4 Pasul 4 Rulează interogarea completă: SELECT studenti.nume, AVG(note.nota) AS media FROM studenti INNER JOIN note ON studenti.id = note.student_id GROUP BY studenti.id, studenti.nume HAVING AVG(note.nota) >= 5;.
- 5 Pasul 5 Rezultat: Pentru datele de intrare, va returna ('Ana', 6.5) deoarece Ana are notele 6 și 7 (media 6.5), iar Bogdan are media 4, sub 5.
Exersează cu diverse seturi de date pentru a înțelege cum funcționează JOIN, GROUP BY și HAVING împreună.