Expresiones de tabla comunes en MySQL

Preet Sanghavi 30 enero 2023
  1. Inserción de entradas en las tablas student_dates y student_details utilizando la declaración INSERT
  2. Expresiones de tabla comunes en MySQL
Expresiones de tabla comunes en MySQL

Este tutorial tiene como objetivo comprender cómo usar expresiones de tabla comunes en MySQL.

La mayoría de los analistas de datos necesitan almacenar los resultados de diferentes consultas para fusionarlos con otros separados. Con la ayuda de una tabla común, se pueden hacer posibles las expresiones. Estos también se conocen a veces como la cláusula WITH.

Tratemos de entender esto con mayor profundidad.

Sin embargo, antes de comenzar, creamos dos tablas ficticias para trabajar. Aquí creamos una tabla, student_dates, junto con algunas filas.

-- create the table student_dates
CREATE TABLE student_dates(
  stu_id int,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_date date,
  primary key(stu_id)
);

De manera similar, podemos crear la tabla student_details y algunas filas definidas con la siguiente consulta.

-- create the table student_details
CREATE TABLE student_details(
  stu_id int,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_lastName varchar(255) DEFAULT NULL,
  primary key(stu_id)
);

Inserción de entradas en las tablas student_dates y student_details utilizando la declaración INSERT

El student_dates crea una tabla con el nombre hace una tabla con el nombre.

Ahora, con la ayuda de la declaración INSERT, intentemos agregar datos para algunos estudiantes. Esta operación se puede hacer de la siguiente manera:

-- insert rows to the table student_dates
INSERT INTO student_dates(stu_firstName,stu_date) 
 VALUES("Preet",STR_TO_DATE('24-May-2005', '%d-%M-%Y')),
 ("Dhruv",STR_TO_DATE('14-June-2001', '%d-%M-%Y')),
 ("Mathew",STR_TO_DATE('13-December-2020', '%d-%M-%Y')),
 ("Jeet",STR_TO_DATE('14-May-2003', '%d-%M-%Y')),
 ("Steyn",STR_TO_DATE('19-July-2002', '%d-%M-%Y'));

El código anterior puede ingresar los datos del estudiante en student_dates. el siguiente comando puede visualizar esta tabla con:

SELECT * from student_dates;

El bloque de código mencionado anteriormente generaría el siguiente resultado:

stu_id	stu_firstName	stu_date
1		Preet			2005-05-24
2		Dhruv			2001-06-14
3		Mathew			2020-12-13
4		Jeet			2003-05-14
5		Steyn			2002-07-19

Del mismo modo, insertemos valores en la tabla student_details podemos hacerlo con la ayuda de la siguiente consulta.

-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName) 
 VALUES(1,"Preet","Sanghavi"),
 (2,"Rich","John"),
 (3,"Veron","Brow"),
 (4,"Geo","Jos"),
 (5,"Hash","Shah"),
 (6,"Sachin","Parker"),
 (7,"David","Miller");

La tabla student_details se puede visualizar con la ayuda de la siguiente consulta.

SELECT * from student_details;

Producción :

stu_id	stu_firstName	stu_lastName
1	      Preet	        Sanghavi
2	      Rich	        John
3	      Veron	        Brow
4	      Geo	        Jos
5	      Hash	        Shah
6	      Sachin	    Parker
7	      David	        Miller

Expresiones de tabla comunes en MySQL

Ahora tratemos de entender la cláusula WITH.

Podemos usar esta cláusula para fusionar las dos tablas y obtener los nombres y fechas de los estudiantes. Estas dos tablas se pueden combinar con la ayuda del stu_id que actúa como clave principal.

Esta operación se puede realizar con el uso de la siguiente consulta.

WITH
  cte1 AS (SELECT stu_id, stu_firstName FROM student_details),
  cte2 AS (SELECT stu_id, stu_date FROM student_dates)
SELECT stu_firstName, stu_date FROM cte1 JOIN cte2
WHERE cte1.stu_id = cte2.stu_id;

La consulta anterior nos daría el siguiente resultado.

stu_firstName	stu_date
Preet			2005-05-24
Rich			2001-06-14
Veron			2020-12-13
Geo				2003-05-14
Hash			2002-07-19

De los bloques de código anteriores, la columna stu_firstName se compara con el stu_date relevante con la ayuda de la columna stu_id.

Por lo tanto, con la ayuda de la cláusula WITH, podemos escribir de manera eficiente expresiones de tabla comunes para almacenar una consulta en una variable particular que se puede usar más adelante en MySQL.

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub

Artículo relacionado - MySQL Query