Klauzula SQLite Union

Klauzula SQLite Union
„Czasami może być konieczne połączenie danych z wielu tabel w osobny zestaw wyników. Może to dotyczyć tabel w tej samej bazie danych, która ma porównywalne dane lub może być dla tabel z wielu baz danych, które mają podobne dane. Klauzula SQLite Union jest używana do scalania wierszy z dwóch lub więcej wyszukiwań w zunifikowanym zestawie wyników. Dowiemy się, jak korzystać z klauzuli SQLite Union, aby zintegrować wyniki dwóch lub jeszcze więcej zapytań z tylko jedną tabelą ustawioną w tym artykule.

Klauzula SQLite Union jest używana w połączeniu z poleceniem Select, aby zjednoczyć wyniki zapytania dwóch lub więcej tabel. Jednak wyjście zawiera tylko unikalne rzędy, przy czym wszystkie zduplikowane rzędy są usuwane. Każde polecenie Select powinno mieć te same kolumny, wyrażenia kolumny i typ danych, a także być w tej samej sekwencji. Jednak posiadanie tej samej długości nie jest obowiązkowe."

Składnia klauzuli Unii w SQLite

Podstawowa składnia dla Unii jest następująca.

Wybierz col1, col2… . coln
Z tabel
[Gdzie stan]
UNIA
Wybierz col1, col2… .coln
Z tabel
[Gdzie stan]

Tutaj polecenie wyboru może zabrać kolumny tyle, ile chcemy, ale musimy upewnić się, że kolumna powinna być równa w obu tabelach. Następnie mamy klauzulę po poleceniu Wybierz. Co najwyżej jeden tabelę należy wymienić w wyrażeniu. Warunki są opcjonalne, które są używane do wymagań do wybierania rekordów.

Tabele w bazie danych SQLITE

Stworzyliśmy bazę danych jako „pracownik.db ”w sqlite3 i utworzył następujące dwa tabele dla tej bazy danych. Pierwsza tabela nazywa się „EMP”, w której wstawiliśmy wartości za pomocą zapytania SQLite Wstaw. Następnie użyliśmy zapytania Wybierz, aby wyświetlić informacje o tabeli. Dane tabeli „EMP” są pokazane na rysunku w następujący sposób.

sqlite> wybierz * z emp;
1 | Ali | 34 | 50000.0
2 | Mishkat | 28 | 40000.0
3 | Sara | 23 | 35000.0
4 | Bella | 30 | 45000.0
5 | Mansoor | 25 | 20000.0
6 | Shahwaiz | 22 | 30000.0
7 | Batool | 35 | 60000.0

Stworzyliśmy inną tabelę tej samej bazy danych: „Pracownik.db ”. Tabela jest tworzona jako „Dept” i wkłada jednostki tabeli za pomocą zapytania Wstaw. Następnie wykorzystaliśmy zapytanie do pobrania informacji o tabeli, jak pokazano na poniższym rysunku.

sqlite> wybierz * z Dept;
1 | It | 3
2 | Konta | 6
3 | Konta | 7
4 | Technik | 5
5 | It | 4
6 | Konta | 2
7 | Technik | 1
sqlite>

Przykład 1: Program korzystania z klauzuli SQLite Union

Związek jest jednak techniką pionowego łączenia danych. Związki łączą zestawy danych z tym samym wzorem, tworząc tabelę zawierającą wpisy z obu tabel. W danym przykładzie nie ma klauzuli, w danym przykładzie, Związek Unii dla Unii [odrębny], a zestaw wyników zawiera tylko unikalne wpisy. Odrębna klauzula związkowa łączy dane z odpowiednich tabel, które nie zostały odpowiednio znormalizowane.

W danym przykładzie użyliśmy polecenia Wybierz, wybraliśmy nazwę encji i nazwa Dept_name z tabeli EMP i użyliśmy wewnętrznego połączenia z tabelą Dept na atrybucie emp_id, co jest powszechne w obu tabelach. Następnie mamy klauzulę związkową między dwoma wybranymi poleceniami. Drugie polecenie Select pobiera jednostki z tabel z klauzulą ​​łączenia zewnętrznego lewego.

Wybierz nazwę, nazwa Dept_name z EMP Inner Dold Dept
…> Na EMP.Id = Dept.Emp_id
…>
…> Związek
…>
…> Wybierz Emp_ID, nazwa Dept_name z EMP lewej zewnętrzny Dept Dept
…> Na EMP.Id = Dept.Emp_id;

W powyższym zapytaniu klauzuli Unii odzyskaliśmy następujący wynik.

Przykład 2: Program korzystania z SQLite Union All klauzula

Klauzula SQLITE Union All łączy się z kombinacją różnych operacji wybranych. Pobiera wszystkie rzędy z zapytania, z redundantnymi wierszami między wieloma wybranymi zapytaniami nie są usuwane.

Wybraliśmy Entities EMP_ID, Nazwa i Dept_name z tabeli EMP, że wewnętrzny łączy się przez Dept Table w podobnych kolumnach w obu tabelach, emp_id. Następnie mamy klauzulę Unii przed drugim zapytaniem. Z drugim zapytaniem Select pobraliśmy jednostki EMP_ID, Nazwa i nazwa Dept_name z lewym zewnętrznym połączeniem z tabelą Dept na podobnych atrybutach określonych tabel. Klauzula związkowa jest używana między dwoma zapytaniami, które łączą wszystkie rzędy z wielu tabel, które są porównywalne. W tym samym czasie klauzula łączenia wewnętrznego połączenia lub złącza łączy kolumny z różnych powiązanych tabel.

Wybierz EMP_ID, Nazwa, nazwa Dept_name z EMP Inner Dold Dept
…> Na EMP.Id = Dept.Emp_id
…>
…> Union All
…>
…> Wybierz emp_id, nazwa, nazwa Dept_name z lewej zewnętrznej Departamentu Zewnętrznego
…> Na EMP.Id = Dept.Emp_id;

Klauzula związkowa daje następujący wynik, jak pokazano na rysunku.

Przykład 3: Program korzystania z SQLite Union Order według klauzuli

Klauzula SQLite Union z klauzulą ​​kolejową służy do sortowania odpowiednich wyników. Operator Unii jest używany w tym przykładzie do scalania tabel EMP i Dept w jednej listy. Zamówienie według klauzuli służy również do zamówienia tabeli według atrybutu wynagrodzenia tabeli.

Najpierw mamy zapytanie, w którym wybraliśmy nazwę i pensję atrybutów z tabeli EMP, a następnie użyliśmy klauzuli Unii przed wywołaniem drugiego zapytania wyboru. Drugie zapytanie wybrane przez Atrybuty Dept_name i EMP_ID z Dept Table Dept. Następnie mamy zamówienie według klauzuli, które zamawia pól tabeli przez emp_id i pensję.

Wybierz nazwę, wynagrodzenie
Z EMP
UNIA
Wybierz nazwę Dept_name, emp_id
Od Dept
Zamów przez emp_id, pensja;

Pola są sortowane według identyfikatora EMP i pensji, jak pokazano poniżej.

Wniosek

Ostatecznie nauczyłeś się korzystać z operatora SQLite Union, aby dołączyć do wpisów z różnych tabel zestawów w jeden zestaw tabel. Nauczyłeś się także, jak rozróżniać związek związany od wszystkich klauzul z przykładem. Istnienie Unii kontra Union wszystko jest znaczącym rozróżnieniem. Związek jest bardziej wydajnym działaniem tych dwóch. Jeśli oba wybrane zapytania zwracają identyczne dane, związek zwróci tylko jeden wiersz, aby uniknąć zwolnień. Z drugiej strony, Union powraca zwolnienia, co powoduje szybkie zapytanie i może być przydatne dla tych, którzy chcą wiedzieć, co może być w obu zapytaniach.