Combinació NATURAL en SQL: Guia Completa

Química4,45 KB

Combinació NATURAL en SQL

La combinació natural (natural join) de dues taules consisteix, bàsicament, igual que en l'àlgebra relacional, a fer una equicombinació entre columnes del mateix nom i eliminar les columnes repetides. La combinació natural, utilitzant l'SQL92 intermedi o el complet, es faria de la manera següent:

COMBINACIÓ NATURAL

SELECT nom_columnes_a_seleccionar

FROM taula1 NATURAL JOIN taula2

[WHERE condicions];

SELECT nom_columnes_a_seleccionar

FROM taula1 NATURAL JOIN taula2

[WHERE condicions];

Vegem a continuació un exemple en què les columnes per a les quals es faria la combinació natural s'anomenen igual a totes dues taules. Ara volem saber el codi i el nom dels empleats que estan assignats al departament que té per telèfon 977.33.38.52:

SELECT empleats.codi_empl, empleats.nom_empl

FROM empleats NATURAL JOIN departaments

WHERE departaments.telefon = '977.33.38.52';

La combinació natural també es podria fer amb la clàusula USING, només aplicant la paraula reservada JOIN:

SELECT empleats.codi_empl, empleats.nom_empl

FROM empleats JOIN departaments USING (nom_dpt,ciutat_dpt)

WHERE departaments.telefon = '977.33.38.52';

empleats.codi_empl

empleats.nom_empl

5

Clara

6

Laura

8

Sergi

Combinació interna i externa

Qualsevol combinació pot ser interna o externa:

a) Combinació interna (inner join)

  • Només es queda amb les files que tenen valors idèntics en les columnes de les taules que compara.
  • Això pot fer que perdem alguna fila interessant d'alguna de les dues taules, per exemple, perquè es troba a NULL en el moment de fer la combinació.

El seu format és el següent:

SELECT nom_columnes_a_seleccionar

FROM t1 [INNER] JOIN t2

{ON condicions|

[USING (columna [,columna...])}

[WHERE condicions];

b) Combinació externa (outer join)

  • Ens permet obtenir tots els valors de la taula que hem posat a la dreta, els valors de la que hem posat a l'esquerra o tots els valors d'ambdues taules.

El seu format és:

SELECT nom_columnes_a_seleccionar

FROM t1 [NATURAL] {LEFT|RIGHT|FULL} [OUTER] JOIN t2

{ON condicions|

[USING (columna [,columna...])}

[WHERE condicions];

Descarregar

PDF Word HTML