SELECT
SELECT est la question posée à la base : quelles colonnes afficher et depuis quelle table (FROM). C'est le point de départ de toute requête de lecture, du simple listing au rapport.
- lire
- colonnes
- requête
- DQL
- alias
- AS
Syntaxe
SELECT colonne1, colonne2 AS alias, expressionFROM table;Exemple
SELECT name AS produit, price AS prix_ht, ROUND(price * 1.2, 2) AS prix_ttcFROM productsORDER BY id;-- Jeu de données : boutique-- Résultat attendu :-- Clavier mécanique | 89.99 | 107.99-- Souris sans fil | 29.99 | 35.99-- Casque audio | 149.99 | 179.99-- Webcam HD | 59.99 | 71.99-- Enceinte Bluetooth | 79.99 | 95.99À retenir
- SELECT * affiche toutes les colonnes : pratique pour explorer une table, mais à éviter dans une application, car la requête change de forme dès qu'on ajoute une colonne.
- Une colonne calculée (price * 1.2) n'est pas stockée : elle est recalculée à chaque lecture. Donnez-lui toujours un alias avec AS pour obtenir un nom de colonne lisible.
- Piège : sans ORDER BY, l'ordre des lignes n'est pas garanti. Il peut changer après une mise à jour du moteur ou l'ajout d'un index.
- Piège : un alias défini dans SELECT n'est pas utilisable dans WHERE en SQL standard (PostgreSQL et SQL Server le refusent). SQLite le tolère, ce qui rend la requête non portable.
Voir aussi
- WHEREWHERE ne garde que les lignes qui vérifient une condition, avant tout regroupement. C'est le filtre de base pour cibler un client, une période, un statut ou une plage de valeurs.
- ORDER BYORDER BY trie le résultat final, croissant par défaut (ASC) ou décroissant (DESC). Plusieurs colonnes servent à départager les ex æquo, par exemple le prix puis le nom.
- DISTINCTDISTINCT supprime les lignes en double du résultat, en comparant toutes les colonnes listées. On s'en sert pour obtenir la liste des valeurs possibles d'une colonne, comme les villes clientes.
- Ordre logique d'exécutionUne requête ne s'évalue pas dans l'ordre où on l'écrit : FROM vient d'abord, SELECT presque à la fin. Connaître cet ordre explique la plupart des erreurs d'alias et d'agrégats.