Alias em SQL: Renomear Colunas com AS
Lição 2.5 · Tempo de leitura: ~5 min · Tarefas para praticar ↓
Um alias de coluna em SQL é um nome temporário que você dá a uma coluna no resultado de uma consulta com a palavra-chave AS. Nesta lição, você vai aprender a sintaxe dos alias, como escrever alias com espaços, por que colunas calculadas precisam de alias e onde um alias pode ser usado numa consulta.
Nas lições anteriores, você selecionou as colunas exatamente com o nome que têm na tabela. Os nomes das colunas costumam ser técnicos, como rental_rate ou replacement_cost, e um valor calculado como length / 60 não tem um nome próprio. Os alias permitem controlar os cabeçalhos do resultado.
O Que É um Alias de Coluna?
Um alias de coluna atribui um nome temporário a uma coluna no resultado de uma consulta SELECT. Ele não altera a coluna na tabela: o alias existe apenas na saída desta consulta.
Sintaxe Básica
SELECT column_name AS alias_name
FROM table_name;
A palavra-chave AS é opcional, então SELECT column_name alias_name também funciona. Escrever AS de forma explícita torna a consulta mais fácil de ler, porque o alias não parece uma segunda coluna.
Renomear uma Coluna
SELECT title AS film_title,
rental_rate AS price
FROM film;
Resultado: todos os filmes com duas colunas chamadas film_title e price em vez de title e rental_rate.
Alias com Espaços
Se um alias contém espaços ou caracteres especiais, coloque-o entre aspas duplas:
SELECT first_name AS "Given Name",
last_name AS "Surname"
FROM actor;
Resultado: a lista de atores com os cabeçalhos de coluna "Given Name" e "Surname".
As aspas duplas são o padrão SQL. MySQL e MariaDB também aceitam crases (`Given Name`), e o SQL Server aceita colchetes ([Given Name]). Na prática, nomes curtos sem espaços, como given_name, são mais fáceis de usar no resto da consulta.
Alias para Colunas Calculadas
Quando uma coluna é calculada a partir de uma expressão, o banco de dados gera um cabeçalho a partir do texto da expressão, por exemplo length / 60. Um alias dá-lhe um nome adequado:
SELECT title,
length AS length_minutes,
length / 60 AS length_hours,
rental_rate * rental_duration AS full_rental_cost
FROM film;
Resultado: cada filme com a duração em minutos e em horas, e o custo do aluguel durante todo o período.
Colunas calculadas são o motivo mais comum para usar alias: sem eles, o resultado é difícil de ler, e as aplicações que leem o resultado pelo nome da coluna não encontram o valor.
Onde É Possível Usar um Alias
Um alias é criado na lista do SELECT, por isso só está disponível nas partes da consulta processadas depois do SELECT:
| Cláusula | Pode usar um alias de coluna? |
|---|---|
ORDER BY | Sim, em todos os principais SGBDs |
WHERE | Não: WHERE é processado antes do SELECT |
GROUP BY, HAVING | Depende do SGBD (MySQL e PostgreSQL permitem em GROUP BY) |
SELECT title, rental_rate * rental_duration AS full_rental_cost
FROM film
ORDER BY full_rental_cost DESC;
Resultado: os filmes ordenados do aluguel completo mais caro para o mais barato.
Se uma consulta precisa funcionar em vários SGBDs, repita a expressão em vez do alias em WHERE, GROUP BY e HAVING. Você vai aprender mais sobre a ordem de processamento na Lição 2.7.
Principais conclusões:
- Um alias de coluna é um nome temporário da coluna no resultado da consulta; a tabela não muda.
- Escreva alias com
AS:SELECT title AS film_title. A palavra-chave é opcional, mas melhora a legibilidade. - Coloque alias com espaços entre aspas duplas:
AS "Given Name". - Dê um alias a cada coluna calculada.
- Um alias pode ser usado em
ORDER BY, mas não emWHERE.
Perguntas Frequentes
A palavra-chave AS é obrigatória para um alias em SQL?
Não. SELECT title film_title funciona da mesma forma que SELECT title AS film_title. Recomenda-se usar AS, porque mostra claramente onde termina a coluna e começa o alias.
Por que não posso usar um alias de coluna no WHERE?
O WHERE é processado antes do SELECT, então o alias ainda não existe quando as linhas são filtradas. Repita a expressão no WHERE ou use o alias no ORDER BY, que é processado depois do SELECT.
Um alias renomeia a coluna na tabela?
Não. Um alias afeta apenas o resultado da consulta atual. Para renomear a coluna na própria tabela, use ALTER TABLE ... RENAME COLUMN.