Joins entre Tablas, Ordenar y el TOP
Temas de este video tutorial: Entender los Joins, Consultas con Inner Joins, Consultas con Outer Joins, Consultas con Cross Joins y Self Joins, Ordenar datos, Filtrado de datos con predicados, Filtrado de datos con TOP y OFFSET-FETCH, Trabajar con valores desconocidos e introducción a los tipos de dato
Tipos de JOINS en SQL
Los JOIN
se utilizan para combinar filas de dos o más tablas en una base de datos basándose en una condición relacionada entre ellas. Aquí están los tipos más comunes de JOIN
:
- INNER JOIN: Devuelve las filas cuando hay una coincidencia en ambas tablas.
SELECT columnas
FROM tabla1
INNER JOIN tabla2 ON tabla1.columna_comun = tabla2.columna_comun;
Ejemplo:
SELECT clientes.nombre, pedidos.id_pedido
FROM clientes
INNER JOIN pedidos ON clientes.id_cliente = pedidos.id_cliente;
- LEFT JOIN (LEFT OUTER JOIN): Devuelve todas las filas de la tabla izquierda y las filas coincidentes de la tabla derecha. Si no hay coincidencia, el resultado es NULL en la tabla derecha.
SELECT columnas
FROM tabla1
LEFT JOIN tabla2 ON tabla1.columna_comun = tabla2.columna_comun;
Ejemplo:
SELECT clientes.nombre, pedidos.id_pedido
FROM clientes
LEFT JOIN pedidos ON clientes.id_cliente = pedidos.id_cliente;
- RIGHT JOIN (RIGHT OUTER JOIN): Devuelve todas las filas de la tabla derecha y las filas coincidentes de la tabla izquierda. Si no hay coincidencia, el resultado es NULL en la tabla izquierda.
SELECT columnas
FROM tabla1
RIGHT JOIN tabla2 ON tabla1.columna_comun = tabla2.columna_comun;
Ejemplo:
SELECT clientes.nombre, pedidos.id_pedido
FROM clientes
RIGHT JOIN pedidos ON clientes.id_cliente = pedidos.id_cliente;
- FULL JOIN (FULL OUTER JOIN): Devuelve las filas cuando hay una coincidencia en una de las tablas. Si no hay coincidencia, el resultado es NULL en la tabla que no tiene coincidencia.
SELECT columnas
FROM tabla1
FULL JOIN tabla2 ON tabla1.columna_comun = tabla2.columna_comun;
Ejemplo:
SELECT clientes.nombre, pedidos.id_pedido
FROM clientes
FULL JOIN pedidos ON clientes.id_cliente = pedidos.id_cliente;
Instrucción Top
La instrucción TOP
se utiliza para limitar el número de filas devueltas en una consulta.
Sintaxi
SELECT TOP número | porcentaje columnas
FROM nombre_tabla;
Ejemplo
SELECT TOP 5 nombre, edad
FROM clientes;
Esto devuelve las primeras 5 filas de la tabla clientes
.
Instrucción OFFSET-FETCH
La instrucción OFFSET-FETCH
se utiliza para paginar los resultados de una consulta. Permite saltar un número específico de filas y luego devolver un número específico de filas.
Sintaxis
SELECT columnas
FROM nombre_tabla
ORDER BY columna
OFFSET número_filas_omitir ROWS
FETCH NEXT número_filas_devolver ROWS ONLY;
Ejemplo:
SELECT nombre, edad
FROM clientes
ORDER BY nombre
OFFSET 10 ROWS
FETCH NEXT 5 ROWS ONLY;
Este comando omite las primeras 10 filas y devuelve las siguientes 5 filas.
Resumen
- INNER JOIN: Devuelve solo las filas con coincidencias en ambas tablas.
SELECT columnas
FROM tabla1
INNER JOIN tabla2 ON tabla1.columna_comun = tabla2.columna_comun;
- LEFT JOIN: Devuelve todas las filas de la tabla izquierda y las coincidencias de la tabla derecha. Las filas no coincidentes de la tabla derecha tendrán NULL.
SELECT columnas
FROM tabla1
LEFT JOIN tabla2 ON tabla1.columna_comun = tabla2.columna_comun;
- RIGHT JOIN: Devuelve todas las filas de la tabla derecha y las coincidencias de la tabla izquierda. Las filas no coincidentes de la tabla izquierda tendrán NULL.
SELECT columnas
FROM tabla1
RIGHT JOIN tabla2 ON tabla1.columna_comun = tabla2.columna_comun;
- FULL JOIN: Devuelve las filas con coincidencias en cualquiera de las tablas. Las filas no coincidentes tendrán NULL en la tabla correspondiente.
SELECT columnas
FROM tabla1
FULL JOIN tabla2 ON tabla1.columna_comun = tabla2.columna_comun;
- TOP: Limita el número de filas devueltas en una consulta.
SELECT TOP número columnas
FROM nombre_tabla;
- OFFSET-FETCH: Pagina los resultados de una consulta.
SELECT columnas
FROM nombre_tabla
ORDER BY columna
OFFSET número_filas_omitir ROWS
FETCH NEXT número_filas_devolver ROWS ONLY;