Scal dwie tabele w SQL

Scal Dwie Tabele W Sql



W języku SQL łączenie tabel odnosi się do procesu łączenia danych z dwóch oddzielnych tabel w danej bazie danych w jedną jednostkę w oparciu o wspólną kolumnę lub kryteria. Tak, jeśli to brzmi jak stół, to dokładnie tak jest.

Łączenie lub scalanie tabel to znana funkcja relacyjnych baz danych, która ma niewiarygodne możliwości. Pozwala nam to konsolidować informacje z wielu źródeł w celu uzyskania bardziej spójnych i znaczących wniosków z danych. Dzięki temu relacyjne bazy danych są wysoce skalowalne (nie elastyczne), ponieważ możemy podzielić dane na mniejsze, łatwe w zarządzaniu fragmenty, do których możemy się później odwołać.

W tym samouczku omówimy podstawy łączenia i scalania tabel. Przyjrzyjmy się przykładom tabel ze świata rzeczywistego, aby ugruntować naszą wiedzę.







Przykładowa tabela

Zanim przejdziemy do świata złączeń tabel, skonfigurujmy podstawowe tabele, których będziemy używać w celach demonstracyjnych.



Rozważmy dwie tabele zawierające informacje o pracownikach i wynagrodzeniach, jak pokazano w poniższych przykładowych zapytaniach:



UTWÓRZ TABELI pracowników (

id_pracownika INT AUTO_INCREMENT KLUCZ PODSTAWOWY,

imię VARCHAR( pięćdziesiąt ),

nazwisko VARCHAR( pięćdziesiąt ),

dział VARCHAR( pięćdziesiąt )

);

Możemy następnie wstawić przykładowe dane do tabeli pracownika, jak pokazano w poniższych zapytaniach:





WPISAĆ WARTOŚCI pracowników (imię, nazwisko, dział).

( „Alicja” , 'Kowal' , 'Zasoby ludzkie' ),

( 'Pion' , „Johnson” , „Marketing” ),

( „Charlie” , „Wilson” , 'Finanse' ),

( „Dawid” , 'Brązowy' , 'Obroty' ),

( „Ewa” , „Davis” , 'Inżynieria' );

Kontynuujmy i utwórz nową tabelę do przechowywania informacji o wynagrodzeniach w następujący sposób:

UTWÓRZ TABELI wynagrodzeń (

Salary_id INT AUTO_INCREMENT KLUCZ PODSTAWOWY,

id_pracownika INT,

wynagrodzenie DZIESIĘTNE( 10 , 2 ),

data_początkowa DATA,

data_końcowa DATA,

KLUCZ OBCY (employee_id) REFERENCJE pracownicy (employee_id)

);

Dodaj przykładowe dane do tabeli w następujący sposób:



WSTAWIENIE DO wynagrodzeń (id_pracownika, wynagrodzenie, data_początkowa, data_końcowa) WARTOŚCI
( 1 , 60000,00 , „2023-01-01” , „2023-12-31” ),
( 2 , 55000,00 , „2023-01-01” , „2023-12-31” ),
( 3 , 65000,00 , „2023-01-01” , „2023-12-31” ),
( 4 , 58000,00 , „2023-01-01” , „2023-12-31” ),
( 5 , 70000,00 , „2023-01-01” , „2023-12-31” );

To powinno dostarczyć nam dwie tabele, które pomogą nam zademonstrować koncepcję łączenia/scalania tabel w SQL.

Scalanie tabeli SQL/łączenie tabel

Przyjrzyjmy się różnym typom scalania tabel, które możemy wykonać. W miarę przechodzenia do bardziej zaawansowanych, omówimy te podstawowe.

WEWNĘTRZNE POŁĄCZENIE

Pierwszym i najczęstszym typem złączenia tabeli w SQL jest ZŁĄCZENIE WEWNĘTRZNE. INNER JOIN pozwala nam łączyć wiersze z dwóch tabel w oparciu o określony warunek. Ten typ zwraca następnie tylko te wiersze, w których występuje dopasowanie między tabelami.

Jako przykłady weźmy utworzone wcześniej tabele „pracownicy” i „wynagrodzenia”. Aby wykonać INNER JOIN w SQL, używamy klauzuli INNER JOIN w następujący sposób:

WYBIERAĆ

e.employee_id,

e.imię,

e.nazwisko,

e.dział,

s.wynagrodzenie

Z

pracownicy tj

INNER JOIN wynagrodzenia s NA

e.employee_id = s.employee_id;

W podanym przykładowym zapytaniu używamy INNER JOIN do połączenia tabel „pracownicy” i „wynagrodzenia” w kolumnie „employee_id”, która istnieje w obu tabelach. Wynikowy zestaw zawiera tylko pasujące wiersze z obu tabel.

Przykładowe dane wyjściowe są następujące:

LEWE POŁĄCZENIE ZEWNĘTRZNE

Mamy również LEFT OUTER JOIN, które łączy wszystkie wiersze z lewej tabeli i pasujące wiersze z prawej tabeli. Jeśli w prawej tabeli nie ma dopasowania, przy łączeniu używana jest wartość NULL.

WYBIERAĆ

e.employee_id,

e.imię,

e.nazwisko,

e.dział,

s.wynagrodzenie

Z

pracownicy tj

LEWY DOŁĄCZ wynagrodzenia s

NA

e.employee_id = s.employee_id;

W tym przykładzie wykonujemy LEFT OUTER JOIN, aby połączyć tabele „pracownicy” i „wynagrodzenia”. Uwzględniane są wszystkie wiersze z tabeli „pracownicy” i dodawane są odpowiadające im wiersze z tabeli „wynagrodzenia”. Jednakże wartości NULL są uwzględniane w kolumnie „wynagrodzenie” w przypadku niepasujących wierszy.

UNIA SQL

Inną metodą łączenia tabel w SQL jest użycie operatora UNION. Operator ten pozwala nam połączyć wyniki dwóch lub więcej instrukcji Select w jeden zestaw wyników.

Aby unia miała zastosowanie, kolumny w każdej instrukcji SELECT muszą mieć ten sam typ danych.

Przykład jest następujący:

SELECT identyfikator_pracownika, imię, nazwisko, dział, wynagrodzenie NULL AS

OD pracowników tj

UNIA

SELECT identyfikator_pracownika, NULL AS imię, NULL AS nazwisko, NULL AS dział, wynagrodzenie

Z wynagrodzeń s;

W tym przypadku UNION łączy tabele „pracownicy” i „wynagrodzenia”. Następnie tworzymy kolumny NULL w każdej instrukcji SELECT, aby mieć pewność, że obie tabele mają podobną liczbę kolumn.

UNIONY są technicznie powszechne, ale mogą być przydatne zwłaszcza wtedy, gdy trzeba połączyć tabele o różnych strukturach.

Wniosek

W tym samouczku omówiliśmy podstawy łączenia/scalania dwóch tabel w jeden zestaw wyników. Warto pamiętać, że istnieje wiele bardziej zaawansowanych złączeń, które zostaną omówione w tym poście.