SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Unia SQLite

Podsumowanie :w tym samouczku dowiesz się, jak używać SQLite UNION operator do łączenia zestawów wyników dwóch lub więcej zapytań w jeden zestaw wyników.

Wprowadzenie do SQLite UNION operator

Czasami trzeba połączyć dane z wielu tabel w kompletny zestaw wyników. Może to dotyczyć tabel z podobnymi danymi w tej samej bazie danych lub może trzeba połączyć podobne dane z wielu baz danych.

Aby połączyć wiersze z dwóch lub więcej zapytań w jeden zestaw wyników, użyj SQLite UNION operator. Poniżej przedstawiono podstawową składnię UNION operator:

query_1
UNION [ALL]
query_2
UNION [ALL]
query_3
...;Code language: SQL (Structured Query Language) (sql)

Oba UNION i UNION ALL operatory łączą wiersze z zestawów wyników w jeden zestaw wyników. UNION operator usuwa zduplikowane wiersze, podczas gdy UNION ALL operator nie.

Ponieważ UNION ALL operator nie usuwa zduplikowanych wierszy, działa szybciej niż UNION operatora.

Poniżej znajdują się reguły dotyczące danych związkowych:

  • Liczba kolumn we wszystkich zapytaniach musi być taka sama.
  • Odpowiednie kolumny muszą mieć zgodne typy danych.
  • Nazwy kolumn pierwszego zapytania określają nazwy kolumn połączonego zestawu wyników.
  • GROUP BY i HAVING klauzule są stosowane do każdego indywidualnego zapytania, a nie do końcowego zestawu wyników.
  • ORDER BY klauzula jest stosowana do połączonego zestawu wyników, a nie do indywidualnego zestawu wyników.

Zauważ, że różnica między UNION i JOIN np. INNER JOIN lub LEFT JOIN jest to, że JOIN klauzula łączy kolumny z wielu powiązanych tabel, podczas gdy UNION łączy wiersze z wielu podobnych tabel.

Załóżmy, że mamy dwie tabele t1 i t2 o następujących strukturach:

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)

Poniższa instrukcja łączy zestawy wyników tabeli t1 i t2 za pomocą UNION operator:

SELECT v1
  FROM t1
UNION
SELECT v2
  FROM t2;Code language: SQL (Structured Query Language) (sql)

Oto wynik:

Poniższy rysunek ilustruje UNION obsługa tablic t1 i t2:

Poniższa instrukcja łączy zestawy wyników tabeli t1 i t2 przy użyciu UNION ALL operator:

SELECT v1
  FROM t1
UNION ALL
SELECT v2
  FROM t2;Code language: SQL (Structured Query Language) (sql)

Poniższy rysunek przedstawia dane wyjściowe:

Poniższy rysunek ilustruje UNION ALL działanie zbiorów wyników tabel t1 i t2:

SQLite UNION przykłady

Weźmy kilka przykładów użycia UNION operatora.

1) SQLite UNION przykład

Ta instrukcja używa UNION operator do łączenia nazw pracowników i klientów w jedną listę:

SELECT FirstName, LastName, 'Employee' AS Type
FROM employees
UNION
SELECT FirstName, LastName, 'Customer'
FROM customers;

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

Oto wynik:

2) SQLite UNION z ORDER BY przykład

W tym przykładzie użyto UNION operatora do łączenia nazw pracowników i klientów w jedną listę. Ponadto używa ORDER BY klauzula sortująca listę nazwisk według imienia i nazwiska.

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)

Oto wynik:

W tym samouczku nauczyłeś się korzystać z SQLite UNION operator do łączenia wierszy z zestawów wyników w jeden zestaw wyników. Poznałeś też różnice między UNION i UNION ALL operatorów.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kiedy działa SQLiteOpenHelper onCreate() / onUpgrade()?

  2. Testowanie jednostek bazy danych SQLite systemu Android

  3. Dołącz do SQLite

  4. Prawidłowe formaty ciągów czasu dla funkcji daty/czasu SQLite

  5. Jak zainstalować SQLite na macOS