Expressions de table courantes dans MySQL
-
Insertion d’entrées dans les tables
student_dates
etstudent_details
à l’aide de l’instructionINSERT
- Expressions de table courantes dans MySQL
Ce tutoriel vise à comprendre comment utiliser les expressions de table courantes dans MySQL.
La plupart des analystes de données ont besoin de stocker les résultats de différentes requêtes pour les fusionner avec des requêtes distinctes. A l’aide d’un tableau commun, des expressions peuvent être rendues possibles. Celles-ci sont aussi parfois appelées la clause WITH
.
Essayons de comprendre cela plus en profondeur.
Cependant, avant de commencer, nous créons deux tables factices pour travailler. Ici, nous créons une table, student_dates
, avec quelques lignes.
-- 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 même, nous pouvons créer la table student_details
et quelques lignes définies avec la requête suivante.
-- 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)
);
Insertion d’entrées dans les tables student_dates
et student_details
à l’aide de l’instruction INSERT
Le student_dates
crée une table avec le nom crée une table avec le nom.
Maintenant, à l’aide de l’instruction INSERT
, essayons d’ajouter des données pour quelques étudiants. Cette opération peut se faire comme suit :
-- 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'));
Le code ci-dessus peut entrer les données de l’étudiant dans student_dates
. la commande suivante permet de visualiser ce tableau avec :
SELECT * from student_dates;
Le bloc de code indiqué ci-dessus générerait la sortie suivante :
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
De même, insérons des valeurs dans la table student_details
peut le faire à l’aide de la requête suivante.
-- 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 table student_details
peut être visualisée à l’aide de la requête suivante.
SELECT * from student_details;
Production :
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
Expressions de table courantes dans MySQL
Essayons maintenant de comprendre la clause WITH
.
Nous pouvons utiliser cette clause pour fusionner les deux tables et récupérer les prénoms et les dates des étudiants. Ces deux tables peuvent être appariées à l’aide du stu_id
qui fait office de clé primaire.
Cette opération peut être effectuée à l’aide de la requête suivante.
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 requête précédente nous donnerait le résultat suivant.
stu_firstName stu_date
Preet 2005-05-24
Rich 2001-06-14
Veron 2020-12-13
Geo 2003-05-14
Hash 2002-07-19
À partir des blocs de code ci-dessus, la colonne stu_firstName
est mise en correspondance avec la stu_date
pertinente à l’aide de la colonne stu_id
.
Ainsi, à l’aide de la clause WITH
, nous pouvons écrire efficacement des expressions de table communes pour stocker une requête dans une variable particulière qui pourra être utilisée ultérieurement dans MySQL.