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:

  1. 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;
  2. 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;
  3. 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;
  4. 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

  1. 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;
  2. 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;
  3. 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;
  4. 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;
  5. TOP: Limita el número de filas devueltas en una consulta.
    SELECT TOP número columnas
    FROM nombre_tabla;
  6. 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;

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.