Tutoriales

cláusula SQL CON

A medida que profundice en las consultas de bases de datos y SQL, una de las características más potentes e increíbles que encontrará son las expresiones de tabla comunes, comúnmente conocidas como CTE.

En SQL, la cláusula CON también se denomina CTE. Esta es una característica poderosa que nos permite crear conjuntos de resultados temporales dentro de las consultas. Una de las funciones principales de CTE es reducir consultas complejas a subconsultas más pequeñas y reutilizables. A largo plazo, esto ayuda a que el código sea más legible y fácil de mantener.

Únase a este tutorial mientras exploramos cómo funcionan las expresiones de tabla comunes utilizando la cláusula CON y las funciones admitidas.

Requerir:

Para fines de demostración utilizaremos lo siguiente:

  1. MySQL 8.0 o superior
  2. Base de datos de muestra de Sakila

Después de satisfacer los requisitos dados, podemos proceder a saber más sobre la cláusula CTE y CON.

cláusula SQL CON

La cláusula CON nos permite definir uno o más conjuntos de resultados temporales, llamados expresiones de tabla comunes.

Podemos hacer referencia al CTE resultante en la consulta principal como cualquier otra tabla o conjunto de resultados. Esto juega un papel vital en la creación de consultas SQL modulares.

Aunque la sintaxis de un CTE puede variar ligeramente según sus requisitos, a continuación se muestra la sintaxis básica de un CTE en SQL:

CON cte_name (columna1, columna2, …) COMO (
— consulta CTE
elegir…
de…
Dónde…
)
— Consulta principal
elegir…
de…
Agregue cte_name a…
Dónde…

Comenzamos con la palabra clave CON, que le dice a la base de datos SQL que queremos crear y usar un CTE.

A continuación especificamos el nombre del CTE, lo que nos permite referenciarlo en otras consultas.

Si el CTE contiene alias de columnas, también especificamos una lista opcional de nombres de columnas.

A continuación pasamos a definir la consulta CTE. Contiene las tareas o materiales realizados por el CTE (entre paréntesis).

Finalmente, especificamos la consulta principal que hace referencia al CTE.

Ejemplos de uso:

Una de las mejores formas de aprender a utilizar y utilizar CTE es ver ejemplos prácticos.

Tome la base de datos de muestra de Sakila como ejemplo. Digamos que queremos encontrar los 10 clientes principales con más alquileres.

Eche un vistazo al CTE que se muestra a continuación.

Utilice la cláusula SQL CON para encontrar los 10 clientes principales con más alquileres:

Alquilar AS con cliente (
SELECCIONE c.customer_id, c.first_name, c.last_name, COUNT(r.rental_id) ASrental_count
del cliente c
Agregar arrendamiento r ON c.customer_id = r.customer_id
Agrupar por c.customer_id, c.first_name, c.last_name
)
elegir *
Alquiler del cliente
Ordenar por cantidad de alquiler DESC
Límite 10;

En el ejemplo dado, primero definimos un nuevo CTE usando la palabra clave CON, seguida del nombre que deseamos asignar al CTE. En este caso lo llamamos «CustomerRentals».

Dentro del organismo CTE, calculamos el importe del alquiler para cada cliente conectando al cliente con el cronograma de alquiler.

Finalmente, en la consulta principal, seleccionamos todas las columnas del CTE, ordenamos los resultados por recuento de arrendamiento (descendente) y limitamos la salida solo a las primeras 10 filas.

Esto nos permite conseguir los clientes con la mayor cantidad de alquileres, como se muestra en el siguiente resultado:

Descripción de la tabla de nombres generada automáticamente

CTE de retorno

En otros casos, es posible que se trate de una estructura de datos jerárquica. Aquí es donde entra en juego el CTE recursivo.

Tomemos un ejemplo en el que queremos navegar por una jerarquía o representar una estructura de árbol. Podemos usar la palabra clave CON RECURSIVE para crear un CTE recursivo.

Dado que no hay datos jerárquicos en la base de datos de Sakila para demostrar el CTE recursivo, establezcamos un ejemplo básico.

Crear departamento de tabla (
La clave primaria Department_id INT se incrementa automáticamente,
Nombre del departamentoVARCHAR(255) NOT NULL,
Parent_department_id INT,
La clave externa (parent_department_id) se refiere al departamento (department_id)
);
Insertar departamento (nombre del departamento, ID del departamento principal)
valores
('empresa', NULO),
('Finanzas', 1),
('Recursos Humanos', 1),
('Contabilidad', 2),
«Reclutamiento», 3),
('Nómina', 4);

En este ejemplo, tenemos una tabla de «Departamento» de muestra con algunos datos aleatorios. Para encontrar la jerarquía de departamentos, podemos usar CTE recursivo de la siguiente manera:

Con jerarquía de departamento recursiva AS (
Seleccione ID de departamento, nombre de departamento, ID de departamento principal
del departamento
donde parent_department_id es NULL
propiedad conjunta
Seleccione d.department_id, d.department_name, d.parent_department_id
del departamento d
UNIRSE a la Jerarquía de Departamentos dh ON d.parent_department_id = dh.department_id
)
elegir *
DE jerarquía de departamentos;

En este caso, el CTE recursivo comienza desde el departamento con NULL «parent_department_id» (departamento raíz) y recupera recursivamente los subdepartamentos.

en conclusión

En este tutorial, aprendimos sobre las características más básicas y útiles de las bases de datos SQL, como las expresiones de tabla comunes, al comprender cómo usar la palabra clave CON.

LEER  Reemplazar cadenas en SQL

Publicaciones relacionadas

Deja una respuesta

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

Botón volver arriba