Database
 sql >> Baza danych >  >> RDS >> Database

Różnica między sprzężeniem wewnętrznym a sprzężeniem zewnętrznym w SQL

Sprzężenie wewnętrzne i sprzężenie zewnętrzne to dwa przydatne sposoby łączenia tabel bazy danych i wykonywania zapytań o dane z wielu tabel. W tym artykule przyjrzymy się różnicy między sprzężeniem wewnętrznym a sprzężeniem zewnętrznym w SQL.


Łączenie wewnętrzne

Sprzężenie wewnętrzne zwraca wiersze z dwóch lub więcej tabel, w których co najmniej jedna kolumna ma taką samą wartość we wszystkich tabelach. Jeśli nie ma wspólnych wartości, nie są zwracane żadne wiersze.

Oto składnia sprzężenia wewnętrznego:

select *  from table1 INNER JOIN table2 
on table1.column_name = table2.column_name;

OR

select * from table1 JOIN table2 
on table1.column_name = table2.column_name;


Połączenie zewnętrzne

Sprzężenie zewnętrzne zwraca wiersze z co najmniej dwóch tabel, w których co najmniej jedna kolumna ma wspólną wartość, a także wiersze, w których warunek złączenia nie powiedzie się. Istnieją 3 rodzaje złączeń zewnętrznych:


Połączenie zewnętrzne lewe

W takim przypadku wszystkie wiersze lewej tabeli są zachowywane w wyniku, w przypadku gdy warunki łączenia są zgodne z innymi tabelami, zwracane są wartości ich kolumn, w przeciwnym razie dla tych kolumn zwracane są wartości null. Oto składnia lewego sprzężenia zewnętrznego.

select * from table1 
LEFT OUTER JOIN table2 
on table1.column_name = table2.column_name;


Prawe połączenie zewnętrzne

W takim przypadku wszystkie wiersze prawej tabeli są zachowywane w wyniku, w przypadku gdy warunki łączenia są zgodne z innymi tabelami, zwracane są wartości ich kolumn, w przeciwnym razie dla tych kolumn zwracane są wartości null.

Oto składnia prawego sprzężenia zewnętrznego

select * from table1 
RIGHT OUTER JOIN table2 
on table1.column_name = table2.column_name;


Pełne połączenie zewnętrzne

W takim przypadku zwracane są wszystkie wiersze obu tabel. Jeśli warunek złączenia jest spełniony, kolumny są wypełniane wartościami z obu tabel. Jeśli warunek łączenia nie powiedzie się, wartości jednej z tabel są wypełniane w kolumnach, a pozostałe są wypełniane jako null.


Różnica między złączeniem wewnętrznym a złączem zewnętrznym w SQL

Oto kluczowe różnice między sprzężeniem wewnętrznym a sprzężeniem zewnętrznym.

Łączenie wewnętrzne

  • Zwraca tylko wiersze ze wspólnymi wartościami kolumn.
  • Możesz użyć klauzuli INNER JOIN lub JOIN. Oba mają ten sam efekt
  • Zwraca wartość null, gdy nie ma pasujących wartości kolumn między dwiema (lub więcej) tabelami
  • Inner Join jest szybszy niż Outer Join
  • Przydatne jest wykonywanie wyszukiwań w wielu tabelach
  • W kategoriach matematycznych zwraca przecięcie dwóch zbiorów (tabel)


Połączenie zewnętrzne

  • Zwraca wartości z jednej lub więcej tabel, nawet jeśli nie ma pasujących wartości kolumn
  • Dla wierszy bez pasujących atrybutów zwraca wartość null dla pozostałych kolumn
  • Pełne łączenie zewnętrzne i pełne łączenie mają ten sam efekt.
  • Jest wolniejszy niż połączenie wewnętrzne
  • Służy do uzyskania pełnych informacji w dwóch lub więcej tabelach
  • Pełne sprzężenie zewnętrzne nie jest obsługiwane w MySQL. Jest dostępny w PostgreSQL, SQL Server, Oracle i innych popularnych bazach danych.


Potrzebujesz narzędzia do raportowania dla MySQL? Ubiq ułatwia wizualizację danych w ciągu kilku minut i monitorowanie w pulpitach nawigacyjnych w czasie rzeczywistym. Wypróbuj już dziś!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyszukiwanie wzorców schematu

  2. Zmienna środowiskowa LD_DEBUG

  3. Przynieś własną chmurę (BYOC) a hosting dedykowany w ScaleGrid

  4. Podejście do strojenia indeksów – część 1

  5. Jak zamienić część ciągu w SQL?