Aliases do MySQL

Resumo : neste tutorial, você aprenderá como usar aliases MySQL para atribuir nomes temporários a colunas ou tabelas em uma consulta.

O MySQL suporta dois tipos de aliases: aliases de coluna e aliases de tabela.

Aliases de coluna

No MySQL, você usa aliases de coluna para atribuir um nome temporário a uma coluna no conjunto de resultados da consulta.

Por exemplo, os nomes das colunas às vezes são tão técnicos que tornam a saída da consulta muito difícil de entender. Para dar um nome descritivo a uma coluna, você pode usar um alias de coluna.

A instrução a seguir ilustra como usar o alias da coluna:

SELECT 
   [column_1 | expression] AS descriptive_name
FROM table_name;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Para atribuir um alias a uma coluna, você usa a ASpalavra-chave seguida pelo alias. Se o alias contiver espaços, você deverá colocá-lo entre aspas da seguinte forma:

SELECT 
   [column_1 | expression] AS `descriptive name`
FROM 
   table_name;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Como a ASpalavra-chave é opcional, você pode omiti-la na instrução. Observe que você também pode atribuir um alias a uma expressão.

Vejamos a employeestabela no banco de dados de exemplo.

A consulta a seguir seleciona os nomes e sobrenomes dos funcionários. Ele usa a CONCAT_WS()função para concatenar nome e sobrenome em nome completo:

SELECT 
    CONCAT_WS(', ', lastName, firstname)
FROM
    employees;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

Consulta MySQL sem exemplo de alias

O título da coluna pode ser difícil de ler. Para resolver esse problema, você pode atribuir um alias de coluna à coluna de saída, conforme mostrado na consulta a seguir:

SELECT
   CONCAT_WS(', ', lastName, firstname) AS `Full name`
FROM
   employees;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

Exemplo de alias de coluna MySQL

No MySQL, você pode usar o alias da coluna nas cláusulas ORDER BYe para fazer referência à coluna.GROUP BYHAVING

A consulta a seguir usa o alias da coluna na ORDER BYcláusula para classificar alfabeticamente os nomes completos dos funcionários:

SELECT
	CONCAT_WS(', ', lastName, firstname) `Full name`
FROM
	employees
ORDER BY
	`Full name`;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

Alias ​​MySQL com exemplo ORDER BY

A instrução a seguir seleciona pedidos cujo valor total é superior a 60.000. Ela usa aliases de coluna nas cláusulas GROUP BYe HAVING.

SELECT
	orderNumber `Order no.`,
	SUM(priceEach * quantityOrdered) Total
FROM
	orderdetails
GROUP BY
	`Order no.`
HAVING
	total > 60000;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

MySQL Alias ​​​​com exemplo de expressão

Observe que você não pode usar um alias de coluna na WHERE cláusula. A razão é que quando o MySQL avalia a WHEREcláusula, os valores das colunas especificadas na cláusula SELECT ainda não foram avaliados.

Aliases de tabela

Semelhante aos aliases de coluna, você pode atribuir um nome temporário a uma tabela em uma consulta usando um alias de tabela.

Aqui está a sintaxe básica do alias da tabela:

table_name AS table_aliasLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta sintaxe, a ASpalavra-chave é opcional, portanto você pode optar por omiti-la.

Esta consulta mostra como atribuir um alias e à employeestabela:

SELECT * FROM employees e;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Depois de atribuir um alias a uma tabela, você pode fazer referência a uma coluna da tabela usando o alias da tabela como este:

table_alias.column_nameLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Por exemplo:

SELECT 
    e.firstName, 
    e.lastName
FROM
    employees e
ORDER BY e.firstName;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Na prática, você costuma usar aliases de tabela em instruções que contêm cláusulas INNER JOIN, LEFT JOIN, RIGHT JOINou em subconsultas .

Veja as tabelas customerse ordersdo banco de dados de exemplo :

Tabelas de Clientes e Pedidos

Ambas as tabelas customerstêm orderso mesmo nome de coluna: customerNumber.

Se você fizer referência à customerNumbercoluna em uma consulta, receberá uma mensagem de erro:

Error Code: 1052. Column 'customerNumber' in on clause is ambiguousLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Para evitar esse erro, use um alias de tabela para qualificar a customerNumbercoluna:

SELECT
	customerName,
	COUNT(o.orderNumber) total
FROM
	customers c
INNER JOIN orders o ON c.customerNumber = o.customerNumber
GROUP BY
	customerName
ORDER BY
	total DESC;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

Exemplo de alias de tabela MySQL

A consulta acima seleciona o nome do cliente e o número de pedidos das tabelas customerse orders.

Ele é usado ccomo alias de tabela para a customerstabela e ocomo alias de tabela para a orderstabela. As colunas nas tabelas customerse orderssão referenciadas por meio dos aliases da tabela.

Se você não usar o alias na consulta acima, terá que usar o nome da tabela para se referir às suas colunas, o que torna a consulta mais detalhada:

SELECT
	customers.customerName,
	COUNT(orders.orderNumber) total
FROM
	customers
INNER JOIN orders ON customers.customerNumber = orders.customerNumber
GROUP BY
	customerName
ORDER BY
	total DESCLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

Resumo

  • Use aliases do MySQL para atribuir um nome temporário a uma coluna ou tabela.
  • Use um alias de coluna para atribuir um nome temporário a uma coluna em uma consulta.
  • Use um alias de tabela para atribuir um nome temporário a uma tabela em uma consulta.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *