21st Jul 2022 7 minutos de leitura Como usar pseudônimos em consultas SQL Andrew Bone sql aprender sql Índice Por que usar um pseudônimo em SQL? Renomeando colunas usando pseudônimos Renomeando tabelas usando alias SQL Utilização de um pseudônimo com um Auto-juste Escreva Melhor Consultas SQL Utilizando Aliases 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. Tags: sql aprender sql