martes, 6 de octubre de 2015

SQL Sentencias de manipulación - Consultas a más de una tabla - Combinación natural externa a BDUOC (I)

En los ejemplos siguientes veremos cómo varían los resultados que iremos obteniendo según los tipos de combinación externa:

a) Combinación externa izquierda
SELECT e.codigo_empl, e.nombre_empl, e.nombre_dep, e.ciudad_dep, d.telefono
FROM empleados e NATURAL LEFT OUTER JOIN departamentos d;

El resultado sería el que podemos ver a continuación:

lunes, 5 de octubre de 2015

SQL Sentencias de manipulación - Consultas a más de una tabla - Combinación natural interna en BDUOC

Si quisiéramos vincular con una combinación natural interna las tablas empleados y departamentos para saber el código y el nombre de todos los empleados y el nombre, la ciudad y el teléfono de todos los departamentos, haríamos:

SELECT e.codigo_empl, e.nombre_empl, e.nombre_dep, e.ciudad_dep, d.telefono
FROM empleados e NATURAL JOIN departamentos d;

Y obtendríamos el siguiente resultado:

domingo, 4 de octubre de 2015

SQL Sentencias de manipulación - Consultas a más de una tabla - Combinación natural en BDUOC (IV)

b) Por ello disponemos de la combinación externa (outer join), que nos permite obtener todos los valores de la tabla que hemos puesto a la derecha, los de la tabla que hemos puesto a la izquierda o todos los valores de las dos tablas.
Su formato es:

SELECT nombre_columnas_a_seleccionar
FROM t1 [NATURAL] [LEFT|RIGHT|FULL] [OUTER] JOIN t2
{ON condiciones|
[USING (columna [,columna...])}
[WHERE condiciones];

sábado, 3 de octubre de 2015

SQL Sentencias de manipulación - Consultas a más de una tabla - Combinación natural en BDUOC (III)

Combinación interna y externa
Cualquier combinación puede ser interna o externa:
a) La combinación interna (inner join) sólo se queda con las filas que tienen valores idénticos en las columnas de las tablas que compara. Esto puede hacer que perdamos alguna fila interesante de alguna de las dos tablas; por ejemplo, porque se encuentra a NULL en el momento de hacer la combinación. Su formato es el siguiente:


SELECT nombre_columnas_a_seleccionar
FROM t1 [NATURAL] [INNER] JOIN t2
{ON condiciones|
|USING (columna [,columna...])}
[WHERE condiciones];

viernes, 2 de octubre de 2015

SQL Sentencias de manipulación - Consultas a más de una tabla - Combinación natural en BDUOC (II)

Veamos a continuación un ejemplo en el que las columnas para las que se haría la combinación natural se denominan igual en las dos tablas. Ahora queremos saber el código y el nombre de los empleados que están asignados al departamento cuyo teléfono es 977.33.38.52:
SELECT codigo_empl, nombre_empl
FROM empleados NATURAL JOIN departamentos
WHERE telefono = '977.333.852';

La combinación natural también se podría hacer con la cláusula USING, sólo aplicando la palabra reservada JOIN:

SELECT codigo_empl, nombre_empl
FROM empleados JOIN departamentos USING (nombre_dep, ciudad_dep)
WHERE telefono = '977.333.852';

La respuesta que daría sería:

jueves, 1 de octubre de 2015

SQL Sentencias de manipulación - Consultas a más de una tabla - Dos alias para una misma tabla en BDUOC (II)

Combinación natural

La combinación natural (natural join) de dos tablas consiste básicamente, al igual que en el álgebra relacional, en hacer una equicombinación entre columnas del mismo nombre y eliminar las columnas repetidas. La combinación natural, utilizando el SQL92 intermedio o completo, se haría de la forma siguiente:

SELECT nombre_columnas_a_seleccionar
FROM tabla1 NATURAL JOIN tabla2
[WHERE condiciones];