Retour au blog

Un aperçu des requêtes dans MySQL

Un aperçu des requêtes dans MySQL

La durabilité dans les affaires est difficile sans une gestion appropriée des données. Construire un système bien défini est essentiel pour gérer les opérations internes et externes. Un aperçu détaillé des données de l'entreprise aide à comprendre le flux de travail global et à mesurer les performances. De plus, l'utilisation de bases de données permet de gagner du temps et d'accéder aux informations sans effort.

Qu'est-ce qu'une base de données ?

Une base de données est un système organisé utilisé pour stocker des informations de manière sécurisée. Il offre une catégorisation et permet la création de tables pour trier des éléments similaires sous un même groupe. Les tables offrent des options pour lister les informations dans plusieurs lignes et colonnes. En conséquence, la qualité et la cohérence des données s'améliorent. Outre les capacités de stockage et de facilité d'accès, les bases de données jouent un rôle important dans la protection de la vie privée et la sécurisation des systèmes. Qu'elle soit ponctuelle ou qu'elle fasse partie d'un processus codé dans une application, la récupération de données est l'un des aspects les plus critiques de la gestion de bases de données.

Une requête dans un SGBD relationnel est n'importe quelle commande utilisée pour récupérer des données à partir d'une table. SELECT est une instruction presque toujours utilisée dans les requêtes Structured Query Language (SQL). Il existe plusieurs méthodes pour récupérer des informations à partir d'une base de données. Généralement, les développeurs préfèrent l'option en ligne de commande car elle est rapide et efficace. Elle permet de soumettre des requêtes de manière transparente.

Dans ce guide, nous allons vous présenter MySQL et voir comment travailler avec des requêtes dans MySQL. C’est parti !

Prérequis

Pour suivre ce tutoriel, vous aurez besoin de ce qui suit :

Étape 1 — Créer et configurer une base de données

Avant de commencer et d'écrire notre première requête SQL, nous devons créer une base de données et y ajouter des tables. Après cela, nous remplirons les tables à l'aide d'exemples de données. Travailler avec des bases de données vous aidera à comprendre la configuration de base et vous donnera confiance dans l'utilisation des requêtes.

L'expérience pratique est le moyen le plus efficace de construire des concepts et de comprendre l'importance des bases de données. Dans ce guide, nous vous accompagnerons dans l'utilisation des bases de données et leur importance pour résoudre des problèmes du monde réel. Examinons un scénario pour comprendre comment les bases de données peuvent aider à organiser les enregistrements de manière structurée.

Scénario : Nous allons créer une base de données dans laquelle un groupe d'étudiants part en vacances pour fêter leurs anniversaires. Avant de partir en vacances, ils prévoient de participer à une compétition amicale de natation. De plus, chaque ami du groupe prévoit une liste de choses à faire pour rendre leur voyage palpitant et agréable.

Tout d'abord, ouvrez MySQL en tant qu'utilisateur root :

Ensuite, créez une base de données en exécutant la commande suivante :

Ensuite, utilisons notre base de données à l'aide de la commande suivante :

Après cela, nous allons créer des tables dans notre base de données. Nommez la première table celebration. Notre table aura des colonnes pour les noms de nos amis (name), les tournois qu'ils ont gagnés (wins) et également une colonne pour leur meilleur temps (time):

Nous allons ensuite remplir notre table avec des données :

Ensuite, créez une autre table dans notre base de données pour stocker les informations sur leurs activités d'anniversaire préférées. Nous allons créer une table appelée vacation et contenant les colonnes suivantes :

Liste

Détail

name:

Stocke le nom de chaque ami.

birthdate:

Suit la date de naissance de chaque individu.

activity:

Conserve un enregistrement de leur activité préférée.

Destination:

Stocke les informations sur la destination préférée de chaque individu.

meal:

Suit le repas préféré d'un individu.

Populate the table with data:

You are now done setting up your database.

Step 2 — Get Started with SELECT Statements

Queries in SQL normally begin with SELECT. It is used in queries to specify which columns in a table should be returned with the results. A query must also always include FROM, which is used to specify the table that the statement will query.

Queries follow the syntax below:

We will use the query syntax to return the meal column from the vacation table:

Our output will be as follows:

Vous pouvez également sélectionner plusieurs colonnes en utilisant une colonne pour les séparer :

Sortie :

Vous pouvez également utiliser un astérisque (*) si vous souhaitez représenter toutes les colonnes de la table :

Sortie :

Si vous souhaitez filtrer les enregistrements qui répondent à une condition spécifiée, vous utilisez WHERE. Les lignes qui ne répondent pas à la condition spécifiée sont éliminées des résultats. La clause WHERE utilise la syntaxe suivante :

Il s'agit d'un opérateur de comparaison qui définit comment la colonne spécifiée doit être comparée à la valeur. Les opérateurs de comparaison SQL courants incluent :

Opérateur

Utilisation

=

Égalité

!=

Inégalité

<

Inférieur à

>

Supérieur à

<=

Inférieur ou égal à

>=

Supérieur ou égal à

BETWEEN

Teste si la valeur se situe dans la plage donnée.

IN

Teste si la valeur d'une ligne est contenue dans un ensemble de valeurs spécifiées.

EXISTS

Teste si une ligne existe

LIKE

Teste si une valeur correspond à la chaîne spécifiée

IS NULL

Teste les valeurs nulles

IS NOT NULL

Teste toutes les valeurs autres que NULL

Si vous vouliez trouver la destination préférée d'Aisha, vous pourriez utiliser la requête ci-dessous :

La requête renverra ensuite :

SQL prend en charge l'utilisation de caractères génériques, qui sont particulièrement utiles dans les clauses WHERE. Les signes de pourcentage ( %) désignent zéro ou plusieurs caractères inconnus, tandis que les tirets du bas ( _) désignent un seul caractère inconnu. Ils sont utiles si vous souhaitez trouver une entrée spécifique dans une table mais que vous n'êtes pas sûr de l'entrée.

Par exemple, si vous aviez oublié la destination préférée d'un ami et ne connaissiez que la lettre par laquelle elle commence, par exemple “m”, vous pouvez trouver le nom de la destination en utilisant la requête suivante :

La requête renverra :

Lorsque vous travaillez avec des bases de données, vous pouvez rencontrer des colonnes ou des tables avec des noms relativement longs ou difficiles à lire. Dans ces cas, vous pouvez rendre les noms plus lisibles en utilisant le mot-clé AS pour créer un alias. Les alias créés avec AS ne sont valides que pour la durée de la requête pour laquelle ils ont été créés :

Étape 3 — Introduction aux fonctions d'agrégation

Lorsque vous travaillez avec des données, vous ne voulez pas toujours voir les données elles-mêmes. Vous préférez plutôt obtenir des informations sur ces données. En émettant une requête SELECT, vous pouvez interpréter ou effectuer des calculs sur vos données en utilisant la syntaxe SQL. C'est ce qu'on appelle des fonctions d'agrégation.

La fonction COUNT compte et renvoie le nombre de lignes qui répondent à un ensemble spécifique de critères. Pour exemple, si vous voulez savoir combien d'amis préfèrent aller aux Maldives, vous pouvez utiliser la requête suivante :

Les résultats suivants seront renvoyés :

MIN est utilisé pour trouver la plus petite valeur dans une colonne spécifiée :

La requête affichera :

MAX est utilisé pour trouver la plus grande valeur numérique dans une colonne donnée :

Le résultat attendu est :

Les deux fonctions MIN et MAX peuvent être utilisées sur des données numériques et alphabétiques. Lorsqu'elle est appliquée à une colonne de valeurs de type chaîne, la fonction MIN renvoie la première valeur par ordre alphabétique.

La fonction MIN renvoie la première valeur par ordre alphabétique :

Voici quel sera le résultat :

La fonction MAX renvoie la dernière valeur par ordre alphabétique :

Voici ce que sera le résultat :

Étape 4 — Manipuler les résultats des requêtes

Une autre clause populaire qui est utilisée est la clause GROUP BY . Elle est utilisée lors de l'exécution d'une fonction d'agrégation sur une colonne mais en relation avec les valeurs correspondantes d'une autre :

Le résultat sera :

Pour trier les résultats de la requête, utilisez la clause ORDER BY . Les valeurs numériques sont triées par ordre croissant par défaut, tandis que les valeurs textuelles sont triées par ordre alphabétique. La requête ci-dessous liste les colonnes name et birthdate, mais trie les résultats par birthdate:

Le résultat sera le suivant :

Le résultat est par ordre croissant ; pour trier par ordre décroissant, terminez la requête avec le mot DESC:

Jetez un œil au résultat :

La clause HAVING a été ajoutée à SQL pour fournir une fonctionnalité similaire à la clause WHERE tout en étant également compatible avec les fonctions d'agrégation. La différence entre ces deux clauses est que WHERE sert à faire référence à des enregistrements individuels et HAVING fait référence à des enregistrements de groupe. À cette fin, la clause GROUP BY doit être présente chaque fois qu'une clause HAVING est utilisée :

La requête affichera :

Le COUNT est de 1 pour tous car aucun ami n'aime la même activité.

Étape 5 — Interroger plusieurs tables

La clause JOIN peut être utilisée dans un résultat de requête pour combiner des lignes de deux tables ou plus. Elle y parvient en localisant une colonne liée entre les tables et en triant le résultat de manière appropriée.

SELECT Les instructions qui incluent une clause JOIN suivent la syntaxe ci-dessous :

Si vous vouliez acheter à chacun de vos amis un trophée pour leurs victoires lors de la natation le jour de leurs anniversaires, vous pourriez créer une requête qui joindra les deux tables pour vous aider à trouver toutes les informations que vous souhaitez avec une seule requête :

La sortie sera :

Il s'agit d'une clause JOIN interne. En effet, elle sélectionne tous les enregistrements qui ont des valeurs correspondantes dans les deux tables et les affiche dans un ensemble de résultats. Les enregistrements qui ne correspondent pas à la requête ne sont pas inclus. Nous pouvons inclure une nouvelle ligne dans nos tables qui ne correspond à aucune entrée :

Ensuite, réexécutez l'instruction SELECT avec la clause JOIN :

Comme la table celebration n'a pas d'entrée pour Peter et la table vacation n'a pas d'entrée pour Ella, ces enregistrements sont absents.

Nous pouvons renvoyer tous les enregistrements de l'une des tables en utilisant une clause JOIN externe. Il peut s'agir d'un LEFT JOIN ou d'un RIGHT JOIN. Un LEFT JOIN renvoie tous les enregistrements de la table de gauche et uniquement les enregistrements correspondants de la table de droite. La table de gauche dans le contexte des jointures externes est celle référencée par la clause FROM, et la table de droite est toute table référencée après l'instruction JOIN.

Exécutez à nouveau la requête mais utilisez une clause LEFT JOIN :

La commande renverra tous les enregistrements de la table de gauche ( celebration) même si elle n'a pas d'enregistrement correspondant dans la table de droite. Lorsqu'il n'y a pas d'enregistrement correspondant dans la table de droite, il est renvoyé sous la forme NULL:

Voici maintenant la clause RIGHT JOIN :

Toutes les valeurs de la table de droite seront renvoyées (vacation). Comme le birthdate de Peter est enregistré dans la table de droite et non dans la table de gauche, les colonnes name et wins renverront des valeurs NULL dans ces lignes :

Vous pouvez utiliser la clause UNION plutôt que JOIN pour interroger des enregistrements de plusieurs tables. L'opérateur UNION diffère de la clause JOIN en ce qu'il combine les résultats de deux instructions SELECT en une seule colonne plutôt que d'afficher les résultats de plusieurs tables sous forme de colonnes uniques à l'aide d'une seule instruction SELECT.

Vous pouvez exécuter cette requête pour l'illustrer :

La requête supprime les entrées en double. Il s'agit du comportement par défaut de l'opérateur UNION :

Pour renvoyer toutes les entrées (plus les doublons), utilisez l'opérateur UNION ALL :

Sortie :

Les sous-requêtes sont une autre méthode pour interroger plusieurs tables. Les sous-requêtes sont des requêtes intégrées dans une autre requête (également appelées requêtes internes ou imbriquées). Elles sont utiles lorsque vous souhaitez comparer les résultats d'une requête aux résultats d'une fonction d'agrégation distincte.

Nous utiliserons l'exemple consistant à chercher quel ami a remporté plus de tournois de natation qu'Ella. Au lieu de demander combien de matchs Ella a gagnés, puis d'exécuter une autre requête pour voir qui a gagné plus de matchs que cela, vous pouvez calculer les deux avec une seule requête :

La requête renverra :

Si vous vouliez emmener vos amis en vacances surprise, vous pouvez utiliser une requête pour voir qui a le plus de victoires et renvoyer leur destination :

La requête renverra :

Cette instruction contient une sous-requête dans une sous-requête.

Conclusion

La génération de requêtes est l'une des tâches les plus courantes de la gestion de bases de données. Il existe plusieurs outils d'administration de bases de données comme phpMyAdmin et pgAdmin que vous pouvez utiliser pour travailler avec des requêtes et visualiser leurs résultats. Cependant, l'instruction SELECT depuis la ligne de commande reste le choix préféré en raison de sa facilité d'utilisation et de son excellent contrôle.

De plus, il existe de nombreux tutoriels sur les bases de données que vous pouvez explorer sur notre blog:

Bonne informatique !

author

Preslav Dobrev

Auteur · CloudSigma

Preslav Dobrev est un designer créatif chez CloudSigma, axé sur une identité commerciale cohérente à travers des canaux marketing traditionnels et innovants. Il excelle à fusionner la vision artistique avec le marketing stratégique pour créer des récits de marque percutants.

Commentaires

Aucun commentaire pour l'instant. Soyez le premier.