logo

Diferença entre União e União Todos

UNION e UNION ALL são os dois operadores SQL mais essenciais usados ​​no banco de dados para combinar o conjunto de resultados de várias tabelas. Esses operadores nos permitem usar múltiplas consultas SELECT, recuperar os resultados desejados e então combiná-los em uma saída final . Neste artigo, veremos como eles são diferentes um do outro. Antes de fazer uma comparação, discutiremos brevemente sobre esses operadores.

O que é um operador sindical?

O operador Union no MySQL nos permite combinar dois ou mais resultados de múltiplas consultas SELECT em um único conjunto de resultados. Possui um recurso padrão para remova as linhas duplicadas das mesas. Esta sintaxe de operador sempre usa o nome da coluna na primeira instrução SELECT como os nomes das colunas da saída.

MySQL A União deve seguir estas regras básicas:

  • O número e a ordem das colunas devem ser iguais em todas as consultas.
  • A posição das colunas correspondentes de cada consulta selecionada deve ter um tipo de dados compatível.
  • O nome da coluna selecionada nas diferentes consultas SELECT deve estar na mesma ordem.
  • O nome da coluna da primeira consulta SELECT serão os nomes das colunas da saída.

NOTA: Devemos saber que Union e Join são diferentes.

  1. JOIN combina dados de várias tabelas diferentes, enquanto UNION combina dados de várias tabelas semelhantes.
  2. JOIN anexa a saída horizontalmente, enquanto UNION combina o conjunto de resultados verticalmente.

A representação visual abaixo explica isso mais claramente:

União vs União Todos

Para ler mais informações sobre a operadora Union, clique aqui.

O que é União Tudo?

O operador UNION ALL combina dois ou mais resultados de múltiplas consultas SELECT e retorna todos os registros em um único conjunto de resultados. Ele não remove as linhas duplicadas da saída das instruções SELECT.

Podemos entendê-lo com a seguinte representação visual.

União vs União Todos

Sindicato vs. Sindicato Todos Operadores

A tabela de comparação a seguir explica suas principais diferenças de maneira rápida:

UNIÃO UNIÃO TODOS
Ele combina o conjunto de resultados de várias tabelas e retorna registros distintos em um único conjunto de resultados. Ele combina o conjunto de resultados de várias tabelas e retorna todos os registros em um único conjunto de resultados.
A seguir está o básico sintaxe do operador UNION:
SELECIONE lista_colunas DA tabela1
UNIÃO
SELECIONE lista_colunas DA tabela2;
A seguir está o básico sintaxe do operador UNION ALL:
SELECIONE lista_colunas DA tabela1
UNIÃO TODOS
SELECIONE lista_colunas DA tabela2;
Possui um recurso padrão para eliminar as linhas duplicadas da saída. Não possui nenhum recurso para eliminar as linhas duplicadas da saída.
Isso é o desempenho é lento porque leva tempo para localizar e remover registros duplicados. Isso é o desempenho é rápido porque não elimina as linhas duplicadas.
A maioria dos usuários de banco de dados prefere usar este operador. A maioria dos usuários de banco de dados não prefere usar este operador.

Exemplo de União e União Todos

Vamos entender as diferenças entre os operadores Union e Union All através de um exemplo. Suponha que temos uma tabela chamada ' Estudante ' e ' Aluno2 'que contém os seguintes dados:

Mesa: Aluno

União vs União Todos

Tabela: Aluno2

União vs União Todos

A instrução SQL a seguir retorna o nome distinto das cidades de ambas as tabelas usando a consulta UNION:

 SELECT City FROM student UNION SELECT City FROM student2 ORDER BY City; 

Após executar a instrução acima, obteremos a saída abaixo porque o operador Union retorna apenas os valores distintos.

União vs União Todos

A seguir a instrução SQL retorna todos os nomes de cidades, incluindo duplicatas de ambas as tabelas usando a consulta UNION ALL:

 SELECT City FROM student UNION ALL SELECT City FROM student2 ORDER BY City; 

Após executar a instrução acima, obteremos a saída abaixo porque o operador Union All retorna registros inteiros sem eliminar valores distintos.

União vs União Todos