SQLite
 sql >> база данни >  >> RDS >> SQLite

Съюз на SQLite

Резюме :в този урок ще научите как да използвате SQLite UNION оператор за комбиниране на набори от резултати от две или повече заявки в един резултатен набор.

Въведение в SQLite UNION оператор

Понякога трябва да комбинирате данни от множество таблици в пълен набор от резултати. Може да е за таблици с подобни данни в една и съща база данни или може би трябва да комбинирате подобни данни от множество бази данни.

За да комбинирате редове от две или повече заявки в един набор от резултати, използвате SQLite UNION оператор. Следното илюстрира основния синтаксис на UNION оператор:

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

И двете UNION и UNION ALL операторите комбинират редове от набори от резултати в единичен набор от резултати. UNION Операторът премахва елиминира дублиращи се редове, докато UNION ALL операторът не го прави.

Тъй като UNION ALL операторът не премахва дублиращи се редове, той работи по-бързо от UNION оператор.

Следните са правилата за данните на съюза:

  • Броят на колоните във всички заявки трябва да е еднакъв.
  • Съответните колони трябва да имат съвместими типове данни.
  • Имената на колоните на първата заявка определят имената на колоните на комбинирания набор от резултати.
  • GROUP BY и HAVING клаузите се прилагат към всяка отделна заявка, а не към крайния резултатен набор.
  • ORDER BY Клаузата се прилага към комбинирания набор от резултати, а не в рамките на отделния набор от резултати.

Имайте предвид, че разликата между UNION и JOIN напр. INNER JOIN или LEFT JOIN това е JOIN клаузата комбинира колони от множество свързани таблици, докато UNION комбинира редове от множество подобни таблици.

Да предположим, че имаме две таблици t1 и t2 със следните структури:

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)

Следното изявление комбинира наборите от резултати от таблицата t1 и t2, използвайки UNION оператор:

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

Ето изхода:

Следната снимка илюстрира UNION работа на таблици t1 и t2:

Следното изявление комбинира наборите от резултати от таблицата t1 и t2, използвайки UNION ALL оператор:

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

Следната снимка показва изхода:

Следната снимка илюстрира UNION ALL работа на наборите от резултати на t1 и t2 таблици:

SQLite UNION примери

Нека вземем няколко примера за използване на UNION оператор.

1) SQLite UNION пример

Този израз използва UNION оператор за комбиниране на имена на служители и клиенти в един списък:

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

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

Ето изхода:

2) SQLite UNION с ORDER BY пример

Този пример използва UNION оператор да комбинира имената на служителите и клиентите в единен списък. В допълнение, той използва ORDER BY клауза за сортиране на списъка с имена по име и фамилия.

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)

Ето изхода:

В този урок научихте как да използвате SQLite UNION оператор за комбиниране на редове от набори от резултати в един резултатен набор. Освен това научихте разликите между UNION и UNION ALL оператори.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. execSQL() с UPDATE не се актуализира

  2. Най-добрата практика за внедряване на защитена база данни за устройство с Android

  3. SQLite onUpgrade() разочарование

  4. Избройте всички индекси в база данни на SQLite

  5. Android ListView с помощта на SQLite