Expressions de table courantes dans MySQL

Preet Sanghavi 30 janvier 2023
  1. Insertion d’entrées dans les tables student_dates et student_details à l’aide de l’instruction INSERT
  2. Expressions de table courantes dans MySQL
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.

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

Article connexe - MySQL Query