Retour à la liste des articles Articles
7 minutes de lecture

Comment utiliser les alias dans les requêtes SQL

Un alias SQL est utile pour simplifier vos requêtes et rendre la requête et son résultat plus lisibles. Cet article explique pourquoi et comment vous pouvez utiliser des alias dans vos requêtes SQL.

Vous pouvez renommer temporairement une table ou une colonne en lui donnant un autre nom. C'est ce qu'on appelle un alias SQL. Il s'agit d'une modification temporaire qui n'affecte pas le nom réel de la table dans la base de données. Un nom de table temporaire peut également être appelé un nom de corrélation.

Les alias sont une fonctionnalité de SQL qui est prise en charge par la plupart des systèmes de gestion de bases de données relationnelles, si ce n'est tous. Si vous êtes très novice en SQL, envisagez de suivre notre cours SQL pour les débutants , qui couvre également le sujet des alias.

Pourquoi utiliser un alias en SQL ?

Voici plusieurs raisons pour lesquelles vous pourriez envisager d'utiliser un alias SQL :

  • Les noms complexes de colonnes et de tables peuvent être simplifiés ou recevoir un nom plus approprié. Cela rend la requête SQL plus claire et plus facile à comprendre.
  • Les alias sont utiles lorsque nous travaillons avec les opérations JOIN ou les fonctions agrégées comme COUNT() et SUM().
  • Un alias SQL est également pratique lorsqu'on utilise une auto-jonction.
  • Lorsque vous travaillez avec plusieurs tables, il est bon de préfixer tous les noms de colonnes par un alias afin de pouvoir facilement voir quelle colonne appartient à quelle table.

À propos, les alias ne sont qu'un des termes que les utilisateurs de SQL doivent connaître. D'autres termes SQL importants sont détaillés dans cet article, Termes SQL que les débutants doivent connaître.

Maintenant, examinons de plus près l'utilisation des alias, en commençant par les colonnes.

Renommer des colonnes à l'aide d'alias

Un alias peut être utilisé pour renommer les colonnes dans votre requête SQL. La syntaxe est la suivante :

SELECT 
  column_1 AS alias_1, 
  column_2 AS alias_2, 
  …
FROM table_name;

Appliquons tout cela à un exemple pratique. Nous allons utiliser la table suivante, qui contient des informations de base sur notre site Web. customers:

customer_idcustomer_nameage
1Daniel Case23
2Josh Beverly47
3Bruce Roman51
4William Stewart62

Tout d'abord, nous allons utiliser une requête qui n'a pas d'alias pour les noms de colonnes. Imaginons que nous voulions voir quels clients sont âgés de moins de 60 ans. Nous pourrions écrire la requête suivante :

SELECT
  customer_id,
  customer_name, 
  age 
FROM customers 
WHERE age < 60

L'exécution de cette requête renverra cet ensemble de résultats :

customer_idcustomer_nameage
1Daniel Case23
2Josh Beverly47
3Bruce Roman51

Maintenant, introduisons nos alias de colonnes. La requête ci-dessous contient maintenant un alias pour deux colonnes :

SELECT
  customer_id AS id,
  customer_name AS name, 
  age 
FROM customers 
WHERE age < 60
idnameage
1Daniel Case23
2Josh Beverly47
3Bruce Roman51

Comparez cela avec le résultat de notre exemple précédent. Portez une attention particulière aux noms des colonnes et vous remarquerez l'impact de nos alias. La colonne customer_id apparaît maintenant comme id. La colonne customer_name apparaît comme nom. La colonne age est inchangée. C'est le résultat que nous souhaitons !

Notez que le mot-clé AS est entièrement facultatif lorsque vous utilisez des alias. Par exemple, ces deux requêtes SQL exécutent exactement la même fonction :

SELECT 
  customer_id AS id, 
  customer_name AS name, 
  age 
FROM customers 
WHERE age < 60

SELECT 
  customer_id id, 
  customer_name name, 
  age 
FROM customers 
WHERE age < 60

Si l'alias que vous utilisez contient des espaces, vous devez mettre des guillemets autour de l'alias. Par exemple :

SELECT customer_name AS 'Customer Name'
FROM customers

Voilà qui conclut l'utilisation d'un alias SQL pour renommer des colonnes. Nous allons maintenant utiliser un alias pour renommer des tables !

Renommer des tables à l'aide d'alias SQL

Un alias peut être utilisé pour renommer les tables qui sont utilisées dans votre requête SQL. La syntaxe des alias de table est la suivante :

SELECT 
  column_1, 
  column_2, 
  …
FROM table_name AS alias_name;

Appliquons cette syntaxe à un exemple. Nous utiliserons la même table :

clients

SELECT 
  customer_name, 
  age 
FROM customers AS c 
WHERE c.age < 60

L'exécution de cette requête renvoie les données suivantes :

customer_nameage
Daniel Case23
Josh Beverly47
Bruce Roman51

Si vous utilisez un nom de table avant un nom de colonne dans la clause WHERE, vous ne pouvez pas utiliser le nom de table original ; vous devez utiliser l'alias de table. De même, lorsque vous souhaitez spécifier la table dans la liste SELECT, vous devez utiliser l'alias (par exemple, c.customer_name). Encore une fois, le mot-clé AS est entièrement facultatif. La requête fonctionnera de la même manière sans lui.

Utilisation d'un alias avec un auto-joint

Une auto-jonction vous permet de joindre une table à elle-même. Cette fonction est utile pour interroger des données hiérarchiques ou comparer des lignes au sein d'une même table. Essentiellement, vous traitez la table comme deux tables distinctes (ou plus) en lui attribuant des alias. Si vous n'êtes pas familier avec les auto-joints, consultez cet article qui présente sept exemples de tables auto-jointes en SQL.

Lors de l'auto-jonction d'une table, vous pouvez utiliser un LEFT JOIN ou un INNER JOIN. Lorsque vous utilisez une auto-jonction, il est important d'utiliser un alias SQL logique pour chaque table. (Les alias sont également utiles pour les sous-requêtes. Un exemple de ceci est montré dans cet article qui explique complètement les sous-requêtes).

Voyons comment nous pouvons écrire une requête qui va JOIN une table à elle-même. Pour notre exemple, nous allons utiliser la table employeequi contient tous nos employés, l'ID de leur département et l'ID de leur responsable.

idemployee_namedepartment_idmanager_id
1John Walker4NULL
2Bob Pendergast11
3Penelope Cruz21
4Lucy Summers51
5Tim Saunter31
6Mary Smith23

Supposons que nous voulions un ensemble de résultats qui ne montre qu'un employé et son responsable. Comment pouvons-nous y parvenir ? Il suffit d'utiliser intelligemment les alias en combinaison avec une jointure automatique. Nous allons d'abord essayer d'utiliser une LEFT JOIN. Regardez l'extrait de code ci-dessous :

SELECT 
  e.employee_name AS 'Employee',
  m.employee_name AS 'Manager'
FROM employee e
LEFT JOIN employee m
  ON m.id = e.manager_id

Lorsque nous joignons les tables, nous nous assurons que la valeur de la colonne id de la table des responsables (employee m) est égale à la valeur de la colonne manager_id de la table des employés (employee e). En utilisant LEFT JOIN au lieu de JOIN, nous verrons tous les employés, même ceux qui n'ont pas de responsable.

Faites attention à l'erreur de colonne ambiguë ; elle peut facilement se produire si vous ne faites pas attention lorsque vous écrivez une requête d'auto-jonction. Pour éviter cette erreur, vous devez spécifier explicitement la table à laquelle la colonne appartient (employee vous avez nommé e ou employee vous avez nommé m). Dans cet exemple, la première colonne provient de la table e (donc e.employee_name) et la deuxième colonne provient du tableau m (donc m.employee_name).

L'exécution de la requête ci-dessus produit l'ensemble de résultats suivant :

EmployeeManager
John WalkerNULL
Bob PendergastJohn Walker
Penelope CruzJohn Walker
Lucy SummersJohn Walker
Tim SaunterJohn Walker
Mary SmithPenelope Cruz

Voilà le résultat souhaité ! Vous pouvez clairement voir chaque employé et son responsable. La plupart des employés dépendent de John Walker. Cependant, vous pouvez voir que le responsable de Mary Smith est Penelope Cruz. Remarquez la valeur NULL sous la colonne Manager pour John Walker. Cela s'explique par le fait que John Walker n'a pas de responsable, il est le patron. Nous avons pu l'inclure dans nos résultats parce que nous avons utilisé LEFT JOIN.

Modifions légèrement la requête et utilisons un INNER JOIN:

SELECT
  e.employee_name AS 'Employee',
  m.employee_name AS 'Manager'
FROM employee e
INNER JOIN employee m
  ON m.id = e.manager_id
EmployeeManager
Bob PendergastJohn Walker
Penelope CruzJohn Walker
Lucy SummersJohn Walker
Tim SaunterJohn Walker
Mary SmithPenelope Cruz

La seule différence majeure est l'absence de John Walker dans la colonne Employee. En effet, la valeur manager_id pour lui était NULL, et INNER JOIN ne renvoie que les colonnes correspondantes - les valeurs NULL ne sont pas incluses.

Vous pouvez maintenant effectuer des auto-joints, qui peuvent être appliqués à de nombreux cas d'utilisation différents. Si vous avez besoin de voir d'autres exemples d'auto-jointures pour bien comprendre le sujet, consultez cet article de blog sur la façon de joindre deux fois la même table!

Rédiger de meilleures requêtes SQL à l'aide d'alias

Dans cet article, nous avons démontré la valeur des alias SQL. Ils vous aident à afficher des données plus claires et présentent l'avantage supplémentaire de masquer les noms de tables ou de colonnes potentiellement sensibles. Si vous avez apprécié cet article et que vous souhaitez poursuivre votre apprentissage de SQL, consultez notre parcours d'apprentissage Les Fondamentaux de SQL . Vous y apprendrez les instructions SQL de base telles que WHERE, GROUP BY, ORDER BY et HAVING. Vous apprendrez également à JOIN tables et à ajouter, modifier ou supprimer des données dans une base de données.