Expresiones de tabla comunes en MySQL
-
Inserción de entradas en las tablas
student_dates
ystudent_details
utilizando la declaraciónINSERT
- 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.