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.
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.
É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.
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.




