SPRZĘŻENIE WEWNĘTRZNE

Ukończone

Łącz tabele

W relacyjnych bazach danych dane są często zorganizowane w wiele tabel, aby zminimalizować nadmiarowość i zwiększyć integralność danych. Takie podejście projektowe, znane jako normalizacja, pozwala uniknąć powtarzania tych samych informacji w różnych miejscach. Oznacza to jednak, że przydatne informacje są często rozłożone na wiele tabel.

Sprzężenia to podstawowe operacje SQL, które łączą te luki, umożliwiając łączenie wierszy z co najmniej dwóch tabel i pobieranie powiązanych danych w jednym, ujednoliconym zestawie wyników. W istocie sprzężenia umożliwiają wykonywanie zapytań o informacje, które są logicznie połączone, ale fizycznie oddzielone. Zapewniają one tę kombinację, identyfikując i pasując wiersze na podstawie wartości znalezionych w co najmniej jednej typowej kolumnie między tabelami. Te typowe kolumny często służą jako połączenie między kluczem podstawowym w jednej tabeli i kluczem obcym w innej, ustanawiając relacje zdefiniowane w schemacie bazy danych.

Uwaga: Klucz podstawowy jest unikatowym identyfikatorem dla każdego rekordu w tabeli, zapewniając, że żadne dwa wiersze nie mają tej samej wartości w tej kolumnie. Z drugiej strony klucz obcy to kolumna w jednej tabeli, która odwołuje się do klucza podstawowego w innej tabeli, łącząc w ten sposób dwie tabele.

Istnieje wiele "smaków" sprzężeń (INNER, LEFT, RIGHT, FULL OUTER, NATURAL), z których każda została zaprojektowana do łączenia tabel w nieco inny sposób. Zapewniają one kontrolę nad tym, które wiersze są uwzględniane w zestawie wyników na podstawie obecności lub braku pasujących wartości w tabelach sprzężonych.

SPRZĘŻENIE WEWNĘTRZNE

Jest INNER JOIN to jeden z najczęściej używanych typów sprzężeń SQL. Łączy wiersze z wielu tabel na podstawie warunku określającego pasujące wartości w kolumnie udostępnionej.

Podczas wykonywania INNER JOINoperacji tylko wiersze spełniające warunek z obu tabel są uwzględniane w zestawie wyników, co skutecznie odfiltruje wszystkie niezgodne dane. INNER JOIN Jest to idealne rozwiązanie do pobierania powiązanych informacji, w których połączenia między tabelami są jawnie zdefiniowane, takie jak zamówienia klientów lub przydziały pracowników.

SELECT orders.order_id, customers.customer_name, employees.first_name, employees.last_name
FROM sales.orders AS orders
INNER JOIN sales.customers AS customers ON orders.customer_id = customers.customer_id
INNER JOIN sales.employees AS employees ON orders.employee_id = employees.employee_id;

Podane zapytanie wykorzystuje wiele INNER JOIN operacji w celu pobrania ujednoliconego zestawu wyników zawierającego szczegółowe informacje o orders elementach, customers i employees.

Dopasowuje customer_id w tabeli orders do odpowiadającego customer_id w tabeli customers oraz employee_id w tabeli orders do employee_id w tabeli employees. W rezultacie zapytanie generuje identyfikator każdego zamówienia wraz z nazwami zaangażowanych klientów i pracowników.