Najlepszy samouczek Łączy SQLite W 2024 r. W tym samouczku możesz dowiedzieć się Cross-connect - CROSS JOIN,En - INNER JOIN,Połączenie zewnętrzne - OUTER JOIN,
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) 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 pl. FROM Tabela1 CROSS JOIN tabela2 pl.
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
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 pl. FROM Tabela1 [INNER] JOIN tabela2 NA conditional_expression pl.
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 pl. FROM Tabela1 DOŁĄCZ Table2 użyciu (kolumna1 pl.) pl.
Połączenie naturalnego (NATURAL JOIN) jest podobny dopl. 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 pl. FROM Tabela1 NATURAL JOIN tabela2 pl.
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) 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 pl. FROM table1 LEFT OUTER JOIN tabela2 NA conditional_expression pl.
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 pl. FROM table1 LEFT OUTER JOIN Table2 użyciu (kolumna1, pl.) pl.
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