Documente Academic
Documente Profesional
Documente Cultură
Orice rezultat care se obține cu ajutorul instrucțiunii Select este o interogare. O interogare poate
returna:
Datele returnate de o interogare pot fi utilizate pentru a efectua o nouă interogare. În aceste cazuri,
prima interogare care se efectuează este interogarea subordonată. Rezultatul ei este utilizat pentru
a efectua o nouă interogare
Exerciții:
*)Să se determine numele elevilor din tabelul Elevi3 care au cea mai mare notă la matematică
*)Care sunt numele elevilor care au cea mai mare medie la disciplinele matematică și informatică
*)Scrieți numele elevilor și media generală a celor care au media mai mare decât media tuturor
elevilor. Să se ordoneze elevii în ordinea crescătoare a mediilor.
*)Care este numele elevilor care au aceeași notă la matematică ca și elevul Popescu marius?
Exemplu: Care este media generaăl la matematică și informatică a elevilor care au cel puțin 8 la una
dintre discipline?
Gruparea Datelor
Datele dintrun tabel pot fi grupate în funcție de valorile dintr-o anumită coloană. Prelucrările datelor
din fiecare grup se fac cu ajutorul funcțiilor agregate. Pentru a grupa datele din tabel după valorile
unei coloane se utilizează clauza GROUP BY nume_coloana adăugată după numele tabelului.
Vânzări
*)Care este numărul de vânzări din fiecare zi? Se grupează datele după data și se numără vânzările
pentru fiecare grup
*) Care este suma vânzărilor zilnice? Se grupează datele după data și însumăm vânzările pentru
fiecare data în parte.
Exemplu :Care este data în care vânzările sun tmaxime, câte vânzări au fost și care este suma
încasată?
Programul MYSQL nu permite mai mult de o interogare cu subordonata sa . Din aces motiv se
creează un tabel de manevră care conține data și suma vânzărilor zilnica. Apoi din acesta, utilizând o
interogare cu subinterogare , extragem datele cerute. În final se șterge tabelul ”manevra”
Create table manevra AS Select data, SUM(valoare) AS vanzare From vanzari GROUP BY data;
Select data, vanzare From manevra WHERE vanzare= (Select MAX(vanzare) From manevra)ș
*)Să se creeze un tabel care să conțină numele elevilor cu cel puțin 8 la matematică
Uniuni de tabele
Uniunea este aclcătuită din două sau mai multe tabele îbtre care există o legătură. De cele mai multe
ori, legătura este data de valorile existente în câte o coloană a fiecărui tabel din uniune. Pentru
tabelele care alcătuiesc uniunea se pot utiliza alias-uri de nume, sub forma nume_tabel AS
nume_alias, introdus eîn clauza FROM. Alias-urile pot fi utilizate în orice parte a instrucțiunii Select.
În aceste cazuri adresarea unei coloane a tabelului se face sub forma Aliza_nume.nume_col
1) O primă formă de realizare a unei uniuni este utilizarea instrucțiunii Select în care la clauza
FROM se trec, pe rând , toate tabelele care o alcătuiesc, iar legătura este precizată cu
ajutorul clauzei WHERE
2) Atunc când uniunea este alcătuită din două tabele, se poate preciza o legătură de tip INNER
sub forma de mai jos. În astfel de cazuri , se afișează datele din tabelul1 și tabelul2, pentru
care este îndeplinită condiția din ON. O astfel de uniune se mai numește și iniune interioară
nume_tabel1 [AS….] INNER JOIN nume_tabel2 [AS…..] ON condiția de uniune
3) Atunci când uniunea este alcătuită din două tabele se poate preciza o legătură de tip LEFT.
OUTER sub forma de mai jos. În astfel de cazuri, se afișează datele din tabel1, iar datele
tabel2 se afișează numai dacă este ăndeplinită condiția din ON, astfel în locul lor se afișează
valoarea implicită (NULL, de cele mai multe ori ). O astfel de uniune se numește uniune
exterioară stânga
Ex: Se consideră 2 tabele : Produse și Date_Produse. Legătura dintre ele este data de coloanele
cod. Pentru un cod dat, din tabelul Produse se poate extrage cantitatea exeistentă într-un
magazine dintr-un anumit produs și denumirile produsului, producătorul său din tabelul
Date_Produse.
Produse Date_Produse
Exercitii
*)pentru fiecare produs existent în magazine, care este trecut în tabelul Date_produse să se
afișeze denumirile și cantitatea (în ambele variante).
*)La fel ca la punctul anterior, numai că se vor trece datele existente pentru toate produsele din
tabelul Produse
*)La fel ca mai sus numai că se vor trece datele existente pentru toate produsele din tabelul
Date_Produse
*)Să se afișeze codurile din tabelul produse care nu se regăsesc înre codurile din tabelul
Date_Produse
*)Să se selecteze codurile de produse din tabelul Date_produse care nu se regăsesc printer
codurile din tabelul Produse
Autouniun
Dacă se unește un tabel cu el însuși, trebuie ca același tabel să aibă două alias-uri diferite și se
consider unite printr-o coloană
Exemplu. În tabelul pers, care sunt persoanele care locuiesc în același oraș cu Ioana?
Nume Oraș
Ioana Galați
Marina București
Cristian Târgu Jiu
Carmen Onești
Petru Galați
Cristian Galați