Databases
T01-009-02 Composiciones internas con JOIN
Enunciado
Por motivos de eficiencia y de separación de las condiciones de asociación respecto a las condiciones de selección de registros, existe una sintaxis más extendida para realizar composiciones internas que la de partir de un producto cartesiano.
SELECT tabla1.columna1, tabla1.columna2, …, tabla2.columna1, tabla2.columna2, …
FROM tabla1
[NATURAL JOIN tabla2] |
[JOIN tabla2 USING (columna)] |
[JOIN tabla2 ON (tabla1.columna=tabla2.columna)] |
[CROSS JOIN tabla2];En los siguientes ejercicios iremos viendo cada una de los tipos de composición, comenzando por
NATURAL JOINDetecta automáticamente las claves de unión, basándose en el nombre de la columna que coincide en ambas tablas. Por supuesto, se requerirá que las columnas de unión tengan el mismo nombre en cada tabla.
Ejemplo:
El atributo que relaciona
countriesconregionses, en ambas tablas,REGION_ID, por eso, en la siguiente sentencia conNATURAL JOIN, no es necesario indicarla.Muestra los países ordenados según el identificador de la región en la que se encuentra
SELECT REGION_ID, REGION_NAME, COUNTRY_NAME
FROM HR.regions NATURAL JOIN HR.countries
ORDER BY REGION_NAME
REGION_ID REGION_NAME COUNTRY_NAME 2 Americas Argentina 2 Americas ... ... ... ... 3 Asia Singapore 3 Asia ... ... ... ... 1 Europe Germany 1 Europe ... ... ... ... 4 Middle East and Africa Israel 4 Middle East and Africa ... ... ... ... Ejercicio
Utilizando NATURAL JOIN, muestra las direcciones (locations) que están en el país cuyo nombre es 'United Kingdom'.
Ordena el resultado alfabéticamente por la ciudad.
Tipo
Solución
SELECT STREET_ADDRESS, CITY, COUNTRY_NAME
FROM HR.locations NATURAL JOIN HR.countries
WHERE COUNTRY_NAME = 'United Kingdom'
ORDER BY CITY
Prueba
LibrerÃas (Onfly databases)

