SQL (Structured Query Language) nos permite seleccionar, actualizar, crear o eliminar registros en una sola tabla en una base de datos relacional. Pero, ¿qué pasaría si tuviéramos dos tablas que tuvieran información diferente sobre la misma persona y quisiéramos usar toda esa información para mostrarla en una sola tabla? Necesitaríamos usar una cláusula JOIN en ese caso. La cláusula SQL JOIN nos permite tomar registros de dos o más tablas a la vez y recuperar datos basados en un campo común. También ayuda a mantener nuestra base de datos normalizada.
Los profesionales de las bases de datos utilizan las normalizaciones para mejorar la integridad de los datos y para mantener baja la redundancia de datos, de modo que puedan disminuir la cantidad de anomalías de datos en la aplicación al eliminar o actualizar un registro.
Comprender los tipos de uniones en SQL
De acuerdo con el estándar ANSI SQL, hay cinco tipos diferentes de SQL JOIN:
- INNER JOIN: esta combinación devuelve registros que tienen valores comunes en ambas tablas.
- UNIÓN IZQUIERDA (EXTERIOR): Devuelve todos los registros de la tabla de la izquierda combinados con los registros coincidentes de la tabla de la derecha. En caso de que no haya registros coincidentes en la tabla de la derecha, devolverá valores NULL.
- UNIÓN DERECHA (EXTERIOR): Devuelve todos los registros de la tabla de la derecha y los registros coincidentes de la tabla de la izquierda. En caso de que no haya registros coincidentes en la tabla de la izquierda, devolverá valores NULL.
- FULL (OUTER) JOIN: devuelve los registros combinados de la combinación externa izquierda y derecha y devuelve todas las filas de ambas tablas. Para los registros para los que no hay coincidencia, la tabla final contendrá valores NULL.
- CROSS JOIN: una combinación cruzada devuelve un producto cartesiano de filas de ambas tablas, al unir cada fila de la primera tabla con cada fila de la segunda tabla.
5 mejores prácticas para escribir uniones SQL:
Ahora sabemos que el método más común para unir y obtener datos de varias tablas es usar el operador JOIN. Pero dominar JOIN para escribir la consulta perfecta requiere mucho trabajo duro y práctica para resolver desafíos del mundo real y también tener una base técnica sólida. Sin embargo, recordar algunos consejos importantes puede ayudarlo a escribir mejores consultas SQL Join . Aquí hay algunos:
1. Uso de alias de tabla
Un alias es un nombre personalizado temporal o una abreviatura para el nombre de una tabla o columna. Los alias son muy útiles, ya que mejoran la legibilidad y el mantenimiento de su consulta al reducir la cantidad de escritura requerida. Hay dos tipos de alias, alias de tabla y alias de columna , cuya sintaxis se proporciona a continuación:
La sintaxis para un alias de columna:
SELECCIONE column_name AS alias_name
DESDE table_name
DONDE condición
La sintaxis para un alias de tabla:
SELECCIONE column_names
FROM nombre_tabla nombre_alias
DONDE condición
El uso de alias de tabla/columna con uniones en las consultas siempre es una buena práctica porque cuando las consultas se vuelven complejas, los nombres también pueden volverse largos y complejos. Por lo tanto, para crear consultas ordenadas, usar alias siempre es una buena práctica.
2. Conocer diferentes uniones antes de usarlas
Siempre es una buena práctica conocer los diferentes JOINS antes de comenzar a escribir una consulta. Los resultados esperados de una consulta en particular deben estar claros antes de aplicar un JOIN. Por ejemplo, la cláusula INNER JOIN devolverá solo los registros coincidentes que sean iguales en ambas tablas, mientras que LEFT JOIN devolverá todos los registros de la tabla izquierda y solo los registros coincidentes de la respectiva tabla derecha. El RIGHT JOIN , por otro lado, devolverá todos los registros de la tabla de la derecha y los registros coincidentes de la respectiva tabla de la izquierda. En caso de que no haya registros coincidentes, devolverá valores NULL. Si recordar los JOINS y la sintaxis parece una tarea difícil, siempre es bueno tener a mano una hoja de trucos de SQL mientras se escriben consultas complejas.
3. Diseño cuidadoso de la condición JOIN
Antes de escribir una consulta SQL, siempre es importante saber qué salida debe proporcionarle su consulta. Es posible que una columna común no identifique de forma única los registros, en cuyo escenario es posible que deba usar dos o más condiciones JOIN, o que deba aplicar combinaciones no equitativas con operadores condicionales. Por lo tanto, es necesario definir una condición JOIN correcta antes de esperar y obtener el resultado correcto de las tablas unidas.
4. Uso de la sintaxis JOIN explícita
Ahora que lo sabe, la cláusula JOIN se usa para combinar o unir datos de dos o más tablas; se recomienda encarecidamente utilizar JOINS explícitos utilizando la cláusula JOIN y ON.
La sintaxis explícita de JOIN tiene varios beneficios. Puede encontrar muchas consultas SQL en las que las tablas se unen mediante JOINS implícitos enumerando los nombres de las tablas en la cláusula FROM y usando la cláusula WHERE para especificar la condición de unión. Esto crea mucha confusión. Por lo tanto, para ver la diferencia entre las condiciones de JOIN y las condiciones de filtrado, se utiliza JOIN explícito. Cuando el tipo de unión se establece explícitamente en una consulta, se vuelve más fácil de entender y esperar qué resultado podría traer la consulta. Por lo tanto, es mejor usar «JOIN» para especificar las tablas a unir y «ON» para especificar la condición de unión.
5. Familiarizarse con múltiples JOINS
Una vez que se haya familiarizado con la escritura de consultas JOIN, es hora de aprender acerca de las uniones múltiples . En SQL, además de unir dos tablas, también puede unir tres o más tablas, lo que se hace con la ayuda de múltiples JOIN. Te permite unir más de dos mesas.
Esta es una operación bastante común, pero hay algunas reglas que debe tener en cuenta antes de escribir las consultas: cada JOIN tiene sus condiciones escritas después de la cláusula «ON»; y para aumentar la legibilidad de la consulta, poner cada JOIN en una nueva línea es un buen enfoque. Sin embargo, debe usar los órdenes lógicos de las tablas mientras usa múltiples JOINS para que satisfaga sus requisitos de datos y minimice el flujo de datos entre varios operadores del plan de ejecución.
Publicación traducida automáticamente
Artículo escrito por priyankab14 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA