06.09.2014 Views

Bases de datos: Software libre - Universitat Oberta de Catalunya

Bases de datos: Software libre - Universitat Oberta de Catalunya

Bases de datos: Software libre - Universitat Oberta de Catalunya

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

© FUOC • 71Z799014MO 40 El lenguaje SQL<br />

La respuesta a esta consulta sería:<br />

e1.codigo_empl<br />

e1.apellido_empl<br />

1 Puig<br />

2 Mas<br />

3 Ros<br />

4 Roca<br />

2) Combinación natural<br />

La combinación natural (natural join) <strong>de</strong> dos tablas consiste básicamente, al<br />

igual que en el álgebra relacional, en hacer una equicombinación entre columnas<br />

<strong>de</strong>l mismo nombre y eliminar las columnas repetidas. La combinación natural,<br />

utilizando el SQL92 intermedio o completo, se haría <strong>de</strong> la forma siguiente:<br />

SELECT nombre_columnas_a_seleccionar<br />

FROM tabla1 NATURAL JOIN tabla2<br />

[WHERE condiciones];<br />

Combinación natural en BDUOC<br />

Veamos a continuación un ejemplo en el que las columnas para las que se haría la combinación<br />

natural se <strong>de</strong>nominan igual en las dos tablas. Ahora queremos saber el código y el nombre<br />

<strong>de</strong> los empleados que están asignados al <strong>de</strong>partamento cuyo teléfono es 977.33.38.52:<br />

SELECT codigo_empl, nombre_empl<br />

FROM empleados NATURAL JOIN <strong>de</strong>partamentos<br />

WHERE telefono = '977.333.852';<br />

La combinación natural también se podría hacer con la cláusula USING, sólo aplicando la palabra<br />

reservada JOIN:<br />

SELECT codigo_empl, nombre_empl<br />

FROM empleados JOIN <strong>de</strong>partamentos USING (nombre_<strong>de</strong>p, ciudad_<strong>de</strong>p)<br />

WHERE telefono = '977.333.852';<br />

La respuesta que daría sería:<br />

empleados.codigo_empl<br />

empleados.nombre_empl<br />

5 Clara<br />

6 Laura<br />

8 Sergio<br />

3) Combinación interna y externa<br />

Cualquier combinación pue<strong>de</strong> ser interna o externa:<br />

a) La combinación interna (inner join) sólo se queda con las filas que tienen<br />

valores idénticos en las columnas <strong>de</strong> las tablas que compara. Esto pue<strong>de</strong> hacer<br />

que perdamos alguna fila interesante <strong>de</strong> alguna <strong>de</strong> las dos tablas; por ejemplo,

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!