SQL AS : renommer une colonne et faire des calculs
Une requête ne se contente pas de recopier les colonnes d'une table : elle peut calculer de nouvelles valeurs (un prix TTC, une valeur de stock) et assembler du texte (un nom complet). Le mot-clé AS permet ensuite de donner un nom clair à ces colonnes calculées.
Syntaxe
SELECT expression AS nouveau_nom
FROM nom_de_la_table;Comment ça marche
Les calculs
Dans la liste du SELECT, on peut utiliser les opérateurs +, -, * et / entre des colonnes et des nombres. Le calcul est fait pour chaque ligne.
⚠️ En SQLite, une division entre deux nombres entiers donne un nombre entier : 7 / 2 vaut 3. Pour obtenir 3.5, écrivez 7 / 2.0 ou multipliez d'abord par 1.0.
Assembler du texte
En SQLite (comme en PostgreSQL et Oracle), l'opérateur || colle deux textes. MySQL utilise plutôt la fonction CONCAT().
Les alias avec AS
Sans alias, une colonne calculée prend comme nom son expression complète, par exemple prix * stock. Avec AS valeur_stock, le résultat devient lisible. Le mot AS est facultatif (prix * stock valeur_stock marche aussi), mais l'écrire évite bien des confusions. Les alias servent aussi à raccourcir les noms de tables dans les jointures.
Schéma
| nom | prix | stock |
|---|---|---|
| Clavier | 49 | 10 |
| Plaid | 25 | 4 |
| nom | valeur_stock |
|---|---|
| Clavier | 490 |
| Plaid | 100 |
Schéma simplifié pour illustrer le principe. Les exemples ci-dessous utilisent la vraie base d'exercices de SQL Quest (une boutique en ligne fictive : voir le schéma complet).
Exemples avec leurs résultats
1. Calculer une valeur de stock
Le prix multiplié par la quantité en stock donne la valeur immobilisée de chaque produit.
SELECT nom, prix, stock, prix * stock AS valeur_stock
FROM produits
LIMIT 6; Essayer dans le bac à sable| nom | prix | stock | valeur_stock |
|---|---|---|---|
| Clavier mécanique | 15 | 105 | 1 575 |
| Souris sans fil | 103 | 75 | 7 725 |
| Écran 27" | 342 | 102 | 34 884 |
| Webcam HD | 101 | 21 | 2 121 |
| SSD 1To | 317 | 90 | 28 530 |
| Casque gaming | 98 | 37 | 3 626 |
6 lignes au total
2. Calculer un prix TTC arrondi
ROUND(x, 2) arrondit à deux décimales.
SELECT nom, prix AS prix_ht, ROUND(prix * 1.2, 2) AS prix_ttc
FROM produits
LIMIT 6; Essayer dans le bac à sable| nom | prix_ht | prix_ttc |
|---|---|---|
| Clavier mécanique | 15 | 18 |
| Souris sans fil | 103 | 123,6 |
| Écran 27" | 342 | 410,4 |
| Webcam HD | 101 | 121,2 |
| SSD 1To | 317 | 380,4 |
| Casque gaming | 98 | 117,6 |
6 lignes au total
3. Assembler un nom complet
On colle le prénom, un espace et le nom avec ||.
SELECT prenom || ' ' || nom AS nom_complet, poste
FROM employes
LIMIT 6; Essayer dans le bac à sable| nom_complet | poste |
|---|---|
| Chloé Dubois | PDG |
| Jade Lefebvre | Directeur commercial |
| Nathan Roux | Directrice technique |
| Samir Simon | Responsable RH |
| Alice Simon | Commercial |
| Nathan Martin | Commercial |
6 lignes au total
Les erreurs fréquentes
La division entière
Diviser deux entiers en SQLite tronque le résultat. Ajoutez une décimale pour obtenir un résultat exact.
SELECT 7 / 2 AS resultat;SELECT 7 / 2.0 AS resultat;Utiliser + pour coller du texte
En SQLite, + est un opérateur mathématique : il tente de convertir les textes en nombres et renvoie 0. Utilisez ||.
SELECT prenom + ' ' + nom FROM clients;SELECT prenom || ' ' || nom FROM clients;Un alias avec des espaces
Un alias contenant des espaces ou des accents doit être mis entre guillemets doubles. Le plus simple est d'utiliser des underscores.
SELECT prix * 1.2 AS prix ttc FROM produits;SELECT prix * 1.2 AS prix_ttc FROM produits;Exercices
Essayez d'écrire la requête vous-même avant d'ouvrir la solution.
Défi 1. Affichez le nom de chaque produit et son prix augmenté de 10 %, arrondi à 2 décimales, dans une colonne nommée nouveau_prix.
Voir une solution
SELECT nom, ROUND(prix * 1.1, 2) AS nouveau_prix FROM produits;| nom | nouveau_prix |
|---|---|
| Clavier mécanique | 16,5 |
| Souris sans fil | 113,3 |
| Écran 27" | 376,2 |
| Webcam HD | 111,1 |
| SSD 1To | 348,7 |
| Casque gaming | 107,8 |
| Hub USB-C | 53,9 |
| Lampe LED | 56,91 |
29 lignes au total · 8 affichées
Essayer dans le bac à sableDéfi 2. Affichez une seule colonne « identite » au format « Nom (ville) » pour chaque client.
Voir une solution
SELECT nom || ' (' || ville || ')' AS identite FROM clients;| identite |
|---|
| Dubois (Lille) |
| Martin (Lille) |
| Laurent (Paris) |
| Lefebvre (Toulouse) |
| Laurent (Marseille) |
| Michel (Bordeaux) |
| Dubois (Casablanca) |
| Lambert (Montréal) |
120 lignes au total · 8 affichées
Essayer dans le bac à sableLes exercices interactifs sont corrigés automatiquement, avec un prof qui explique vos erreurs. Une leçon résumée reste affichée à côté de l'éditeur.
Questions fréquentes
Le mot-clé AS est-il obligatoire ?
Non, SQL accepte aussi un alias écrit directement après l'expression. L'écrire rend toutefois la requête plus claire et évite de confondre un alias avec une virgule oubliée.
Peut-on utiliser un alias dans le WHERE ?
Dans le SQL standard, non : le WHERE est évalué avant le SELECT. SQLite le tolère, mais pour du code portable, répétez l'expression dans le WHERE ou utilisez une sous-requête.
Comment concaténer du texte en MySQL ?
MySQL utilise CONCAT(prenom, ' ', nom). En SQLite, PostgreSQL et Oracle, on utilise l'opérateur ||.