Latest web development tutorials

Łączy SQLite

SQLite jestdołącza klauzulę łączenia dwóch lub więcej tabel w rekordach bazy danych.DOŁĄCZ jest wspólną wartością poprzez połączenie dwóch pól w środek tabeli.

SQL definiuje trzy główne rodzaje połączeń:

  • Cross-connect - CROSS JOIN

  • En - INNER JOIN

  • Połączenie zewnętrzne - OUTER JOIN

Zanim przejdziemy dalej, załóżmy, że istnieją dwie tabele COMPANY i dział. Widzieliśmy użyte do wypełnienia COMPANY oświadczenie tabeli INSERT. Teraz załóżmy, Spółka wykazuje w tabeli wymienione poniżej:

NAZWA ID AGE ADRES WYNAGRODZENIE
---------- ---------- ---------- ---------- ----------
1 Paweł 32 California 20000,0
2 Allen 25 Texas 15000,0
3 Teddy 23 Norwegia 20000,0
4 Mark 25 Rich-Mond 65000,0
5 Dawid 27 Texas 85000,0
6 Kim 22 South-Hall 45000,0
7 James 24 Houston 10000,0

Innym tabela Departament jest zdefiniowana w następujący sposób:

CREATE TABLE DZIAŁEM (
   ID INT PRIMARY KEY NOT NULL,
   DEPT CHAR (50) NOT NULL,
   EMP_ID INT NOT NULL
);

Poniżej znajduje się instrukcja INSERT wypełniona tabela dziale:

INSERT INTO KATEDRA (ID, DEPT, EMP_ID)
Wartości (1, "Rozliczenia IT", 1);

INSERT INTO KATEDRA (ID, DEPT, EMP_ID)
WARTOŚCI (2, "Inżynieria", 2);

INSERT INTO KATEDRA (ID, DEPT, EMP_ID)
VALUES (3, "Finanse", 7);

Wreszcie, mamy następującą listę rekordów w tabeli dziale:

ID DEPT EMP_ID
---------- ---------- ----------
1 Billing 1
2 Engineerin 2
3 Finance 7

Cross-connect - CROSS JOIN

Cross-connect (CROSS JOIN) każdy wiersz pierwszym stole z każdego rzędu drugiej tabeli, aby dopasować. Jeśli zarówno stołowych wejście kolumny xiy odpowiednio Tabela wynikowa ma x + y kolumn. Ponieważ cross-connect (CROSS JOIN), może spowodować bardzo duży stół, należy zachować ostrożność podczas korzystania z nich jedynie w uzasadnionych przypadkach.

Oto składnia cross-connect (CROSS JOIN) z:

SELECT ... FROM Tabela1 CROSS JOIN tabela2 ...

Na podstawie powyższej tabeli, możemy napisać cross-connect (CROSS JOIN), w następujący sposób:

sqlite> SELECT EMP_ID, NAME, DEPT z firmy CROSS JOIN departamentu;

Powyższe zapytanie przyniesie następujące wyniki:

EMP_ID NAZWA DEPT
---------- ---------- ----------
Billing 1 Paweł IT
2 Paul Engineerin
7 Paul Finance
Billing 1 Allen IT
2 Allen Engineerin
7 Allen Finanse
Billing 1 Teddy IT
2 Teddy Engineerin
7 Teddy Finance
Billing 1 Mark IT
2 Mark Engineerin
7 Mark Finance
Billing 1 David IT
2 David Engineerin
7 Dawid Finance
Billing 1 Kim IT
2 Kim Engineerin
7 Kim Finance
Billing 1 James IT
2 James Engineerin
7 James Finance

En - INNER JOIN

Połączenie wewnętrzne (INNER JOIN), aby utworzyć nową tabelę wynikiem połączenia dwóch tabel (Tabela1 i tabela2) Zarejestrowany wartości kolumny predykatów. Zapytania będą Table1 i Tabela 2 w każdym wierszu, w każdym rzędzie są porównywane, aby znaleźć wszystkie wiersze, które spełniają predykat pasujące pary przyłączyć. Po stwierdzeniu dołączyć wartości kolumn A i B predykatywnych każdy wiersz dopasowywania wyniku zostaną połączone w jednym rzędzie.

Połączenie wewnętrzne (INNER JOIN) jest najczęstszym typem połączenia jest domyślny typ połączenia. INNER Hasło jest opcjonalne.

Oto składnia sprzężenie wewnętrzne (INNER JOIN) stanowi:

SELECT ... FROM Tabela1 [INNER] JOIN tabela2 NA conditional_expression ...

W celu uniknięcia zwolnień i zachować treść skrócie, można użyć instrukcji wużyciu połączenia ekspresji (INNER JOIN) warunków.Wyrażenie to określają listę jednej lub więcej kolumn:

SELECT ... FROM Tabela1 DOŁĄCZ Table2 użyciu (kolumna1 ...) ...

Połączenie naturalnego (NATURAL JOIN) jest podobny do... Korzystanie JOIN, ale będzie równa wartości pomiędzy wartością tych dwóch tabel w każdej kolumnie automatycznego testowania na obecność:

SELECT ... FROM Tabela1 NATURAL JOIN tabela2 ...

Na podstawie powyższej tabeli, możemy napisać sprzężenie wewnętrzne (INNER JOIN), w następujący sposób:

sqlite> SELECT EMP_ID, NAME, DEPT z firmy INNER JOIN DZIAŁU
        NA COMPANY.ID = DEPARTMENT.EMP_ID;

Powyższe zapytanie przyniesie następujące wyniki:

EMP_ID NAZWA DEPT
---------- ---------- ----------
Billing 1 Paweł IT
2 Allen Engineerin
7 James Finance

Połączenie zewnętrzne - OUTER JOIN

Połączenie zewnętrzne (OUTER JOIN) jest sprzężenie wewnętrzne (INNER JOIN) rozszerzenia. Chociaż standardowe SQL definiuje trzy typy sprzężenia zewnętrzne: lewa, prawa, pełny, ale SQLite obsługuje tylkoopuścił sprzężenia zewnętrznego (LEFT OUTER JOIN).

Połączenie zewnętrzne (OUTER JOIN) ogłosił warunki i sposób połączenia wewnętrzne (INNER JOIN) są takie same, a stosowanie ON, przy użyciu naturalnych słowo lub wyrażenie. Wstępne wyniki tabeli obliczane w ten sam sposób. Po zakończeniu obliczeń połączenia podstawowego, połączenia zewnętrzne (OUTER JOIN) z jednego lub dwóch tabelach nie są podłączone do dowolnej linii w scaleniu, sprzężenie zewnętrzne kolumnę o wartości NULL, dołączyć je do tabeli wyników.

Oto składnia lewego sprzężenia zewnętrznego (LEFT OUTER JOIN) z:

SELECT ... FROM table1 LEFT OUTER JOIN tabela2 NA conditional_expression ...

W celu uniknięcia zwolnień i zachować treść skrócie, można użyćza pomocą wyrażeń rachunku sprzężenia zewnętrzne (outer join) warunkach.Wyrażenie to określają listę jednej lub więcej kolumn:

SELECT ... FROM table1 LEFT OUTER JOIN Table2 użyciu (kolumna1, ...) ...

Na podstawie powyższej tabeli, możemy napisać połączenia zewnętrzne (OUTER JOIN), w następujący sposób:

sqlite> SELECT EMP_ID, NAME, DEPT z firmy LEFT OUTER JOIN DZIAŁU
        NA COMPANY.ID = DEPARTMENT.EMP_ID;

Powyższe zapytanie przyniesie następujące wyniki:

EMP_ID NAZWA DEPT
---------- ---------- ----------
Billing 1 Paweł IT
2 Allen Engineerin
            Miś
            znak
            David
            Kim
7 James Finance