La commande SELECT est utilisée pour interroger une base de données et récupérer des données à partir d’une ou plusieurs tables. C’est l’une des commandes les plus couramment utilisées en SQL et est une partie essentielle du travail avec les bases de données.

La syntaxe de base de la commande SELECT est la suivante:

SELECT colonne1, colonne2, ...
FROM nom_de_table
WHERE condition;

Dans cette syntaxe, colonne1colonne2, … sont les noms des colonnes à partir desquelles vous souhaitez récupérer des données, et nom_de_table est le nom de la table à partir de laquelle vous souhaitez récupérer des données. La clause WHERE est facultative et est utilisée pour filtrer les lignes renvoyées par la requête en fonction d’une condition spécifiée.

Voici quelques exemples d’utilisation de la commande SELECT:

  • Pour récupérer toutes les colonnes d’une table:
SELECT *
FROM nom_de_table;
  • Pour récupérer des colonnes spécifiques d’une table:
SELECT colonne1, colonne2, ...
FROM nom_de_table;
  • Pour récupérer des lignes qui répondent à une condition spécifique:
SELECT colonne1, colonne2, ...
FROM nom_de_table
WHERE condition;
  • Pour trier les lignes renvoyées par une requête:
SELECT colonne1, colonne2, ...
FROM nom_de_table
ORDER BY nom_de_colonne [ASC|DESC];
  • Pour regrouper des lignes en fonction d’une ou plusieurs colonnes et calculer des valeurs agrégées:
SELECT nom_de_colonne, fonction_d'agrégation(nom_de_colonne)
FROM nom_de_table
GROUP BY nom_de_colonne;

La commande SELECT prend également en charge des fonctionnalités plus avancées telles que les sous-requêtes, les jointures et les unions. Celles-ci vous permettent d’effectuer des requêtes complexes et de récupérer des données à partir de plusieurs tables dans une seule requête.

WHERE 

La clause WHERE est utilisée dans MySQL pour filtrer les lignes renvoyées par une requête en fonction d’une ou plusieurs conditions. Elle est utilisée conjointement avec les instructions SELECTUPDATE et DELETE pour spécifier quelles lignes doivent être affectées par la requête.

Voici un exemple d’utilisation de la clause WHERE dans une instruction SELECT pour récupérer des lignes qui répondent à une condition spécifique:

SELECT colonne1, colonne2, ...
FROM nom_de_table
WHERE condition;

Dans cet exemple, la clause WHERE est utilisée pour filtrer les lignes renvoyées par l’instruction SELECT en fonction de la condition spécifiée. Seules les lignes qui répondent à la condition seront renvoyées par la requête.

Vous pouvez utiliser différents opérateurs de comparaison (tels que =<><>, etc.) et des opérateurs logiques (tels que ANDOR et NOT) pour construire des conditions complexes dans la clause WHERE. Voici quelques exemples:

  • Pour récupérer des lignes où la valeur d’une colonne est égale à une valeur spécifique:
SELECT colonne1, colonne2, ...
FROM nom_de_table
WHERE nom_de_colonne = valeur;
  • Pour récupérer des lignes où la valeur d’une colonne n’est pas égale à une valeur spécifique:
SELECT colonne1, colonne2, ...
FROM nom_de_table
WHERE nom_de_colonne <> valeur;
  • Pour récupérer des lignes où la valeur d’une colonne est supérieure ou égale à une valeur spécifique:
SELECT colonne1, colonne2, ...
FROM nom_de_table
WHERE nom_de_colonne >= valeur;
  • Pour récupérer des lignes où plusieurs conditions sont remplies:
SELECT colonne1, colonne2, ...
FROM nom_de_table
WHERE condition1 AND condition2;

LIKE

En MySQL, l’opérateur LIKE est utilisé dans la clause WHERE d’une instruction SELECTINSERTUPDATE ou DELETE pour rechercher un motif spécifié dans une colonne. Il est souvent utilisé pour rechercher des données textuelles dans une base de données.

Voici un exemple d’utilisation de l’opérateur LIKE pour rechercher des données textuelles dans une base de données MySQL:

SELECT colonne1, colonne2, ...
FROM nom_de_table
WHERE nom_de_colonne LIKE 'motif';

Dans cet exemple, l’opérateur LIKE est utilisé pour rechercher des lignes dans la table nom_de_table où la valeur de la colonne nom_de_colonne correspond au motif spécifié. Le motif peut inclure des caractères génériques tels que % et _ pour représenter respectivement n’importe quel nombre de caractères ou un seul caractère.

Par exemple, pour rechercher toutes les lignes où la valeur de la colonne nom_de_colonne commence par la lettre ‘A’, vous pouvez utiliser la requête suivante:

SELECT colonne1, colonne2, ...
FROM nom_de_table
WHERE nom_de_colonne LIKE 'A%';

De même, pour rechercher toutes les lignes où la valeur de la colonne nom_de_colonne contient le mot ‘texte’, vous pouvez utiliser la requête suivante:

SELECT colonne1, colonne2, ... FROM nom_de_table WHERE nom_de_colonne LIKE '%texte%';
 

Exemple avec la base fruits_legumes

Pour extraire les fruits et légumes verts qui contiennent la lettre 'p' dans le nom, nous devons interroger à la fois les tables fruits et legumes. Voici comment vous pourriez faire cela
-- Sélection des fruits verts avec 'p' dans le nom
SELECT 'Fruit' AS Type, nom
FROM fruits_legumes.fruits
WHERE couleur = 'Vert' AND nom LIKE '%p%'

UNION 

-- Sélection des légumes verts avec 'p' dans le nom
SELECT 'Légume' AS Type, nom
FROM fruits_legumes.legumes
WHERE couleur = 'Vert' AND nom LIKE '%p%';

La première partie de la requête sélectionne tous les fruits verts qui contiennent la lettre 'e' dans leur nom, tandis que la seconde partie sélectionne tous les légumes verts qui répondent aux mêmes critères. L'opérateur UNION combine les résultats des deux requêtes en un seul ensemble de résultats.

La colonne "Type" est ajoutée pour distinguer si chaque ligne est un fruit ou un légume.

Exercice:

Utiliser la base des fruits et légumes

Sélectionner tous les fruits de couleur orange

Sélectionnez tous les légumes  de couleur Vert

Sélectionner dans les tables fruits et légumes tous ceux dont le poids moyen est plus petit que 300g.

 

 

Modifié le: mercredi 25 octobre 2023, 08:48