Rodzaje połączeń w SQL Server - 5 najlepszych połączeń w SQL Server z przykładami

Spisie treści:

Anonim

Omówienie rodzajów połączeń w programie SQL Server

Klauzula Join, słowo kluczowe JOIN jest połączone wiele tabel w jeden zestaw wyników. Klauzula FROM będzie musiała obejmować wszystkie tabele. Oddziela każdą tabelę zwykle zawartą w przecinku klauzulą ​​WHERE.

Możemy wstawić wyrażenie logiczne, które zwraca true lub false, a wyrażenia te mogą odnosić się do kolumn we wszystkich tabelach.

Rodzaje połączeń w SQL Server

Istnieją różne rodzaje połączeń

  • KRZYŻ DOŁĄCZ
  • DOŁĄCZ DO WEWNĘTRZNEGO
  • DOŁĄCZ DO ZEWNĘTRZNEJ
  1. DOŁĄCZ DO LEWEGO ZEWNĘTRZNEGO
  2. DOŁĄCZ DO PRAWEJ ZEWNĘTRZNEJ
  • DOŁĄCZ DO ZEWNĘTRZNEGO
  • SAM DOŁĄCZ

Pozwól nam zrozumieć szczegółowo każde z tych połączeń:

1) Cross Join

  • To najprostszy DOŁĄCZ
  • Zwraca wszystkie wiersze z obu tabel
  • Brak klauzuli WHERE
  • Jest to również najmniej przydatne
  • To bardzo nieefektywne
  • Tworzy produkt kartezjański
  • Sugerowane słowo kluczowe CROSS

Przykład

Tak więc wszyscy z pierwszej tabeli z każdym kawałkiem danych z drugiej tabeli bez próby dopasowania, więc nie należy tego robić.

Poszukaj klauzuli FROM, w której masz wiele tabel i nie ma klauzuli WHERE.

2) Łączenie wewnętrzne

Dane wyjściowe zapytania:

Twoje początkowe i ostatnie wiersze mają wartości koordynujące związane z C2. Rzędy środkowe zwykle się nie spotykają. Ostatni wynik końcowy zawiera wszystkie wartości zarówno początkowe, jak i ostatnie wiersze, ale nie zawierają tego niepasującego wiersza środkowej sekcji.

  • Jest to najbardziej typowy DOŁĄCZ
  • Podkreśliło to relacyjny charakter bazy danych
  • Pozwala nam dopasować wartość kolumny w jednej z tabel do wartości kolumny w innej z tabel.
  • Klucz podstawowy w jednej z tabel i klucz obcy w jednej z pozostałych tabel.

Przykład

Tutaj p.person_id jest naszym głównym kluczem w naszej tabeli osób,

email_address_person_id to nasz klucz obcy w tabeli adresów e-mail.

Rzućmy okiem na stół osoby

Mamy te cztery rzędy. A potem wszystkie dopasowania w tabeli adresów e-mail.

Tak więc ostatecznie powinniśmy wziąć trzy osoby, ponieważ mamy osobę Shannon, która nie ma adresu e-mail

Dane wyjściowe zapytania:

Otrzymujemy więc dane tylko wtedy, gdy istnieje zgodność między dwiema kolumnami w każdej z tabel

3) Łączenie zewnętrzne

  • WEJŚCIE WEWNĘTRZNE nie obsługuje wartości NULL
  • POŁĄCZENIE ZEWNĘTRZNE działa nawet wtedy, gdy nie ma dopasowania w drugiej tabeli.
  • NULL kolumny, jeśli nie pasują do drugiej tabeli
  • FULL OUTER JOIN zwraca wszystkie połączone wiersze
  • NULL, gdy nie ma dopasowania w żadnej tabeli

a) Lewy zewnętrzny łącznik

Dane wyjściowe zapytania: Jesteś zarówno początkowy, jak i ostatnie rzędy mają wartości koordynujące związane z C2. Rzędy środkowe zwykle się nie spotykają. Ostatni wynik końcowy może zatrzymać wszystkie wiersze pierwszego stołu, ale w rzeczywistości pominie niepasujący wiersz przez drugi stół.

  • Kolejny DOŁĄCZ związany z NULL
  • Wszystkie wiersze z lewej strony zostaną zwrócone
  • NULL dla niepasującego prawego stolika

Przykład

Dane wyjściowe zapytania:

Zauważ, że w tabeli Osoba jest jeden wiersz, który nie ma wartości w tabeli adresów e-mail. Daje nam to LEFT OUTER JOIN.

b) Prawe połączenie zewnętrzne

Dane wyjściowe zapytania:

Jesteś zarówno początkowy, jak i ostatnie rzędy mają wartości koordynujące związane z C2. Rzędy środkowe zwykle się nie spotykają. Ostatni wynik końcowy może zatrzymać wszystkie wiersze drugiego stołu, ale w rzeczywistości pominie niepasujący wiersz przez pierwszy stół.

  • Naprzeciwko LEWEGO DOŁĄCZENIA ZEWNĘTRZNEGO
  • Wszystkie wiersze z prawej strony zostaną zwrócone
  • NULL dla niepasującego stolika po lewej stronie

Przykład Dane wyjściowe zapytania:

Otrzymujemy trzy wyniki. Oto nasz wynik RIGHT OUTER JOIN, w którym mamy wiersz z tabeli adresów e-mail, który nie ma odpowiedniego wiersza w tabeli po prawej stronie.

4) Pełny łącznik zewnętrzny

Przykład

Dane wyjściowe zapytania:

Łączymy wynik POŁĄCZENIA ZEWNĘTRZNEGO i DOŁĄCZANIA ZEWNĘTRZNEGO

5) Self Join

  • SELF nie jest słowem kluczowym. To tylko ten pomysł, że możesz sam postawić stół
  • Dziwne, ale czasem przydatne
  • Brak specjalnej składni
  • Ta sama tabela po lewej i prawej stronie DOŁĄCZ
  • Przydatne, gdy tabela zawiera dane hierarchiczne

Przykład

WYBIERZ *

Z zamówień

DOŁĄCZ do subskrypcji

ON zamówień.subscription_id = subscriptions.subscription_id;

Dostajemy tabelę zamówień i tabelę subskrypcji i ŁĄCZYJ tabelę używając WYBIERZ wszystkie kolumny.

Aby uzyskać wynik.

Wniosek:

Połączenia to sposób, w jaki naprawdę realizujemy model relacyjny. W modelu relacyjnym chodzi o rozdzielenie danych, znormalizowanie ich do wielu tabel, ale możliwość ich ponownego połączenia, gdy chcemy zobaczyć te relacje. Różne rodzaje połączeń pozwalają nam to robić w nieco inny sposób.

Polecane artykuły

Jest to przewodnik po typach złączeń na serwerze SQL. Tutaj omawiamy przegląd i typy złączeń w SQL z ich przykładami. Możesz także przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej -

  1. Co to jest SQL Server?
  2. Kariery w SQL Server
  3. Szkolenie PL SQL
  4. Operatory MySQL
  5. Top 6 rodzajów połączeń w MySQL z przykładami