Les alias concourrent à améliorer la lisibilité et la concision d'une requête. Il existe deux types d'alias : les alias de tables et les alias de champs. Ils peuvent également s'appliquer à une fonction d'agrégation retournant des données sous forme de colonnes.
SELECT Alias_table.nom_champ AS Alias_champ FROM nom_table AS Alias_table
La clause AS affectant un alias à une table ou une colonne, peut être remplacer par un simple espace blanc.
SELECT Alias_table.nom_champ Alias_champ FROM nom_table Alias_table
Les alias de champs peuvent être des chaînes de caractères composées de mots et d'espaces. Dans ce cas, il faut placer l'alias entre simple guillemet.
SELECT Alias_table.nom_champ AS 'Un alias de champ' FROM nom_table AS Alias_table
Lors de l'affichage des lignes résultantes, les alias de champs se substitueront aux noms de colonnes. De cette manière, il devient possible d'attribuer des noms de colonnes plus explicites pour les utilisateurs de la base de données.
Les alias sont particulièrement utiles dans le cadre des jointures et des requêtes imbriquées. Dans les deux cas, il devient possible de faire appel à des champs de noms identiques en les distinguant par des préfixes qui sont les alias de table.
-- Jointure SELECT p.nom, p.prenom, c.num_client, FROM personne AS p, client AS c WHERE p.nom = c.nom AND p.prenom = c.prenom -- Jointure réflexive SELECT p1.*, p2.* FROM personne AS p1, personne AS p2 WHERE p1.code_postal = p2.code_postal -- Requête imbriquée SELECT e.nom, e.salaire FROM employes AS e, service AS s WHERE (e.id_service, e.salaire) IN (SELECT id_service, salaire_min FROM Echelle_Salaire WHERE id_type_emploi = e.id_type_emploi) AND e.id_service = s.id_service AND s.code_postal = 77400;
Le langage SQL prévoit également les synonymes de tables, de vues ou de tout autre objet. Les synonymes permettent de dissimuler un nom de table par un autre afin d'éviter qu'un utilisateur accède nommément à un objet qui ne lui appartient guère.
CREATE [ PUBLIC | PRIVATE ] SYNONYM nom_synonyme FOR objet; CREATE SYNONYM syn_empl FOR tbl_personnel;
Les synonymes peuvent être publics (PUBLIC) donc accessibles dans toute la base de données, et partant, par l'ensemble de ses utilisateurs ou privés (par défaut) donc destinés au seul usage de son créateur et des éventuels bénéficiaires de privilèges d'accès.
Les synonymes peuvent être suprimées par l'intermédaire d'une commande de suppression DROP.
ExempleDROP [ PUBLIC | PRIVATE ] SYNONYM nom_synonyme; DROP SYNONYM syn_empl;
SELECT L.Editeur 'Nom des éditeurs', SUM(L.Prix) 'Total des prix' FROM Librairie AS L GROUP BY L.Editeur HAVING SUM(L.Prix) > 200 ' retourne |
Nom des éditeurs | Total des prix |
---|---|
O'REILLY | 616.00 |
WROX PRESS | 286.00 |
MICROSOFT PRESS | 284.00 |