Expressions en MySQL

Introduction aux Expressions MySQL

Dans MySQL, une expression est une combinaison de valeurs, opérateurs et fonctions qui produit un résultat lors de son évaluation. Ces expressions jouent un rôle crucial dans différentes parties des requêtes SQL, permettant de calculer des valeurs, de filtrer des enregistrements et d'exécuter diverses opérations. Elles sont essentielles pour concevoir des requêtes significatives et effectuer des calculs à l'intérieur d'une base de données.

Les Types d'Expressions MySQL

Voici quelques types d'expressions couramment utilisés en MySQL :

  1. Expressions Arithmétiques : Elles concernent des calculs numériques utilisant des opérateurs tels que +, -, *, et /.
  2. Expressions de Colonne : Elles se réfèrent aux colonnes d'une table et servent à spécifier ou manipuler les données de ces colonnes.
  3. Expressions de Chaîne : Elles traitent des opérations sur des types de données de chaîne, comme la concaténation et la manipulation. Par exemple, la fonction CONCAT() est souvent utilisée pour assembler plusieurs chaînes en une seule.
  4. Expressions Aggrégées : Celles-ci réalisent des calculs sur plusieurs lignes et retournent une seule valeur. On y trouve des fonctions communes comme AVG(), SUM(), COUNT(), MIN(), et MAX().
  5. Expressions Booléennes : Ces expressions renvoient une valeur booléenne, généralement employées dans les clauses WHERE pour filtrer des enregistrements. Par exemple, price > 10 est une expression booléenne utilisée dans la requête SELECT * FROM products WHERE price > 10;, permettant de sélectionner les produits à un prix supérieur à 10.
  6. Expressions Fonctionnelles : Elles utilisent des fonctions MySQL pour effectuer des opérations sur les données. Un exemple serait NOW(), qui récupère l'horodatage actuel.

Exemples d'Expressions MySQL

Voyons quelques exemples pour illustrer ces différents types d'expressions :

Création d'une table et insertion de données :
Voici un exemple de déclaration SQL pour créer une table avec des données d'exemple :

-- Création de la table 'produits'  
CREATE TABLE produits (  
    nom VARCHAR(50),  
    prix DECIMAL(10, 2),  
    quantite_en_stock INT  
);

-- Insertion de données dans la table 'produits'  
INSERT INTO produits (nom, prix, quantite_en_stock) VALUES  
('Produit A', 19.99, 10),  
('Produit B', 5.99, 20),  
('Produit C', 49.99, 5);

Expressions Arithmétiques :
Voici comment on peut calculer la valeur totale de chaque produit en stock :

SELECT  
    nom,  
    prix,  
    quantite_en_stock,  
    prix * quantite_en_stock AS valeur_totale  
FROM  
    produits;

Cette requête donnera le résultat suivant :

| nom | prix | quantite_en_stock | valeur_totale |
|------------|-------|-------------------|----------------| | Produit A | 19.99 | 10 | 199.90 | | Produit B | 5.99 | 20 | 119.80 | | Produit C | 49.99 | 5 | 249.95 |

Expressions de Colonne :
Cette requête extrait les colonnes nom et prix de la table produits :

SELECT nom, prix FROM produits;

Le résultat sera :

| nom | prix |
|------------|-------|
| Produit A | 19.99 |
| Produit B | 5.99 |
| Produit C | 49.99 |

Expressions de Chaîne :
Dans l'exemple suivant, l'opération de concaténation CONCAT(nom, ' - Offre Spéciale') assemble la valeur de la colonne nom avec la chaîne ' - Offre Spéciale'.

SELECT CONCAT(nom, ' - Offre Spéciale') AS offre_speciale FROM produits;

Le résultat sera :

| offre_speciale |
|-------------------------|
| Produit A - Offre Spéciale |
| Produit B - Offre Spéciale |
| Produit C - Offre Spéciale |

Expressions Aggrégées :
Calculons le prix total de tous les produits :

SELECT SUM(prix) AS prix_total FROM produits;

Le résultat affichera :

| prix_total |
|------------|
| 75.97 |

Expressions Booléennes :
Voici comment récupérer les produits avec un faible stock :

SELECT * FROM produits WHERE quantite_en_stock < 10;

Le résultat affichera :

| nom | prix | quantite_en_stock |
|------------|-------|-------------------|
| Produit C | 49.99 | 5 |

Expressions Fonctionnelles :
Pour récupérer la longueur de chaque nom de produit :

SELECT nom, LENGTH(nom) AS longueur_nom FROM produits;

Le résultat sera :

| nom | longueur_nom |
|------------|--------------|
| Produit A | 9 |
| Produit B | 9 |
| Produit C | 9 |