Differences

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

Link to this comparison view

bd:laboratoare:05 [2019/03/16 22:44]
iulia.radulescu
bd:laboratoare:05 [2021/03/30 13:17] (current)
ciprian.truica [Exerciții individuale]
Line 2: Line 2:
  
 ==== Obiective ==== ==== Obiective ====
 +
 +  * Cross Join
 +  * Inner Join
 +    * Equi Join
 +    * Natural Join
 +    * Theta Join
 +  * Left Outer Join
 +  * Right Outer Join
 +  * Full Outer Join
 +  * Vertical Join
  
 ==== Materiale ajutătoare ==== ==== Materiale ajutătoare ====
 +
 +[[bd:​resurse:​tables|Resurse BD]]
 +
  
 ==== Noțiuni teoretice ==== ==== Noțiuni teoretice ====
Line 14: Line 27:
   * CROSS JOIN   * CROSS JOIN
  
-{{:​bd:​laboratoare:​join_types.png?​nolink&​500|}} 
  
-Un caz special este SELF JOIN care face JOIN pe o tabelă cu ea însăși.+Un caz special este **SELF JOIN** care face JOIN **pe o tabelă cu ea însăși**. 
 + 
 +{{:​bd:​laboratoare:​join-types.png?​nolink&​500|}} 
 + 
 +Image source: http://​kirillpavlov.com/​blog/​2016/​04/​23/​beyond-traditional-join-with-apache-spark/​
  
 === JOIN === === JOIN ===
Line 25: Line 41:
   * **column_alias** – este un nume alocat unei coloane(expresii) care va fi folosit în formatarea coloanei (numele care apare în antetul listei);   * **column_alias** – este un nume alocat unei coloane(expresii) care va fi folosit în formatarea coloanei (numele care apare în antetul listei);
   * **WHERE condition** – reprezintă o clauză (înlănțuire de condiții) care trebuie să fie îndeplinită în criteriul de selecție a înregistrărilor;​   * **WHERE condition** – reprezintă o clauză (înlănțuire de condiții) care trebuie să fie îndeplinită în criteriul de selecție a înregistrărilor;​
-  * **ORDER BY {expresion|position} [ASC|DESC]** – ordonează înregistrările selectate după coloanele din expresie sau în ordinea coloanelor (selecterate ​în clauza SELECT) specificate prin poziție.+  * **ORDER BY {expresion|position} [ASC|DESC]** – ordonează înregistrările selectate după coloanele din expresie sau în ordinea coloanelor (selectate ​în clauza SELECT) specificate prin poziție.
  
 <code sql> <code sql>
Line 39: Line 55:
 === CROSS JOIN (Produsul Cartezian) === === CROSS JOIN (Produsul Cartezian) ===
   * Produsul cartezian (Cross Join) a două tabele se obține prin concatenarea fiecărei linii dintr-o tabelă cu fiecare linie din cealaltă tabelă;   * Produsul cartezian (Cross Join) a două tabele se obține prin concatenarea fiecărei linii dintr-o tabelă cu fiecare linie din cealaltă tabelă;
-  * Rezultatul este un număr de linii egal cu produsul cartezian dintre numărul de linii din fiecare tabela din cluaza ​FROM. Această situație este mai puțin practică și se întâlnește,​ de regulă, când sunt puse greșit condițiile.+  * Rezultatul este un număr de linii egal cu produsul cartezian dintre numărul de linii din fiecare tabela din clauza ​FROM. Această situație este mai puțin practică și se întâlnește,​ de regulă, când sunt puse greșit condițiile.
   * Sintaxa CROSS  JOIN este:   * Sintaxa CROSS  JOIN este:
 <code sql> <code sql>
Line 212: Line 228:
  
 == Right Outer Join == == Right Outer Join ==
-Fie două tabele A și B. Operația de Left Outer Join (A Right Outer Join B) returnează toate înregistrările din tabela B și, în cazul în care nu găsește o corespondență în tabela A va întoarce NULL, altfel va întoarce valorile selectate din tabela A.+Fie două tabele A și B. Operația de Right Outer Join (A Right Outer Join B) returnează toate înregistrările din tabela B și, în cazul în care nu găsește o corespondență în tabela A va întoarce NULL, altfel va întoarce valorile selectate din tabela A.
   * Sintaxa Right Outer Join (merge doar în Oracle):   * Sintaxa Right Outer Join (merge doar în Oracle):
 <code sql> <code sql>
Line 233: Line 249:
 </​code>​ </​code>​
 == Full Outer Join == == Full Outer Join ==
-Fie două tabele A și B. Operația de Left Outer Join (A Right Outer Join B) returnează toate înregistrările din tabela A și B și, în cazul în care nu găsește o corespondență în tabela A sau B va întoarce NULL, altfel va întoarce valorile selectate din tabela A sau B.+Fie două tabele A și B. Operația de Full Outer Join (A Full Outer Join B) returnează toate înregistrările din tabela A și B și, în cazul în care nu găsește o corespondență în tabela A sau B va întoarce NULL, altfel va întoarce valorile selectate din tabela A sau B.
   * Sintaxa Full Outer Join (recomandată de ultimul standard SQL, merge în toate SGBD-urile) este:   * Sintaxa Full Outer Join (recomandată de ultimul standard SQL, merge în toate SGBD-urile) este:
 <code sql> <code sql>
Line 289: Line 305:
  
 {{:​bd:​laboratoare:​lab5_15.png?​nolink&​250|}} {{:​bd:​laboratoare:​lab5_15.png?​nolink&​250|}}
 +
 +====Exerciții individuale====
 +  - Să se facă o listă cu:
 +    * Nume Angajat
 +    * Departament Angajat
 +    * Grad Angajat
 +    * Nume Sef
 +    * Departament Sef
 +    * Grad Sef
 +
 +Sa se afiseze toate rezutlatele,​ chiar daca nu se gasesc legaturi de JOIN intre intregistrarile din diferitele tabele.
  
  
bd/laboratoare/05.1552769042.txt.gz · Last modified: 2019/03/16 22:44 by iulia.radulescu
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