MySQL Instruction SELECT avec exemples

⚡ Résumé intelligent

Le MySQL L'instruction SELECT récupère des lignes d'une ou plusieurs tables, et chaque exemple ci-dessous est exécuté sur la base de données exemple myflix, passant de la simple requête en étoile aux expressions, aux alias de colonnes et aux fonctions de chaînes de caractères.

  • ???? Objectif principal : La commande SELECT récupère les lignes stockées qui correspondent à des critères, depuis l'invite de commandes ou depuis PHP. Python, et d'autres langues.
  • 🧩 Ordre de la syntaxe : Les clauses SELECT, FROM, WHERE, GROUP BY, HAVING et ORDER BY doivent apparaître dans cet ordre fixe.
  • ⭐ Raccourci étoile : La requête SELECT * FROM `members`; renvoie toutes les colonnes, tandis que le fait de nommer explicitement les colonnes permet de réduire la taille des ensembles de résultats et d'accélérer le traitement.
  • 🔗 Expressions: La fonction Concat() concatène les valeurs des colonnes et la fonction LEFT() supprime les caractères superflus, de sorte que les champs calculés apparaissent directement dans l'ensemble de résultats.
  • 🏷️ Alias ​​de colonnes : Le mot-clé optionnel AS renomme toute expression, remplaçant les en-têtes illisibles tels que Concat(`title`) par des étiquettes claires.
  • 🇧🇷 Comparaison des établis : MySQL Workbench génère des requêtes visuellement, mais les instructions SELECT écrites à la main restent nécessaires pour une récupération complexe et précise.

Qu'est-ce qu'une requête SELECT ? MySQL?

Requête SELECT est utilisé pour récupérer des données à partir de MySQL base de données. Les bases de données stockent des données pour une récupération ultérieure. Le but de MySQL La commande SELECT permet de récupérer une ou plusieurs lignes des tables de la base de données correspondant à des critères donnés. Une requête SELECT peut être utilisée dans un langage de script comme PHP ou Ruby, ou exécutée directement depuis l'invite de commandes.

requête SELECT dans MySQL

Étant donné que SELECT est la commande que vous utiliserez le plus souvent, il est judicieux d'apprendre sa syntaxe avant de manipuler les exemples de données.

Syntaxe de l'instruction SQL SELECT

SELECT est la commande SQL la plus fréquemment utilisée, et sa syntaxe générale est la suivante :

SELECT [DISTINCT|ALL] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition] [GROUP BY fieldName(s)] [HAVING condition] [ORDER BY fieldName(s)];

ICI. (en anglais seulement)

  • SELECT est le mot clé SQL qui permet à la base de données de savoir que vous souhaitez récupérer des données.
  • [DISTINC | TOUS] Les mots clés facultatifs permettent d'affiner les résultats renvoyés par l'instruction SQL SELECT. Si aucun mot clé n'est spécifié, la valeur par défaut est ALL.
  • {*| [fieldExpression [AS nouveauNom]} Au moins une partie doit être spécifiée. « * » sélectionne tous les champs de la table spécifiée ; fieldExpression effectue des calculs sur les champs spécifiés, comme l’addition de nombres ou la concaténation de deux champs de type chaîne en un seul.
  • De Le champ tableName est obligatoire et doit contenir au moins une table. Plusieurs tables doivent être séparées par des virgules ou jointes à l'aide du mot-clé JOIN.
  • OÙ La condition est facultative. Elle spécifie les critères à prendre en compte dans l'ensemble de résultats renvoyé par la requête.
  • PAR GROUPE est utilisé pour rassembler des enregistrements ayant les mêmes valeurs de champ.
  • AYANT La condition est utilisée pour spécifier des critères lors de l'utilisation du mot-clé GROUP BY.
  • COMMANDÉ PAR est utilisé pour spécifier l’ordre de tri de l’ensemble de résultats.

*

Le symbole astérisque permet de sélectionner toutes les colonnes d'une table. Une instruction SELECT simple ressemble à celle présentée ci-dessous.

SELECT * FROM `members`;

L'instruction ci-dessus sélectionne tous les champs de la table « members ». Le point-virgule termine l'instruction. Son utilisation n'est pas obligatoire, mais il est recommandé de le faire.

SELECT DISTINCT et LIMIT dans MySQL

Deux mots-clés optionnels de la syntaxe méritent un examen plus approfondi, car les débutants les rencontrent dès qu'un tableau s'agrandit.

DISTINCT Supprime les lignes en double du jeu de résultats. La table « films » contient plusieurs films sortis en 2007 ; une requête simple renverrait donc plusieurs fois les mêmes résultats pour cette année. DISTINCT renvoie chaque valeur une seule fois.

SELECT DISTINCT `year_released` FROM `movies`;

LIMIT Elle limite le nombre de lignes renvoyées, ce qui protège le client contre une requête qui extrairait autrement des millions d'enregistrements.

SELECT * FROM `movies` LIMIT 5;
Mots-clés Ce qu'il fait Quand l'utiliser
TOUS (par défaut) Renvoie toutes les lignes correspondantes, doublons inclus. Comptage ou énumération des enregistrements bruts
DISTINCT Fusionne les lignes en double en une seule Élaboration d'une liste de valeurs uniques
LIMIT Renvoie uniquement les N premières lignes Aperçu des données ou résultats de pagination

Une fois la syntaxe définie, la base de données d'exemple donne vie à ces clauses.

Exemples pratiques de l'instruction SELECT

Télécharger le PDF La base de données Myflix utilisée pour les exemples pratiques.

Vous pouvez apprendre comment importer le fichier .sql dans MySQL Workbench.

Les exemples sont réalisés sur les deux tables suivantes.

Tableau 1: membres table

numéro de membre noms complets le sexe date de naissance adresse physique adresse postale numéro de contact en nous envoyant un mail
1 Janet Jones femme 21-07-1980 Terrain de la première rue n° 4 Sac privé 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones femme 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Masculin 12-07-1989 3e rue 34 NULL 12345 rm@tstreet.com
4 Gloria Williams femme 14-02-1984 2e rue 23 NULL NULL NULL

Tableau 2: films table

id_film titre Directeur année_sortie id_catégorie
1 Pirates des Caraïbes 4 Rob Marshall 2011 1
2 Oublier Sarah Marshal Nicolas Stoller 2008 2
3 X Men NULL 2008 NULL
4 Code Nom Noir Edgar Jimz 2010 NULL
5 Les petites filles à papa NULL 2007 8
6 anges et démons NULL 2007 6
7 Da Vinci Code NULL 2007 6
9 Honey moonERS Jean Schultz 2005 8
16 67% Coupable NULL 2012 NULL

Liste des membres

Supposons que nous souhaitions obtenir la liste de tous les membres inscrits à la bibliothèque à partir de notre base de données. Nous utiliserions alors le script ci-dessous.

SELECT * FROM `members`;

Exécution du script dans MySQL Workbench produit les résultats suivants.

numéro de membre noms complets le sexe date de naissance adresse physique adresse postale numéro de contact en nous envoyant un mail
1 Janet Jones femme 21-07-1980 Terrain de la première rue n° 4 Sac privé 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones femme 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Masculin 12-07-1989 3e rue 34 NULL 12345 rm@tstreet.com
4 Gloria Williams femme 14-02-1984 2e rue 23 NULL NULL NULL

La requête a renvoyé toutes les lignes et colonnes de la table des membres.

Sélection de colonnes spécifiques

Supposons que nous nous intéressions uniquement aux champs nom_complet, sexe, adresse_physique et courriel. Le script suivant permet d'y parvenir.

SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;

Exécution du script dans MySQL Workbench produit les résultats suivants.

noms complets le sexe adresse physique en nous envoyant un mail
Janet Jones femme Terrain de la première rue n° 4 janetjones@yagoo.cm
Janet Smith Jones femme Melrose 123 jj@fstreet.com
Robert Phil Masculin 3e rue 34 rm@tstreet.com
Gloria Williams femme 2e rue 23 NULL

Obtenir une liste de films avec des expressions

Les expressions peuvent également être utilisées dans les instructions SELECT. Supposons que nous souhaitions obtenir une liste de films avec le titre et le nom du réalisateur dans un premier champ, le nom du réalisateur entre parenthèses, ainsi que l'année de sortie du film. Le script suivant permet d'obtenir ce résultat.

SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;

ICI. (en anglais seulement)

  • Le Concat() MySQL Cette fonction combine les valeurs des colonnes.
  • La ligne « Concat(`title`, ' (', `director`, ')') » récupère le titre, ajoute une parenthèse ouvrante suivie du nom du réalisateur, puis ajoute la parenthèse fermante.
  • Les segments de chaîne sont séparés par des virgules à l'intérieur de la fonction Concat().

Exécution du script dans MySQL Workbench produit l'ensemble de résultats suivant.

Concat(`titre`, ' (', `directeur`, ')') année_sortie
Pirates des Caraïbes 4 (Rob Marshall) 2011
Oublier Sarah Marshal (Nicholas Stoller) 2008
NULL 2008
Code Nom Noir (Edgar Jimz) 2010
NULL 2007
NULL 2007
NULL 2007
Honey mooners (John Schultz) 2005
NULL 2012

À noter: La fonction Concat() renvoie NULL lorsqu'un de ses arguments est NULL, ce qui explique pourquoi les films sans réalisateur affichent NULL ci-dessus.

Noms de champs alias

L'exemple ci-dessus a renvoyé le code de concaténation comme nom de champ. Pour utiliser un nom de champ plus descriptif dans le jeu de résultats, appliquez un alias de colonne. La syntaxe de base est présentée ci-dessous.

SELECT `column_name|value|expression` [AS] `alias_name`;

ICI. (en anglais seulement)

  • « SÉLECTIONNER `nom_colonne|valeur|expression` » Il s'agit de l'instruction SELECT classique, qui peut être un nom de colonne, une valeur ou une expression.
  • "[COMME]" est le mot-clé facultatif qui précède le nom de l'alias.
  • "`nom_alias`" est l'alias qui est renvoyé dans l'ensemble de résultats comme nom de champ.

La même requête avec un nom de colonne plus explicite :

SELECT Concat(`title`, ' (', `director`, ')') AS `Concat`, `year_released` FROM `movies`;

Nous obtenons le résultat suivant.

Concaténer année_sortie
Pirates des Caraïbes 4 (Rob Marshall) 2011
Oublier Sarah Marshal (Nicholas Stoller) 2008
NULL 2008
Code Nom Noir (Edgar Jimz) 2010
NULL 2007
NULL 2007
NULL 2007
Honey mooners (John Schultz) 2005
NULL 2012

Liste des membres affichant l'année de naissance

Supposons que nous souhaitions obtenir la liste de tous les membres, indiquant leur numéro de membre, leur nom complet et leur année de naissance. Nous pouvons utiliser la fonction LEFT STRING pour cela.tracl'année de naissance à partir du champ date de naissance.

SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;

ICI. (en anglais seulement)

  • "GAUCHE(`date_of_birth`,4)" le Fonction de chaîne GAUCHE accepte la date de naissance comme paramètre et ne renvoie que les 4 premiers caractères.
  • « COMME `année_de_naissance` » est le nom d'alias de colonne renvoyé dans nos résultats. Le mot-clé AS est facultatif; vous pouvez l'omettre et la requête fonctionnera quand même.

Exécution de la requête dans MySQL L'analyse de Workbench avec la base de données myflixdb nous donne les résultats présentés ci-dessous.

numéro de membre noms complets année de naissance
1 Janet Jones 1980
2 Janet Smith Jones 1980
3 Robert Phil 1989
4 Gloria Williams 1984

Les requêtes écrites manuellement ne sont qu'une des méthodes pour obtenir un ensemble de résultats. Workbench peut également générer la requête pour vous.

Utilisation de SQL MySQL Workbench

Nous allons maintenant utiliser MySQL Utilitaire de calcul pour générer le script qui affiche tous les noms de champs de notre table de catégories.

1. Faites un clic droit sur le tableau Catégories. Cliquez sur « Sélectionner les lignes – Limite : 1000 ».

2. MySQL Workbench crée automatiquement une requête SQL et la colle dans l'éditeur.

3. Les résultats de la requête s'affichent dans la grille située sous l'éditeur.

Utilisation de SQL MySQL Workbench

Comme le montre la capture d'écran, nous n'avons pas écrit nous-mêmes l'instruction SELECT. MySQL Workbench l'a généré pour nous.

Pourquoi utiliser la commande SQL SELECT alors que nous avons MySQL Table de travail?

Vous vous demandez peut-être pourquoi vous devriez apprendre la commande SQL SELECT alors qu'un outil comme MySQL Workbench renvoie les mêmes résultats sans aucune connaissance du langage SQL. Ce raccourci est possible, mais apprendre la commande SELECT vous donne plus la flexibilité et des bactéries sur votre Instructions SQL SELECT.

MySQL L'établi appartient à la catégorie des «Requête par exemple« (QBE) tools. Il est conçu pour générer plus rapidement des requêtes SQL et accroître la productivité des utilisateurs. »

Apprendre la commande SQL SELECT vous permet de créer requêtes complexes qui ne peuvent pas être facilement générés par des utilitaires de requête par exemple tels que MySQL Table de travail.

Pour améliorer la productivité, vous pouvez générer le code dans MySQL Workbench, puis personnaliser à répondre à vos exigencesCela n'est possible qu'une fois que vous avez compris le fonctionnement des instructions SQL.

Comprendre l' MySQL Instruction SELECT

FAQ

Généralement oui. La commande SELECT * lit toutes les colonnes, y compris les champs texte volumineux et les champs BLOB dont vous n'aurez peut-être pas besoin, et elle bloque les index couvrants. Nommer les colonnes permet de réduire la taille du jeu de résultats et d'accélérer la requête.

Les mots clés tels que SELECT et FROM ne sont pas sensibles à la casse. Les comparaisons de chaînes de caractères tiennent compte du classement de la colonne ; ainsi, un classement insensible à la casse comme utf8mb4_0900_ai_ci considère « Janet » et « janet » comme équivalents.

L'absence d'index est la cause habituelle. Exécutez EXPLAIN avant la requête pour vérifier si MySQL effectue une analyse complète de la table, puis indexe les colonnes filtrées ou jointes et ne renvoie que les lignes dont vous avez besoin.

Oui. Les assistants de conversion texte-SQL transforment une requête simple en une instruction SELECT une fois qu'ils connaissent votre schéma. RevExaminez attentivement les jointures et les filtres générés, car un modèle d'IA peut inventer des noms de colonnes qui n'existent pas.

Non. L'IA génère rapidement une requête, mais vous devez toujours vérifier la logique, les jointures et les performances. MySQL WorkbenchLa maîtrise de la commande SELECT permet de repérer un résultat erroné avant qu'il n'atteigne la production.

Résumez cet article avec :