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.
Aqui estão alguns pontos importantes sobre o uso do UNION
:
-
Quantidade e Ordem das Colunas: Todas as consultas combinadas com
UNION
devem 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
UNION
remove linhas duplicadas. UtilizeUNION ALL
se desejar manter os duplicados.
Para uma melhor compreensão de como combinar tabelas corretamente usando 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 funcionários e contratados 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 coluna.
Em seguida, usamos o UNION
para combinar os resultados dessas consultas, removendo duplicatas (embora não haja nenhuma neste caso).
Por fim, ordenamos os resultados pelo Id
utilizando o ORDER BY
.
Note
Estamos ordenando pelo
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 usar diretamente WHERE
ou GROUP BY
com tabelas combinadas utilizando 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 tornará a escrita de consultas complexas muito mais fácil.
1. Quais colunas são necessárias ao utilizar 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
Awesome!
Completion rate improved to 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.
Aqui estão alguns pontos importantes sobre o uso do UNION
:
-
Quantidade e Ordem das Colunas: Todas as consultas combinadas com
UNION
devem 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
UNION
remove linhas duplicadas. UtilizeUNION ALL
se desejar manter os duplicados.
Para uma melhor compreensão de como combinar tabelas corretamente usando 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 funcionários e contratados 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 coluna.
Em seguida, usamos o UNION
para combinar os resultados dessas consultas, removendo duplicatas (embora não haja nenhuma neste caso).
Por fim, ordenamos os resultados pelo Id
utilizando o ORDER BY
.
Note
Estamos ordenando pelo
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 usar diretamente WHERE
ou GROUP BY
com tabelas combinadas utilizando 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 tornará a escrita de consultas complexas muito mais fácil.
1. Quais colunas são necessárias ao utilizar a cláusula UNION
no SQL?
2. Como a cláusula UNION
trata as linhas duplicadas por padrão?
Obrigado pelo seu feedback!