martes, 8 de noviembre de 2016

USING


Si hay varias columnas que tienen los mismos nombres pero los tipos de datos no se corresponden, la cláusula NATURAL JOIN se puede modificar mediante la cláusula USING para especificar las columnas que se deben utilizar para una unión igualitaria.

Utilice la cláusula USING para asignar sólo una columna cuando corresponde a más de una columna.

No utilice un alias o un nombre de tabla en las columnas a las que se hace referencia.
Las cláusulas NATURAL JOIN y USING se excluyen mutuamente.

Cláusula USING
Las uniones naturales pueden utilizar todas las columnas con nombres y tipos de datos correspondientes para unir las tablas. Se puede utilizar la cláusula USING para especificar únicamente las columnas que se deben utilizar para una unión igualitaria. Las columnas a las que se hace referencia en la cláusula USING no deben tener cualificador (nombre de tabla o alias) en ninguna parte de la sentencia SQL.

Por ejemplo, esta sentencia es válida: 
SELECT l.city, d.department_name
   FROM   locations l JOIN departments d USING (location_id)
WHERE  location_id = 1400;

La sentencia siguiente no es válida por que la cláusula WHERE cualifica a LOCATION_ID:

SELECT l.city, d.department_name
    FROM  locations l JOIN departments d USING (location_id)
 WHERE d.location_id = 1400;

ORA-25154: column part of USINGclause cannot have qualifier
Se aplica la misma restricción a las uniones naturales. Por tanto, las columnas con el mismo nombre en ambas tablas se deben utilizar sin cualificadores.

La cláusula USING para Uniones Igualitarias
Para determinar el nombre de departamento de un empleado, compare el valor de la columna DEPARTMENT_ID de la tabla EMPLOYEES con los valores de DEPARTMENT_ID de la tabla DEPARTMENTS. La relación entre las tablas EMPLOYEES y DEPARTMENTS es una unión igualitaria (es decir, los valores de la columna DEPARTMENT_ID de ambas tablas deben ser iguales). Con frecuencia, este tipo de unión implica complementos de clave primaria y ajena. 

Nota: Las uniones igualitarias se denominan también uniones simples o uniones internas. 


SELECT employees.employee_id, employees.last_name,departments.location_id, department_id 
    FROM   employees JOIN departments 
    USING (department_id) ; 



El ejemplo une la columna DEPARTMENT_ID de las tablas EMPLOYEES y DEPARTMENTS, con lo que muestra la ubicación en la que trabaja un empleado. 

Utilice prefijos de tabla para cualificar nombres de columna que estén en varias tablas.
Utilice prefijos de tabla para mejorar el rendimiento.
Utilice alias de columna para distinguir columnas que tengan nombres idénticos pero que residan en tablas diferentes.
No utilice alias en columnas que estén identificadas en la cláusula USING y que se muestren en cualquier otra parte de la sentencia SQL.



Share:

0 comentarios:

Publicar un comentario

Archivo

Cual es el tema de mayor interes para ti?