Differences

This shows you the differences between two versions of the page.

Link to this comparison view

bd:laboratoare:08 [2021/04/20 11:06]
ciprian.truica [Exerciții individuale]
bd:laboratoare:08 [2023/04/24 12:32] (current)
sorin.ciolofan [Subcereri corelate în clauze WHERE]
Line 21: Line 21:
 <note important>​Subcererile pot fi imbricate, adică, o subcerere poate avea propriile ei subcereri. <note important>​Subcererile pot fi imbricate, adică, o subcerere poate avea propriile ei subcereri.
 </​note>​ </​note>​
-Din punct de vedere al rolului pe care îl au într-comandă SQL și a modului de a face construcția comenzii, subcererile pot fi împărțite în:+Dacă există ​legătură de asociere sau nu între subcere ​și cererea exterioară, subcererile pot fi de 2 tipuri:
   * Subcereri necorelate   * Subcereri necorelate
-  * Subcereri corelate+  * Subcereri corelate ​ 
 + 
 +Din punct de vedere al rolului pe care îl au într-o comandă SQL și a modului de a face construcția comenzii, subcererile pot fi împărțite în:
   * Subcereri în clauza WHERE   * Subcereri în clauza WHERE
-  * Subcereri pe tabela temporală+  * Subcereri în clauza FROM (Subcereri pe tabela temporală)
   * Subcereri în clauza HAVING   * Subcereri în clauza HAVING
   * Subcereri în clauza SELECT   * Subcereri în clauza SELECT
   * Subcereri în clauza ORDER BY   * Subcereri în clauza ORDER BY
 +
 Subcererile pot fi împărțite pe mai multe categorii, în funcție de numărul de coloane sau linii pe care le returnează:​ Subcererile pot fi împărțite pe mai multe categorii, în funcție de numărul de coloane sau linii pe care le returnează:​
   * Subcereri care întorc o valoare   * Subcereri care întorc o valoare
Line 52: Line 55:
   * În subcereri se pot folosi operatori de mulțimi;   * În subcereri se pot folosi operatori de mulțimi;
   * Subcererile pot fi imbricate până la nivelul 255;   * Subcererile pot fi imbricate până la nivelul 255;
-  * În clauza SELECT o subcerere trebuie să întoarcă o singură ​linie.+  * În clauza SELECT o subcerere trebuie să întoarcă o singură ​valoare.
  
 ==== Subcereri necorelate în clauza WHERE ==== ==== Subcereri necorelate în clauza WHERE ====
Line 146: Line 149:
 <color red>Ex. 6.</​color>​ Să se afișeze angajatii care au venitul lunar minim pe fiecare departament. <color red>Ex. 6.</​color>​ Să se afișeze angajatii care au venitul lunar minim pe fiecare departament.
 {{ :​bd:​laboratoare:​lab8_ex6_new.png?​nolink&​450 |}} {{ :​bd:​laboratoare:​lab8_ex6_new.png?​nolink&​450 |}}
-<color red>Ex. 7.</​color>​ Să se afișeze angajații care au salariul mai mare decât salariul maxim din departamentul SALES.+<color red>Ex. 7.</​color>​ Să se afișeze angajații care au salariul mai mare decât salariul maxim din departamentul SALES. Acesta este un exemplu de subcereri imbricate (in total 3 nivele), subcererile insa NU intorc mai multe linii in final, ci o singura valoare.
 {{ :​bd:​laboratoare:​lab8_7_new.png?​nolink&​450 |}} {{ :​bd:​laboratoare:​lab8_7_new.png?​nolink&​450 |}}
  
Line 173: Line 176:
 Deși o subcerere corelată se execută de mai multe ori, acest lucru nu implică că subcererile corelate sunt mai ineficiente decât subcererile necorelate. Deși o subcerere corelată se execută de mai multe ori, acest lucru nu implică că subcererile corelate sunt mai ineficiente decât subcererile necorelate.
  
-<color red>Ex. 8.</​color>​ Să se afișeze angajații care au salariul peste valoare media a departamentului din care fac parte.+<color red>Ex. 8.</​color>​ Să se afișeze angajații care au salariul peste valoarea medie a departamentului din care fac parte.
 {{ :​bd:​laboratoare:​lab8_8_new.png?​nolink&​450 |}} {{ :​bd:​laboratoare:​lab8_8_new.png?​nolink&​450 |}}
-<color red>Ex. 9.</​color>​ Să se mărească salariile angajaților cu 10% din salariul mediu și să se acorde tuturor angajaților un comision egal cu comisionul mediu pe fiecare departament, numai pentru persoanele angajate înainte de 1-JUN-1981.+<color red>Ex. 9.</​color>​ Să se mărească salariile angajaților cu 10% din salariul mediu și să se acorde tuturor angajaților un comision egal cu comisionul mediu pe departamentul din care face parte angajatul, numai pentru persoanele angajate înainte de 1-JUN-1981.
 {{ :​bd:​laboratoare:​lab8_9_new.png?​nolink&​450 |}} {{ :​bd:​laboratoare:​lab8_9_new.png?​nolink&​450 |}}
  
bd/laboratoare/08.1618906017.txt.gz · Last modified: 2021/04/20 11:06 by ciprian.truica
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0