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.



