Cláusula Union
Chamamos a atenção de um cliente que precisa de consultas SQL. Antes de explorarmos os JOINs, vamos aprender sobre a cláusula UNION, que é fundamental para combinar várias tabelas.
UNION no SQL é utilizado para combinar os resultados de duas ou mais consultas SELECT em um único conjunto resultante. Permite unir linhas de várias consultas em um único conjunto de dados.
Aqui estão alguns pontos importantes sobre o uso do UNION:
-
Quantidade e Ordem das Colunas: todas as consultas combinadas com
UNIONdevem ter o mesmo número de colunas na mesma ordem; -
Tipos de Dados: as colunas em cada consulta devem ter tipos de dados compatíveis;
-
Linhas Únicas: por padrão, o
UNIONremove linhas duplicadas. UtilizeUNION ALLse desejar manter os duplicados.
Para uma melhor compreensão de como combinar tabelas corretamente utilizando a cláusula UNION, foi introduzida uma tabela adicional que contém informações sobre contractors.
Não há muitas informações aqui, apenas first_name, last_name e email.
Você pode perceber que esta tabela possui semelhanças com a tabela employees. Utilizando a cláusula UNION, podemos combinar essas duas tabelas para, por exemplo, visualizar uma lista com todos os nomes e sobrenomes de employees e contractors envolvidos na empresa.
Para isso, utilizaremos a cláusula UNION:
12345678(SELECT employee_id as id, first_name, last_name FROM employees) UNION (SELECT contractor_id as id, first_name, last_name FROM contractors) ORDER BY id
Vamos analisar o que está acontecendo:
Temos duas consultas que retornam três colunas cada, com os mesmos tipos de dados. Queremos visualizar o Id, first_name e last_name de todos na empresa. Também renomeamos a coluna Id para que ambas as consultas tenham os mesmos nomes de colunas.
Em seguida, usamos UNION para combinar os resultados dessas consultas, removendo duplicatas (embora não haja nenhuma neste caso).
Por fim, ordenamos os resultados por Id utilizando ORDER BY.
Estamos ordenando por Id, que é uma coluna comum em ambas as tabelas.
Após utilizar o UNION, obtemos uma "única consulta grande" que pode ser manipulada ainda mais com cláusulas como ORDER BY.
Não é possível utilizar diretamente WHERE ou GROUP BY com tabelas combinadas usando UNION. Para aplicar essas cláusulas, é necessário utilizar uma subconsulta na seção FROM. Veja um exemplo de como fazer isso:
123456789SELECT id, first_name, last_name FROM ( SELECT employee_id AS id, first_name, last_name FROM employees UNION SELECT contractor_id AS id, first_name, last_name FROM contractors ) AS combined WHERE first_name = 'Jane'
Utilizar uma subconsulta na seção FROM proporciona mais flexibilidade. Pode parecer complicado no início, mas dominar esse recurso facilita a criação de consultas complexas.
1. Quais colunas são exigidas ao usar a cláusula UNION no SQL?
2. Como a cláusula UNION trata as linhas duplicadas por padrão?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Incrível!
Completion taxa melhorada para 4
Cláusula Union
Deslize para mostrar o menu
Chamamos a atenção de um cliente que precisa de consultas SQL. Antes de explorarmos os JOINs, vamos aprender sobre a cláusula UNION, que é fundamental para combinar várias tabelas.
UNION no SQL é utilizado para combinar os resultados de duas ou mais consultas SELECT em um único conjunto resultante. Permite unir linhas de várias consultas em um único conjunto de dados.
Aqui estão alguns pontos importantes sobre o uso do UNION:
-
Quantidade e Ordem das Colunas: todas as consultas combinadas com
UNIONdevem ter o mesmo número de colunas na mesma ordem; -
Tipos de Dados: as colunas em cada consulta devem ter tipos de dados compatíveis;
-
Linhas Únicas: por padrão, o
UNIONremove linhas duplicadas. UtilizeUNION ALLse desejar manter os duplicados.
Para uma melhor compreensão de como combinar tabelas corretamente utilizando a cláusula UNION, foi introduzida uma tabela adicional que contém informações sobre contractors.
Não há muitas informações aqui, apenas first_name, last_name e email.
Você pode perceber que esta tabela possui semelhanças com a tabela employees. Utilizando a cláusula UNION, podemos combinar essas duas tabelas para, por exemplo, visualizar uma lista com todos os nomes e sobrenomes de employees e contractors envolvidos na empresa.
Para isso, utilizaremos a cláusula UNION:
12345678(SELECT employee_id as id, first_name, last_name FROM employees) UNION (SELECT contractor_id as id, first_name, last_name FROM contractors) ORDER BY id
Vamos analisar o que está acontecendo:
Temos duas consultas que retornam três colunas cada, com os mesmos tipos de dados. Queremos visualizar o Id, first_name e last_name de todos na empresa. Também renomeamos a coluna Id para que ambas as consultas tenham os mesmos nomes de colunas.
Em seguida, usamos UNION para combinar os resultados dessas consultas, removendo duplicatas (embora não haja nenhuma neste caso).
Por fim, ordenamos os resultados por Id utilizando ORDER BY.
Estamos ordenando por Id, que é uma coluna comum em ambas as tabelas.
Após utilizar o UNION, obtemos uma "única consulta grande" que pode ser manipulada ainda mais com cláusulas como ORDER BY.
Não é possível utilizar diretamente WHERE ou GROUP BY com tabelas combinadas usando UNION. Para aplicar essas cláusulas, é necessário utilizar uma subconsulta na seção FROM. Veja um exemplo de como fazer isso:
123456789SELECT id, first_name, last_name FROM ( SELECT employee_id AS id, first_name, last_name FROM employees UNION SELECT contractor_id AS id, first_name, last_name FROM contractors ) AS combined WHERE first_name = 'Jane'
Utilizar uma subconsulta na seção FROM proporciona mais flexibilidade. Pode parecer complicado no início, mas dominar esse recurso facilita a criação de consultas complexas.
1. Quais colunas são exigidas ao usar a cláusula UNION no SQL?
2. Como a cláusula UNION trata as linhas duplicadas por padrão?
Obrigado pelo seu feedback!