Informatică Liceu (9-12)

Baze de date (SQL - interogări, join-uri, subinterogări, actualizări)

Bazele de date relaționale sunt fundamentale în gestionarea informației, iar SQL (Structured Query Language) este limbajul standard pentru interogarea și manipularea acestora. În cadrul acestei lecții, ne concentrăm pe patru concepte esențiale pentru bacalaureat și nu numai: interogări simple, join-uri, subinterogări și operații de actualizare. O interogare SELECT de bază extrage date dintr-o singură tabelă, specificând coloanele dorite și, opțional, filtrând cu WHERE sau ordonând cu ORDER BY.

Când avem nevoie de date din mai multe tabele, utilizăm join-uri: INNER JOIN returnează doar rândurile care au corespondență în ambele tabele, LEFT JOIN include toate rândurile din tabela din stânga și valorile NULL acolo unde nu există potrivire, iar RIGHT JOIN funcționează similar, dar din perspectiva tabelei din dreapta. Subinterogările (sau interogări imbricate) sunt interogări plasate în interiorul altor interogări, de obicei în clauza WHERE sau HAVING, și pot fi corelate (referindu-se la rândul curent din interogarea exterioară) sau necorelate. Acestea sunt utile pentru a compara valori cu un set rezultat dinamic, de exemplu: SELECT * FROM studenti WHERE medie > (SELECT AVG(medie) FROM studenti).

Operațiile de actualizare (UPDATE) modifică date existente, iar DELETE șterge rânduri; ambele pot fi aplicate cu sau fără condiții WHERE, dar trebuie folosite cu prudență pentru a evita alterări masive. În plus, INSERT permite adăugarea de noi înregistrări. Înțelegerea acestor concepte este crucială pentru rezolvarea problemelor de la bacalaureat, unde se testează atât cunoașterea sintaxei, cât și logica relațională.

Vom explora printr-un exemplu practic cu tabelele 'elevi' (id, nume, clasa, medie) și 'note' (id_elev, materie, nota), pentru a ilustra cum join-urile combină datele, cum subinterogările filtrează eficient și cum actualizările mențin integritatea bazei de date.

Exemple

  • Exemplul 1 – Interogare cu INNER JOIN: Să se afișeze numele elevilor și notele lor la matematică. Presupunem tabelele: elevi(id, nume) și note(id_elev, materie, nota). Comanda: SELECT e.nume, n.nota FROM elevi e INNER JOIN note n ON e.id = n.id_elev WHERE n.materie = 'Matematica'; Rezultatul va lista perechi nume-notă doar pentru elevii care au note la matematică.
  • Exemplul 2 – Subinterogare necorelată: Să se găsească elevii care au media mai mare decât media generală a tuturor elevilor. Comanda: SELECT nume, medie FROM elevi WHERE medie > (SELECT AVG(medie) FROM elevi); Subinterogarea calculează mai întâi media generală, apoi interogarea exterioară filtrează rândurile care depășesc această valoare.
  • Exemplul 3 – Actualizare cu condiție: Să se mărească media tuturor elevilor din clasa a XII-a cu 0.5, dar fără a depăși 10. Comanda: UPDATE elevi SET medie = LEAST(medie + 0.5, 10) WHERE clasa = 'XII'; Instrucțiunea LEAST asigură că media nu depășește 10.

Concepte cheie: SELECT, INNER JOIN / LEFT JOIN, Subinterogări (corelate și necorelate), UPDATE / DELETE / INSERT, WHERE, ORDER BY, Funcții de agregare (AVG, SUM, COUNT)

Vrei exerciții pe lecția asta + AI care te ajută pas cu pas?
Cont gratuit — 20 întrebări AI/zi, exerciții nelimitate.

Creează cont