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. 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. 2
    Pasul 2 Grupează rezultatele după student pentru a calcula media pe fiecare: GROUP BY studenti.id, studenti.nume.
  3. 3
    Pasul 3 Filtrează cu HAVING pentru a selecta doar studenții cu media >= 5: HAVING AVG(note.nota) >= 5.
  4. 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. 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ă.

Mai multe din Baze de date