Voltar para a lista de artigos Artigos
7 minutos de leitura

Como usar pseudônimos em consultas SQL

Um alias SQL é útil para simplificar suas consultas e tornar a consulta e seu resultado mais legível. Este artigo explica por que e como você pode usar pseudônimos em suas consultas SQL.

Você pode renomear temporariamente uma tabela ou uma coluna dando-lhe outro nome. Isto é conhecido como um pseudônimo SQL. É uma alteração temporária que não afeta o nome real da tabela no banco de dados. Um nome temporário de tabela também pode ser chamado de nome de correlação.

Os pseudônimos são uma característica do SQL que é suportada pela maioria, se não por todos, os sistemas de gerenciamento de banco de dados relacionais. Se você é muito novo em SQL, considere fazer nosso curso SQL para Iniciantes , que também cobre o tópico de aliases.

Por que usar um pseudônimo em SQL?

Aqui estão várias razões pelas quais você pode considerar o uso de um alias SQL:

  • Nomes complexos de colunas e tabelas podem ser simplificados ou receber um nome mais adequado. Isto torna a consulta SQL mais clara e fácil de entender.
  • Aliases são úteis quando estamos trabalhando com operações JOIN ou funções agregadas como COUNT() e SUM().
  • Um pseudônimo SQL também é útil quando se usa um auto-acoplamento.
  • Quando se trabalha com várias tabelas, é uma boa prática prefixar todos os nomes de colunas com um alias para que se possa ver facilmente qual coluna pertence a qual tabela.

A propósito, os pseudônimos são apenas um termo que os usuários de SQL devem conhecer. Outros termos SQL importantes são detalhados neste artigo, Termos SQL que os Iniciantes Devem Saber.

Agora, vamos dar uma olhada mais detalhada no uso de apelidos, começando com colunas.

Renomeando colunas usando pseudônimos

Um pseudônimo pode ser usado para renomear as colunas em sua consulta SQL. A sintaxe é a seguinte:

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

Vamos aplicar isto a um exemplo prático. Usaremos a seguinte tabela, que contém informações básicas sobre nosso customers:

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

Primeiro, usaremos uma consulta que não tenha pseudônimos para os nomes das colunas. Imagine que quiséssemos ver quais clientes têm menos de 60 anos de idade. Poderíamos escrever a seguinte consulta:

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

A execução desta consulta retornará este conjunto de resultados:

customer_idcustomer_nameage
1Daniel Case23
2Josh Beverly47
3Bruce Roman51

Agora vamos apresentar nossos pseudônimos de coluna. A consulta abaixo contém agora um pseudônimo para duas colunas:

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

Compare isto com o resultado de nosso exemplo anterior. Preste atenção especial aos nomes das colunas e você notará o impacto de nossos pseudônimos. A coluna customer_id agora aparece como id. A coluna customer_name é mostrada como nome. A idade da coluna não sofreu alterações. Este é nosso resultado desejado!

Note que a palavra-chave AS é inteiramente opcional quando se usa pseudônimos. Por exemplo, estas duas consultas SQL executam exatamente a mesma função:

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

Se o alias que você usa contém espaços, você deve colocar aspas ao redor do alias. Por exemplo:

SELECT customer_name AS 'Customer Name'
FROM customers

Isto conclui usando um alias SQL para renomear colunas. A seguir, usando um alias para renomear tabelas!

Renomeando tabelas usando alias SQL

Um pseudônimo pode ser usado para renomear as tabelas que são usadas em sua consulta SQL. A sintaxe dos pseudônimos das tabelas é:

SELECT 
  column_1, 
  column_2, 
  …
FROM table_name AS alias_name;

Vamos aplicar esta sintaxe a um exemplo. Vamos usar a mesma tabela:

clientes

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

A execução desta consulta resulta na devolução dos seguintes dados:

customer_nameage
Daniel Case23
Josh Beverly47
Bruce Roman51

Se você estiver usando um nome de tabela antes de um nome de coluna na cláusula WHERE, você não pode usar o nome original da tabela; você deve usar o pseudônimo da tabela. Além disso, quando você quiser especificar a tabela na lista SELECT, você terá que usar o alias (por exemplo, c.customer_name). Novamente, a palavra-chave AS é inteiramente opcional. A consulta funcionará da mesma forma sem ela.

Utilização de um pseudônimo com um Auto-juste

Uma auto-afiliação permite que você se una a uma mesa. Isto é útil ao consultar dados hierárquicos ou ao comparar linhas dentro da mesma tabela. Essencialmente, você trata a tabela como duas (ou mais) tabelas separadas, atribuindo pseudônimos. Se você não estiver familiarizado com auto-juntas, veja este artigo com sete exemplos de tabelas de auto-juntas em SQL.

Ao se auto-juntar a uma tabela, você pode usar um LEFT JOIN ou um INNER JOIN. Ao usar um auto-juntar, é importante usar um apelido SQL lógico para cada tabela. (Os apelidos também são úteis para subconsultas. Um exemplo disto é mostrado neste artigo que explica completamente as subconsultas).

Vejamos como podemos escrever uma consulta que JOIN uma tabela para si mesma. Para nosso exemplo, vamos usar a tabela employeeO sistema de identificação de nossos funcionários, seus IDs de departamento e os IDs de seus gerentes.

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

Digamos que queremos um conjunto de resultados que mostre apenas um funcionário e seu gerente. Como podemos realizar isto? Isto pode ser feito facilmente através do uso inteligente de pseudônimos em combinação com uma auto-adesão. Primeiro tentaremos usar um LEFT JOIN. Veja o trecho de código abaixo:

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

Ao juntar as tabelas, nos certificamos de que o valor na coluna id da tabela do gerente (employee m) é igual ao valor da coluna manager_id da tabela do funcionário (employee e). Utilizando LEFT JOIN ao invés de JOIN, veremos todos os funcionários, mesmo aqueles que não têm um gerente.

Cuidado com o erro ambíguo da coluna; ele pode ocorrer facilmente se você não tiver cuidado ao escrever uma consulta de auto-adesão. Para evitar este erro, você deve especificar explicitamente a tabela à qual a coluna pertence (employee você nomeou e ou employee você nomeou m). Neste exemplo, a primeira coluna é da tabela e (portanto e.employee_name) e a segunda coluna é da tabela m (assim m.employee_name).

A execução da consulta acima produz o seguinte conjunto de resultados:

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

Aí está nosso resultado desejado! Você pode ver claramente cada funcionário e seu gerente. A maioria dos funcionários se reporta a John Walker. Entretanto, você pode ver que o gerente para Mary Smith é Penelope Cruz. Observe o valor NULL sob a coluna Manager para John Walker. Isto porque John Walker não tem gerente; ele é o chefe. Conseguimos incluí-lo em nossos resultados porque usamos LEFT JOIN.

Vamos ajustar um pouco a consulta e usar um 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

A única grande diferença é a ausência de John Walker na coluna Employee. Isto porque o valor manager_id para ele era NULL, e INNER JOIN retorna apenas colunas correspondentes - NULL valores que não foram incluídos.

Agora você pode realizar auto-inserção, que pode ser aplicada a muitos casos de uso diferentes. Se você sente que precisa ver mais exemplos de auto-inserção para entender completamente o tópico, confira duas vezes este post no blog sobre como se juntar à mesma tabela!

Escreva Melhor Consultas SQL Utilizando Aliases

Neste artigo, nós demonstramos o valor dos apelidos SQL. Eles ajudam a exibir dados mais claros - e têm o benefício adicional de esconder nomes de tabelas ou colunas potencialmente sensíveis. Se você gostou deste artigo e quer continuar aprendendo sobre SQL, considere nosso Fundamentos de SQL learning track. Ele lhe ensinará instruções SQL básicas como WHERE, GROUP BY, ORDER BY, e HAVING. Você também aprenderá a JOIN tabelas e a adicionar, modificar ou remover dados de um banco de dados.