SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

União SQLite


Resumo :neste tutorial, você aprenderá como usar SQLite UNION operador para combinar conjuntos de resultados de duas ou mais consultas em um único conjunto de resultados.

Introdução ao SQLite UNION operador


Às vezes, você precisa combinar dados de várias tabelas em um conjunto de resultados completo. Pode ser para tabelas com dados semelhantes no mesmo banco de dados ou talvez você precise combinar dados semelhantes de vários bancos de dados.

Para combinar linhas de duas ou mais consultas em um único conjunto de resultados, você usa SQLite UNION operador. O seguinte ilustra a sintaxe básica do UNION operador:
query_1
UNION [ALL]
query_2
UNION [ALL]
query_3
...;Code language: SQL (Structured Query Language) (sql)

Ambos UNION e UNION ALL operadores combinam linhas de conjuntos de resultados em um único conjunto de resultados. A UNION O operador remove elimina linhas duplicadas, enquanto o UNION ALL operador não.

Porque o UNION ALL operador não remove linhas duplicadas, ele é executado mais rápido que o UNION operador.

A seguir estão as regras para dados de união:
  • O número de colunas em todas as consultas deve ser o mesmo.
  • As colunas correspondentes devem ter tipos de dados compatíveis.
  • Os nomes das colunas da primeira consulta determinam os nomes das colunas do conjunto de resultados combinado.
  • O GROUP BY e HAVING as cláusulas são aplicadas a cada consulta individual, não ao conjunto de resultados final.
  • O ORDER BY A cláusula é aplicada ao conjunto de resultados combinado, não dentro do conjunto de resultados individual.

Observe que a diferença entre UNION e JOIN por exemplo, INNER JOIN ou LEFT JOIN é que o JOIN cláusula combina colunas de várias tabelas relacionadas, enquanto UNION combina linhas de várias tabelas semelhantes.

Suponha que temos duas tabelas t1 e t2 com as seguintes estruturas:
CREATE TABLE t1(
    v1 INT
);
 
INSERT INTO t1(v1)
VALUES(1),(2),(3);
 
CREATE TABLE t2(
    v2 INT
);
INSERT INTO t2(v2)
VALUES(2),(3),(4);Code language: SQL (Structured Query Language) (sql)

A instrução a seguir combina os conjuntos de resultados das tabelas t1 e t2 usando o UNION operador:
SELECT v1
  FROM t1
UNION
SELECT v2
  FROM t2;Code language: SQL (Structured Query Language) (sql)

Aqui está a saída:

A imagem a seguir ilustra o UNION funcionamento das tabelas t1 e t2:

A instrução a seguir combina os conjuntos de resultados das tabelas t1 e t2 usando o UNION ALL operador:
SELECT v1
  FROM t1
UNION ALL
SELECT v2
  FROM t2;Code language: SQL (Structured Query Language) (sql)

A imagem a seguir mostra a saída:

A imagem a seguir ilustra o UNION ALL operação dos conjuntos de resultados das tabelas t1 e t2:

SQLite UNION exemplos


Vejamos alguns exemplos de uso do UNION operador.

1) SQLite UNION exemplo


Esta instrução usa o UNION operador para combinar nomes de funcionários e clientes em uma única lista:
SELECT FirstName, LastName, 'Employee' AS Type
FROM employees
UNION
SELECT FirstName, LastName, 'Customer'
FROM customers;

Code language: SQL (Structured Query Language) (sql)

Aqui está a saída:

2) SQLite UNION com ORDER BY exemplo


Este exemplo usa o UNION operador para combinar os nomes dos funcionários e clientes em uma única lista. Além disso, ele usa o ORDER BY cláusula para classificar a lista de nomes por nome e sobrenome.
SELECT FirstName, LastName, 'Employee' AS Type
FROM employees
UNION
SELECT FirstName, LastName, 'Customer'
FROM customers
ORDER BY FirstName, LastName;Code language: SQL (Structured Query Language) (sql)

Aqui está a saída:

Neste tutorial, você aprendeu como usar SQLite UNION operador para combinar linhas de conjuntos de resultados em um único conjunto de resultados. Você também aprendeu as diferenças entre UNION e UNION ALL operadores.