Alias SQL : renommer des colonnes avec AS
Leçon 2.5 · Temps de lecture : ~5 min · Exercices pratiques ↓
Un alias de colonne SQL est un nom temporaire que vous donnez à une colonne dans le résultat d'une requête avec le mot-clé AS. Dans cette leçon, vous apprendrez la syntaxe des alias, comment écrire des alias contenant des espaces, pourquoi les colonnes calculées ont besoin d'alias et où un alias peut être utilisé dans une requête.
Dans les leçons précédentes, vous avez sélectionné les colonnes exactement sous le nom qu'elles portent dans la table. Les noms de colonnes sont souvent techniques, comme rental_rate ou replacement_cost, et une valeur calculée telle que length / 60 n'a pas de vrai nom. Les alias vous permettent de contrôler les en-têtes du résultat.
Qu'est-ce qu'un alias de colonne ?
Un alias de colonne attribue un nom temporaire à une colonne dans le résultat d'une requête SELECT. Il ne modifie pas la colonne dans la table : l'alias n'existe que dans la sortie de cette requête.
Syntaxe de base
SELECT column_name AS alias_name
FROM table_name;
Le mot-clé AS est facultatif : SELECT column_name alias_name fonctionne aussi. Écrire AS explicitement rend la requête plus lisible, car l'alias ne ressemble pas à une seconde colonne.
Renommer une colonne
SELECT title AS film_title,
rental_rate AS price
FROM film;
Résultat : tous les films avec deux colonnes nommées film_title et price au lieu de title et rental_rate.
Alias avec des espaces
Si un alias contient des espaces ou des caractères spéciaux, mettez-le entre guillemets doubles :
SELECT first_name AS "Given Name",
last_name AS "Surname"
FROM actor;
Résultat : la liste des acteurs avec les en-têtes de colonnes « Given Name » et « Surname ».
Les guillemets doubles sont la norme SQL. MySQL et MariaDB acceptent aussi les accents graves (`Given Name`), et SQL Server les crochets ([Given Name]). En pratique, des noms courts sans espaces, comme given_name, sont plus faciles à réutiliser dans la requête.
Alias pour les colonnes calculées
Lorsqu'une colonne est calculée à partir d'une expression, la base de données génère un en-tête à partir du texte de l'expression, par exemple length / 60. Un alias lui donne un vrai nom :
SELECT title,
length AS length_minutes,
length / 60 AS length_hours,
rental_rate * rental_duration AS full_rental_cost
FROM film;
Résultat : chaque film avec sa durée en minutes et en heures, et le coût de sa location pour toute la période.
Les colonnes calculées sont la raison la plus fréquente d'utiliser des alias : sans eux, le résultat est difficile à lire, et les applications qui lisent le résultat par nom de colonne ne trouvent pas la valeur.
Où peut-on utiliser un alias ?
Un alias est créé dans la liste SELECT, il n'est donc disponible que dans les parties de la requête traitées après SELECT :
| Clause | Peut utiliser un alias de colonne ? |
|---|---|
ORDER BY | Oui, dans tous les principaux SGBD |
WHERE | Non : WHERE est traité avant SELECT |
GROUP BY, HAVING | Dépend du SGBD (MySQL et PostgreSQL l'autorisent dans GROUP BY) |
SELECT title, rental_rate * rental_duration AS full_rental_cost
FROM film
ORDER BY full_rental_cost DESC;
Résultat : les films triés de la location complète la plus chère à la moins chère.
Si une requête doit fonctionner sur plusieurs SGBD, répétez l'expression au lieu de l'alias dans WHERE, GROUP BY et HAVING. Vous en saurez plus sur l'ordre de traitement dans la leçon 2.7.
Points clés :
- Un alias de colonne est un nom temporaire de la colonne dans le résultat ; la table ne change pas.
- Écrivez les alias avec
AS:SELECT title AS film_title. Le mot-clé est facultatif mais améliore la lisibilité. - Mettez les alias contenant des espaces entre guillemets doubles :
AS "Given Name". - Donnez un alias à chaque colonne calculée.
- Un alias peut être utilisé dans
ORDER BY, mais pas dansWHERE.
Questions fréquentes
Le mot-clé AS est-il obligatoire pour un alias en SQL ?
Non. SELECT title film_title fonctionne comme SELECT title AS film_title. Il est recommandé d'utiliser AS, car il montre clairement où se termine la colonne et où commence l'alias.
Pourquoi ne peut-on pas utiliser un alias de colonne dans WHERE ?
WHERE est traité avant SELECT, donc l'alias n'existe pas encore au moment du filtrage des lignes. Répétez l'expression dans WHERE ou utilisez l'alias dans ORDER BY, qui est traité après SELECT.
Un alias renomme-t-il la colonne dans la table ?
Non. Un alias n'affecte que le résultat de la requête en cours. Pour renommer la colonne dans la table elle-même, utilisez ALTER TABLE ... RENAME COLUMN.