Você pode definir aliases de tabela no SQL digitando o identificador logo após o nome da tabela.
SELECT * FROM table t1;
Você pode até usar a palavra AS
- chave para indicar o alias.
SELECT * FROM table AS t1;
Qual a diferença entre eles, se houver?
Vejo que os antigos DBA tendem a escrever declarações sem AS
, mas a maioria dos novos tutoriais a usa.
Atualização: Eu sei qual é o objetivo dos aliases de tabela e coluna. Estou curioso, qual é o motivo de ter uma palavra-chave separada para definir aliases enquanto ela funciona sem ela também.
CREATE PROC Test @Param1 INT AS SELECT @Param1
Respostas:
Não há diferença entre as duas afirmações acima. AS é apenas uma maneira mais explícita de mencionar o alias
fonte
Todos que responderam antes de mim estão corretos. Você o usa como um nome de atalho de alias para uma tabela quando você tem consultas longas ou consultas que têm associações. Aqui estão alguns exemplos.
Exemplo 1
Exemplo 2
Exemplo 3 É uma boa prática usar a palavra-chave AS e muito recomendada, mas é possível executar a mesma consulta sem uma (e eu sempre faço).
Como você pode ver, deixei de fora a palavra-chave AS no último exemplo. E pode ser usado como um alias.
Exemplo 4
Saída do Exemplo 4
fonte
Quando você não tiver certeza de qual sintaxe escolher, especialmente quando não parece haver muito para separar as opções, consulte um livro sobre heurísticas. Até onde eu sei, o único livro de heurísticas para SQL é 'Estilo de Programação SQL de Joe Celko':
Dessa forma, se sua equipe não gostar da convenção, você pode culpar Celko - eu sei que sim;)
ATUALIZAÇÃO 1: IIRC por um longo tempo, o Oracle não suportava a
AS
palavra-chave (nome da correlação anterior), o que pode explicar por que alguns veteranos não a usam habitualmente.ATUALIZAÇÃO 2: o termo 'nome da correlação', embora usado pelo SQL Standard, é inadequado. O conceito subjacente é o de uma ' variável de intervalo '.
ATUALIZAÇÃO 3: Acabei de reler o que Celko escreveu e ele está errado: a tabela não está sendo renomeada! Eu agora penso:
fonte
A
AS
palavra-chave é atribuir um nome ALIAS à tabela do banco de dados ou à coluna da tabela. No seu exemplo, ambas as instruções estão corretas, mas há circunstâncias em que a cláusula AS é necessária (embora oAS
próprio operador seja opcional), por exemploNesse caso, a
Employee
tabela possui umasalary
coluna e queremos apenas o dobro do salário com um novo nomeDouble Salary
.Desculpe se minha explicação não é eficaz.
Atualização com base no seu comentário, você está certo, minha declaração anterior era inválida. A única razão pela qual consigo pensar é que a
AS
cláusula existe há muito tempo no mundo SQL e foi incorporada hoje em dia no RDMS para compatibilidade com versões anteriores.fonte
AS
não é obrigatório ou necessário, mesmo neste caso. TenteSELECT 1 + 1 "result"
.O uso é mais óbvio se você não usar 'SELECT *' (que é um mau hábito do qual você deve se livrar):
fonte
É uma maneira formal de especificar um nome de correlação para uma entidade, para que você possa resolvê-lo facilmente em outra parte da consulta.
fonte
A
AS
neste caso é uma palavra-chave opcional definido na ANSI SQL 92 para definir um<<correlation name>
, vulgarmente conhecido como aliás para uma mesa.Parece uma prática recomendada NÃO usar a
AS
palavra - chave para aliases de tabela, pois ela não é suportada por vários bancos de dados comumente usados.fonte
as
palavra - chave para aliases de tabela.Nos primeiros dias do SQL, ele foi escolhido como a solução para o problema de como lidar com nomes de colunas duplicados (veja a nota abaixo).
Para pedir emprestada uma consulta de outra resposta:
A coluna
ProductID
(e possivelmente outras) é comum a ambas as tabelas e, como a sintaxe da condição de junção requer referência a ambas, a 'qualificação de pontos' fornece desambiguação.Obviamente, a melhor solução era nunca ter permitido nomes de colunas duplicados! Felizmente, se você usar a
NATURAL JOIN
sintaxe mais recente , a necessidade das variáveis rangeP
eO
desaparecerá:Mas por que a
AS
palavra - chave é opcional? Minha lembrança de uma discussão pessoal com um membro do comitê padrão do SQL (Joe Celko ou Hugh Darwen) foi que a lembrança deles era que, no momento da definição do padrão, o produto de um fornecedor (da Microsoft?) Exigia sua inclusão e o de outro fornecedor. produto (da Oracle?) exigia sua omissão; portanto, o compromisso escolhido foi torná-lo opcional. Não tenho citação para isso, você acredita em mim ou não!Nos primeiros dias do modelo relacional, o produto cruzado (ou junção teta ou junção equi) de relações cujos títulos não são disjuntos parecia produzir uma relação com dois atributos com o mesmo nome; A solução de Codd para esse problema em seu cálculo relacional foi o uso da qualificação de pontos, que mais tarde foi emulada no SQL (percebeu-se mais tarde que a chamada junção natural era primitiva sem perda; isto é, a junção natural pode substituir todas as junções teta e mesmo produto cruzado.)
Fonte: Business System 12, Notes com os slides da apresentação do TTM Implementers 'Workshop, University of Northumbria, 2-3 de junho de 2011 por Hugh Darwen
fonte
AS
palavra-chave é opcional (sem citação, obviamente!). Hugh se aposentou há alguns anos atrás. Acho que Celko ainda pode estar ativo - suas lembranças acrescentariam peso? Evidência e trilha de papel simplesmente não existem :(Se você criar uma consulta usando o editor de consultas no SQL Server 2012, por exemplo, obteria o seguinte:
No entanto, remover o AS não faz diferença, como a seguir:
Nesse caso, o uso do AS é supérfluo, mas em muitos outros lugares é necessário.
fonte