servidores de bases de datos relacionales más modernos utilizan el lenguaje de consulta estructurado o SQL para agregar, actualizar e informar sobre la información en bases de datos . Sentencia SELECT de SQL , que muestra los datos , tiene una cláusula opcional llamado INNER JOIN . Se conecta dos mesas unidas temporalmente en una sola unidad . SQL le permite utilizar INNER JOIN de dos maneras : implícitamente , mediante la especificación de las tablas y de forma explícita mediante la inclusión de las palabras " unión interna " en la sintaxis de la sentencia . Seleccione
En SQL , la instrucción SELECT muestra listas sobre la base de datos en una base de datos. Por ejemplo , para mostrar una simple lista de clientes ordenados por nombre , puede utilizar el siguiente código SQL: SELECT
customer_number , nombre, ciudad, estado, zip_code FROM clientes ORDER BY nombre ;
combinación interna
Una operación JOIN conecta dos tablas. La tabla de clientes , en este ejemplo , puede tener un campo llamado sales_code que se refiere a los registros correspondientes en una tabla separada vendedor . Las siguientes declaraciones lista de la información del cliente y el nombre del vendedor. El primer ejemplo utiliza ÚNETE implícitamente , el segundo , de manera explícita :
SELECT customer_number , nombre, ciudad, estado, zip_code , sales_name FROM clientes , vendedor DONDE customers.sales_code = salesperson.sales_code ORDER BY nombre ;
< p > SELECT customer_number , nombre, ciudad, estado, zip_code , sales_name FROM clientes INNER JOIN vendedor EN customers.sales_code = salesperson.sales_code ORDER BY nombre ;
Resultados
INNER JOIN y enfoques de combinación implícitas producen los mismos resultados. Tanto la lista de los mismos registros ordenados en el mismo orden . Cuando se utiliza la sintaxis INNER JOIN , esto indica explícitamente SQL para conectar dos tablas sólo en los registros que tienen en común . Con la versión implícita , SQL supone que desea una combinación interna y conecta las tablas como si se hubiera especificado explícitamente.
Rendimiento
La diferencia de rendimiento entre INNER JOIN y unión implícita depende del servidor de base de datos, como DB2 de IBM o de Microsoft SQL Server. En el caso de DB2, el INNER JOIN es de aproximadamente un percent.faster . Antes de que el servidor ejecuta un SELECT , se organiza la instrucción en un plan, que es un conjunto de pasos optimizada para recabar datos de manera eficiente . Los resultados previstos para los dos enfoques son iguales, por lo que el plan es normalmente cerca de la misma . Desde DB2 muestra una ligera diferencia de velocidad entre los dos métodos , los planes son probablemente diferentes , pero sólo en forma mínima .
Best Practice
La sintaxis INNER JOIN es una nuevo enfoque , más explícita a una instrucción SELECT. El rendimiento de SQL Server Website recomienda su uso en el método implícito mayor porque es más clara. El formato implícito hace que la cláusula WHERE realizar una doble función con la unión de las tablas y la evaluación de las pruebas condicionales. El formato explícito mantiene las dos tareas separadas; INNER JOIN no la unión y donde las pruebas de datos para valores específicos
.