Dans les leçons précédentes, nous avons appris à sélectionner des données dans les tables. Parfois, les noms de colonnes par défaut dans une base de données ne sont pas très descriptifs, ou vous pourriez vouloir donner un nouveau nom à une colonne que vous avez calculée. C'est là qu'intervient l'aliasing de colonne.
L'aliasing de colonne vous permet d'attribuer un nom alternatif et temporaire à une colonne dans l'ensemble de résultats d'une requête SELECT. Cela ne modifie pas le nom réel de la colonne dans la table ; cela n'affecte que la façon dont la colonne est affichée dans le résultat de la requête.
Vous pouvez créer un alias de colonne en utilisant le mot-clé AS, bien qu'il soit souvent facultatif :
SELECT nom_colonne AS nom_alias
FROM nom_table;
-- OU (sans AS)
SELECT nom_colonne nom_alias
FROM nom_table;
nom_colonne : Le nom de la colonne que vous souhaitez renommer.AS nom_alias : Le mot-clé AS suivi du nom d'alias souhaité.nom_alias : Le nouveau nom temporaire de la colonne. Si l'alias contient des espaces ou des caractères spéciaux, il doit être entouré de guillemets doubles (").L'utilisation d'alias offre plusieurs avantages pour la présentation des données et la construction des requêtes :
Il faut être prudent avec la portée des alias en SQL. Selon le SGBD, les règles peuvent varier de manière significative : une base de données peut autoriser un alias dans une partie donnée de la requête, tandis qu'une autre renverra une erreur dans exactement le même cas.
Cela est particulièrement important dans les cas limites, par exemple avec HAVING, les constructions de fenêtre avec OVER, les sous-requêtes dans la liste SELECT et d'autres expressions plus avancées. Dans ce genre de situations, il ne faut pas se fier à une intuition générale ni à des habitudes prises dans un autre dialecte SQL.
Règle pratique : si une requête doit rester portable, vérifiez toujours la documentation du SGBD concerné ou testez le comportement expérimentalement.
Voyons quelques exemples pratiques en utilisant la structure de la base de données Sakila.
Cette requête sélectionne les colonnes first_name et last_name de la table actor, mais les affiche comme "Given Name" (Prénom) et "Surname" (Nom) dans l'ensemble de résultats. Notez l'utilisation de guillemets doubles car l'alias contient un espace.
SELECT first_name AS "Given Name", last_name AS "Surname"
FROM actor;
Cette requête calcule la durée de location en jours et attribue l'alias rental_duration à la colonne calculée.
SELECT rental_date, return_date - rental_date AS rental_duration
FROM rental;
Cette requête concatène les colonnes first_name et last_name pour créer un nom complet et attribue l'alias "Full Name" à la colonne résultante.
SELECT first_name || ' ' || last_name AS "Full Name"
FROM actor;
Note : L'opérateur
||est utilisé pour la concaténation de chaînes dans SQLite et PostgreSQL. D'autres bases de données peuvent utiliser des opérateurs ou des fonctions différents (ex :+dans SQL Server, fonctionCONCAT()dans MySQL).
Points clés de cette leçon :
AS (ou simplement un espace) pour créer un alias.").