SQL AS (alias)

Dans le langage SQL il est possible d’utiliser des alias pour renommer temporairement une colonne ou une table dans une requête. Cette astuce est particulièrement utile pour faciliter la lecture des requêtes.

Intérêts et utilités

Alias sur une colonne

Permet de renommer le nom d’une colonne dans les résultats d’une requête SQL. C’est pratique pour avoir un nom facilement identifiable dans une application qui doit ensuite exploiter les résultats d’une recherche.

Cas concrets d’utilisations :

  • Une colonne qui s’appelle normalement c_iso_3166 peut être renommée “code_pays” (cf. le code ISO 3166 correspond au code des pays), ce qui est plus simple à comprendre dans le reste du code par un développeur.
  • Une requête qui utilise la commande UNION sur des champs aux noms différents peut être ambigu pour un développeur. En renommant les champs avec un même nom il est plus simple de traiter les résultats.
  • Lorsqu’une fonction est utilisé, le nom d’une colonne peut-être un peu complexe. Il est ainsi possible de renommer la colonne sur laquelle il y a une fonction SQL. Exemple : SELECT COUNT(*) AS nombre_de_resultats FROM `table`.
  • Lorsque plusieurs colonnes sont combinées il est plus simple de renommer la nouvelle colonne qui est une concaténation de plusieurs champs.

Alias sur une table

Permet d’attribuer un autre nom à une table dans une requête SQL. Cela peut aider à avoir des noms plus court, plus simple et plus facilement compréhensible. Ceci est particulièrement vrai lorsqu’il y a des jointures.

Syntaxe

Alias sur une colonne

La syntaxe pour renommer une colonne de colonne1 à c1 est la suivante:

SELECT colonne1 AS c1, colonne2
FROM `table`

Cette syntaxe peut également s’afficher de la façon suivante:

SELECT colonne1 c1, colonne2
FROM `table`

A noter : à choisir il est préférable d’utiliser la commande “AS” pour que ce soit plus explicite (plus simple à lire qu’un simple espace), d’autant plus que c’est recommandé dans le standard ISO pour concevoir une requête SQL.

Alias sur une table

La syntaxe pour renommer une table dans une requête est la suivante:

SELECT *
FROM `nom_table` AS t1

Cette requête peut également s’écrire de la façon suivante:

SELECT *
FROM `table`t1

Exemple

Renommer une colonne

Imaginons une site d’e-commerce qui possède une table de produits. Ces produits sont disponibles dans une même table dans plusieurs langues , dont le français. Le nom du produit peut ainsi être disponible dans la colonne “nom_fr_fr”, “nom_en_gb” ou “nom_en_us”. Pour utiliser l’un ou l’autre des titres dans le reste de l’application sans avoir à se soucier du nom de la colonne, il est possible de renommer la colonne de son choix avec un nom générique. Dans notre cas, la requête pourra ressemble à ceci:

SELECT p_id, p_nom_fr_fr AS nom, p_description_fr_fr AS description, p_prix_euro AS prix
FROM `produit`

Une telle requête va retourner par exemple les résultats suivants:

idnomdescriptionprix
1EcranEcran de grandes tailles.399.99
2ClavierClavier sans fil.27
3SourisSouris sans fil.24
4Ordinateur portableGrande autonomie et et sacoche offerte.700

Comme nous pouvons le constater les colonnes ont été renommées.

Renommer une ou plusieurs tables

Imaginons que les produits du site e-commerce soit répartis dans des catégories. Pour récupérer la liste des produits en même temps que la catégorie auquel il appartient il est possible d’utiliser une requête SQL avec une jointure. Cette requête peut utiliser des alias pour éviter d’utiliser à chaque fois le nom des tables.

La requête ci-dessous renomme la table “produit” en “p” et la table “produit_categorie” en “pc” (plus court et donc plus rapide à écrire):

SELECT p_id, p_nom_fr_fr, pc_id, pc_nom_fr_fr
FROM `produit` AS p
LEFT JOIN `produit_categorie` AS pc ON pc.pc_id = p.p_fk_category_id

Cette astuce est encore plus pratique lorsqu’il y a des noms de tables encore plus compliqués et lorsqu’il y a beaucoup de jointures.

Partager