Vous pouvez définir des alias de table dans SQL en tapant l'identifiant juste après le nom de la table.
SELECT * FROM table t1;
Vous pouvez même utiliser le mot-clé AS
pour indiquer l'alias.
SELECT * FROM table AS t1;
Quelle est la différence entre eux, le cas échéant?
Je vois que les anciens DBA ont tendance à écrire des déclarations sans AS
, mais la plupart des nouveaux didacticiels l'utilisent.
Mise à jour: je sais à quoi servent les alias de table et de colonne. Je suis curieux de savoir quelle est la raison d'avoir un mot clé séparé pour définir des alias alors que cela fonctionne également sans lui.
CREATE PROC Test @Param1 INT AS SELECT @Param1
Réponses:
Il n'y a aucune différence entre les deux déclarations ci-dessus. AS est juste une manière plus explicite de mentionner l'alias
la source
Tous ceux qui ont répondu avant moi ont raison. Vous l'utilisez en quelque sorte comme nom de raccourci d'alias pour une table lorsque vous avez de longues requêtes ou des requêtes qui ont des jointures. Voici quelques exemples.
Exemple 1
Exemple 2
Exemple 3 C'est une bonne pratique d'utiliser le mot clé AS, et très recommandé, mais il est possible d'effectuer la même requête sans un (et je le fais souvent).
Comme vous pouvez le constater, j'ai omis le mot clé AS dans le dernier exemple. Et il peut être utilisé comme alias.
Exemple 4
Sortie de l'exemple 4
la source
Lorsque vous ne savez pas quelle syntaxe choisir, surtout quand il ne semble pas y avoir grand-chose pour séparer les choix, consultez un livre sur l'heuristique. Autant que je sache, le seul livre heuristique pour SQL est 'Joe Celko's SQL Programming Style':
De cette façon, si votre équipe n'aime pas la convention, vous pouvez blâmer Celko - je sais que je l'aime;)
UPDATE 1: IIRC pendant longtemps, Oracle n'a pas pris en charge le
AS
mot-clé (nom de corrélation précédent), ce qui peut expliquer pourquoi certains anciens ne l'utilisent pas habituellement.MISE À JOUR 2: le terme «nom de corrélation», bien qu'utilisé par le standard SQL, est inapproprié. Le concept sous-jacent est celui d'une « variable de plage ».
MISE À JOUR 3: Je viens de relire ce que Celko a écrit et il se trompe: la table n'est pas renommée! Je pense maintenant:
la source
Le
AS
mot clé est de donner un nom ALIAS à votre table de base de données ou à une colonne de table. Dans votre exemple, les deux déclarations sont correctes mais il y a des circonstances où la clause AS est nécessaire (bien que l'AS
opérateur lui-même soit facultatif), par exempleDans ce cas, la
Employee
table a unesalary
colonne et nous voulons juste le double du salaire avec un nouveau nomDouble Salary
.Désolé si mon explication n'est pas efficace.
Mise à jour en fonction de votre commentaire, vous avez raison, ma déclaration précédente était invalide. La seule raison à laquelle je peux penser est que la
AS
clause existe depuis longtemps dans le monde SQL pour laquelle elle a été incorporée dans les SGBDR de nos jours à des fins de compatibilité descendante.la source
AS
n'est pas nécessaire ou nécessaire même dans ce cas. EssayezSELECT 1 + 1 "result"
.L'utilisation est plus évidente si vous n'utilisez pas 'SELECT *' (ce qui est une mauvaise habitude dont vous devriez vous débarrasser):
la source
C'est une manière formelle de spécifier un nom de corrélation pour une entité afin que vous puissiez l'adresser facilement dans une autre partie de la requête.
la source
Dans
AS
ce cas, il s'agit d'un mot clé facultatif défini dans ANSI SQL 92 pour définir un<<correlation name>
, communément appelé alias pour une table.Il semble préférable de NE PAS utiliser le
AS
mot - clé pour les alias de table car il n'est pas pris en charge par un certain nombre de bases de données couramment utilisées.la source
as
mot - clé pour les alias de table.Au début de SQL, il a été choisi comme solution au problème de la gestion des noms de colonne en double (voir la note ci-dessous).
Pour emprunter une requête à une autre réponse:
La colonne
ProductID
(et peut-être d'autres) est commune aux deux tables et comme la syntaxe de la condition de jointure nécessite une référence aux deux, la «qualification de point» permet de lever l'ambiguïté.Bien sûr, la meilleure solution était de ne jamais avoir autorisé les noms de colonnes en double! Heureusement, si vous utilisez la nouvelle
NATURAL JOIN
syntaxe, le besoin des variables de plageP
etO
disparaît:Mais pourquoi le
AS
mot - clé est-il facultatif? Mon souvenir d'une discussion personnelle avec un membre du comité de normalisation SQL (Joe Celko ou Hugh Darwen) était que leur souvenir était qu'au moment de la définition de la norme, le produit d'un fournisseur (Microsoft?) Nécessitait son inclusion et celui d'un autre fournisseur. produit (Oracle?) exigeait son omission, le compromis choisi était donc de le rendre facultatif. Je n'ai aucune citation pour cela, vous me croyez ou non!Dans les premiers jours du modèle relationnel, le produit croisé (ou thêta-jointure ou équi-jointure) de relations dont les en-têtes ne sont pas disjoints semblait produire une relation avec deux attributs du même nom; La solution de Codd à ce problème dans son calcul relationnel était l'utilisation de la qualification de point, qui a ensuite été émulée en SQL (on s'est rendu compte plus tard que la jointure naturelle était primitive sans perte; c'est-à-dire que la jointure naturelle peut remplacer toutes les jointures thêta et même produit croisé.)
Source: Business System 12, Notes associées aux diapositives de la présentation donnée à l'atelier des implémenteurs de TTM, Université de Northumbria, 2-3 juin 2011 par Hugh Darwen
la source
AS
mot-clé est facultatif (pas de citation, évidemment!). Hugh a pris sa retraite il y a quelques années. Je pense que Celko pourrait être encore actif - ses souvenirs ajouteraient-ils du poids? Les preuves et la traceSi vous concevez une requête à l'aide de l'éditeur de requête dans SQL Server 2012 par exemple, vous obtiendrez ceci:
Cependant, la suppression de l'AS ne fait aucune différence comme dans ce qui suit:
Dans ce cas, l'utilisation de l'AS est superflue mais dans de nombreux autres endroits, elle est nécessaire.
la source