Qu'est-ce que la requête SELECT dans MySQL?
SELECT QUERY est utilisé pour récupérer les données de la base de données MySQL. Les bases de données stockent les données pour une récupération ultérieure. Le but de MySQL Select est de renvoyer à partir des tables de la base de données, une ou plusieurs lignes correspondant à un critère donné. La requête de sélection peut être utilisée dans un langage de script comme PHP, Ruby, ou vous pouvez l'exécuter via l'invite de commande.
Syntaxe de l'instruction SQL SELECT
Il s'agit de la commande SQL la plus fréquemment utilisée et possède la syntaxe générale suivante
SELECT [DISTINCT|ALL ] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition][GROUP BY fieldName(s)] [HAVING condition] ORDER BY fieldName(s)ICI
- SELECT est le mot clé SQL qui indique à la base de données que vous souhaitez récupérer des données.
- [DISTINCT | ALL] sont des mots clés facultatifs qui peuvent être utilisés pour affiner les résultats renvoyés par l'instruction SQL SELECT. Si rien n'est spécifié, ALL est supposé par défaut.
- {* | [fieldExpression [AS newName]} au moins une partie doit être spécifiée, "*" a sélectionné tous les champs du nom de table spécifié, fieldExpression effectue des calculs sur les champs spécifiés tels que l'ajout de nombres ou la mise en place de deux champs de chaîne en un seul.
- FROM 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.
- La condition WHERE est facultative, elle peut être utilisée pour spécifier des critères dans le jeu de résultats renvoyé par la requête.
- GROUP BY est utilisé pour rassembler des enregistrements qui ont les mêmes valeurs de champ.
- La condition HAVING est utilisée pour spécifier des critères lors de l'utilisation du mot clé GROUP BY.
- ORDER BY est utilisé pour spécifier l'ordre de tri du jeu de résultats.
*
Le symbole étoile est utilisé pour sélectionner toutes les colonnes du tableau. Un exemple d'instruction SELECT simple ressemble à celui illustré ci-dessous.
SELECT * FROM `members`;
L'instruction ci-dessus sélectionne tous les champs de la table des membres. Le point-virgule est une instruction terminée. Ce n'est pas obligatoire, mais c'est considéré comme une bonne pratique de terminer vos déclarations comme ça.
Exemples pratiques
Cliquez pour télécharger la base de données myflix utilisée pour des exemples pratiques.
Vous pouvez apprendre à importer le fichier .sql dans MySQL WorkBench
Les exemples sont réalisés sur les deux tableaux suivants
Tableau 1: tableau des membres
numéro de membre | noms complets | le genre | date de naissance | adresse physique | adresse postale | contct_ numéro | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Femme | 21-07-1980 | Parcelle de la première rue n ° 4 | Sac privé | 0759 253 542 | Cette adresse e-mail est protégée du spam. Vous devez activer JavaScript pour le visualiser. |
2 | Janet Smith Jones | Femme | 23-06-1980 | Melrose 123 | NUL | NUL | Cette adresse e-mail est protégée du spam. Vous devez activer JavaScript pour le visualiser. |
3 | Robert Phil | Homme | 12-07-1989 | 3e rue 34 | NUL | 12345 | Cette adresse e-mail est protégée du spam. Vous devez activer JavaScript pour le visualiser. |
4 | Gloria Williams | Femme | 14-02-1984 | 2e rue 23 | NUL | NUL | NUL |
Tableau 2: tableau des films
movie_id | Titre | réalisateur | year_released | category_id |
---|---|---|---|---|
1 | Pirates des Caraïbes 4 | Rob Marshall | 2011 | 1 |
2 | Oublier Sarah Marshal | Nicolas Stoller | 2008 | 2 |
3 | X Men | NUL | 2008 | NUL |
4 | Nom du code Noir | Edgar Jimz | 2010 | NUL |
5 | Les petites filles de papa | NUL | 2007 | 8 |
6 | anges et démons | NUL | 2007 | 6 |
7 | Le code de De Vinci | NUL | 2007 | 6 |
9 | Honey Mooners | John Schultz | 2005 | 8 |
16 | 67% coupable | NUL | 2012 | NUL |
Obtenir la liste des membres
Supposons que nous souhaitons obtenir une liste de tous les membres de la bibliothèque enregistrés à partir de notre base de données, nous utiliserions le script ci-dessous pour le faire.
SELECT * FROM `members`;
L'exécution du script ci-dessus dans MySQL workbench produit les résultats suivants.
numéro de membre | noms complets | le genre | date de naissance | adresse physique | adresse postale | contct_ numéro | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Femme | 21-07-1980 | Parcelle de la première rue n ° 4 | Sac privé | 0759 253 542 | Cette adresse e-mail est protégée du spam. Vous devez activer JavaScript pour le visualiser. |
2 | Janet Smith Jones | Femme | 23-06-1980 | Melrose 123 | NUL | NUL | Cette adresse e-mail est protégée du spam. Vous devez activer JavaScript pour le visualiser. |
3 | Robert Phil | Homme | 12-07-1989 | 3e rue 34 | NUL | 12345 | Cette adresse e-mail est protégée du spam. Vous devez activer JavaScript pour le visualiser. |
4 | Gloria Williams | Femme | 14-02-1984 | 2e rue 23 | NUL | NUL | NUL |
Notre requête ci-dessus a renvoyé toutes les lignes et colonnes de la table des membres.
Disons que nous ne souhaitons obtenir que les champs full_names, gender, physical_address et email uniquement. Le script suivant nous aiderait à y parvenir.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
L'exécution du script ci-dessus dans MySQL workbench produit les résultats suivants.
noms complets | le genre | adresse physique | |
---|---|---|---|
Janet Jones | Femme | Parcelle de la première rue n ° 4 | Cette adresse e-mail est protégée du spam. Vous devez activer JavaScript pour le visualiser. |
Janet Smith Jones | Femme | Melrose 123 | Cette adresse e-mail est protégée du spam. Vous devez activer JavaScript pour le visualiser. |
Robert Phil | Homme | 3e rue 34 | Cette adresse e-mail est protégée du spam. Vous devez activer JavaScript pour le visualiser. |
Gloria Williams | Femme | 2e rue 23 | NUL |
Obtenir la liste des films
N'oubliez pas dans notre discussion ci-dessus que nous mentionnons les expressions utilisées dans les instructions SELECT. Disons que nous voulons obtenir une liste de films de notre base de données. Nous voulons avoir le titre du film et le nom du réalisateur dans un seul champ. Le nom du réalisateur doit être entre parenthèses. Nous voulons également connaître l'année de sortie du film. Le script suivant nous aide à le faire.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
ICI
- La fonction MySQL Concat () est utilisée pour joindre les valeurs des colonnes.
- La ligne "Concat (` title`, '(', `director`, ')') obtient le titre, ajoute un crochet ouvrant suivi du nom du réalisateur puis ajoute le crochet fermant.
Les portions de chaîne sont séparées par des virgules dans la fonction Concat ().
L'exécution du script ci-dessus dans MySQL workbench produit le jeu de résultats suivant.
Concat (`titre`, '(',` directeur`, ')') | year_released |
---|---|
Pirates des Caraïbes 4 (Rob Marshall) | 2011 |
Oublier Sarah Marshal (Nicholas Stoller) | 2008 |
NUL | 2008 |
Nom de code Noir (Edgar Jimz) | 2010 |
NUL | 2007 |
NUL | 2007 |
NUL | 2007 |
Honey Mooners (John Schultz) | 2005 |
NUL | 2012 |
Noms de champ d'alias
L'exemple ci-dessus a renvoyé le code de concaténation comme nom de champ pour nos résultats. Supposons que nous souhaitons utiliser un nom de champ plus descriptif dans notre jeu de résultats. Nous utiliserions le nom d'alias de colonne pour y parvenir. Voici la syntaxe de base du nom d'alias de colonne
SELECT `column_name|value|expression` [AS] `alias_name`;
ICI
- "SELECT` nom_colonne | valeur | expression `" est l'instruction SELECT régulière qui peut être un nom de colonne, une valeur ou une expression.
- "[AS]" est le mot-clé facultatif avant que le nom d'alias qui désigne l'expression, la valeur ou le nom de champ ne soit renvoyé comme.
- "` alias_name` " est le nom d'alias que nous voulons renvoyer dans notre jeu de résultats comme nom de champ.
La requête ci-dessus avec un nom de colonne plus significatif
SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;
On obtient le résultat suivant
Concat | year_released |
---|---|
Pirates des Caraïbes 4 (Rob Marshall) | 2011 |
Oublier Sarah Marshal (Nicholas Stoller) | 2008 |
NUL | 2008 |
Nom de code Noir (Edgar Jimz) | 2010 |
NUL | 2007 |
NUL | 2007 |
NUL | 2007 |
Honey Mooners (John Schultz) | 2005 |
NUL | 2012 |
Obtenir la liste des membres indiquant l'année de naissance
Supposons que nous souhaitons obtenir une liste de tous les membres indiquant le numéro de membre, les noms complets et l'année de naissance, nous pouvons utiliser la fonction de chaîne GAUCHE pour extraire l'année de naissance du champ de date de naissance. Le script ci-dessous nous aide à le faire.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
ICI
- "LEFT (` date_of_birth`, 4) " la fonction de chaîne LEFT accepte la date de naissance comme paramètre et ne renvoie que 4 caractères à partir de la gauche.
- "AS` year_of_birth` " est le nom d'alias de colonne qui sera renvoyé dans nos résultats. Notez que le mot clé AS est facultatif , vous pouvez le laisser de côté et la requête fonctionnera toujours.
L'exécution de la requête ci-dessus dans MySQL workbench sur myflixdb nous donne les résultats 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 |
SQL utilisant MySQL Workbench
Nous allons maintenant utiliser MySQL workbench pour générer le script qui affichera tous les noms de champs de notre table de catégories.
1. Cliquez avec le bouton droit sur le tableau des catégories. Cliquez sur "Select Rows - Limit 1000"
2. MySQL workbench créera automatiquement une requête SQL et la collera dans l'éditeur.
3. Les résultats de la requête seront affichés
Notez que nous n'avons pas écrit l'instruction SELECT nous-mêmes. MySQL workbench l'a généré pour nous.
Pourquoi utiliser la commande SELECT SQL lorsque nous avons MySQL Workbench?
Maintenant, vous vous demandez peut-être pourquoi apprendre la commande SQL SELECT pour interroger les données de la base de données alors que vous pouvez simplement utiliser un outil tel que MySQL workbench pour obtenir les mêmes résultats sans connaissance du langage SQL. Bien sûr, cela est possible, mais apprendre à utiliser la commande SELECT vous donne plus de flexibilité et de contrôle sur vos instructions SQL SELECT .
MySQL workbench entre dans la catégorie des outils QBE " Requête par exemple ". Il est destiné à aider à générer des instructions SQL plus rapidement pour augmenter la productivité de l'utilisateur.
L'apprentissage de la commande SQL SELECT peut vous permettre de créer des requêtes complexes qui ne peuvent pas être facilement générées à l'aide des utilitaires Query by Example tels que MySQL workbench.
Pour améliorer la productivité, vous pouvez générer le code à l'aide de MySQL Workbench, puis le personnaliser pour répondre à vos besoins . Cela ne peut se produire que si vous comprenez le fonctionnement des instructions SQL!
Résumé
- Le mot clé SQL SELECT est utilisé pour interroger les données de la base de données et c'est la commande la plus couramment utilisée.
- La forme la plus simple a la syntaxe "SELECT * FROM tableName;"
- Les expressions peuvent également être utilisées dans l'instruction select. Exemple "SELECT quantité + prix FROM Sales"
- La commande SQL SELECT peut également avoir d'autres paramètres facultatifs tels que WHERE, GROUP BY, HAVING, ORDER BY. Ils seront discutés plus tard.
- MySQL workbench peut aider à développer des instructions SQL, à les exécuter et à produire le résultat de sortie dans la même fenêtre.