środa, 7 czerwca 2017

Lekcja 20. Złączenia wewnętrzne.

Złączenia wewnętrzne zwracają wiersz tylko wtedy, gdy kolumny w złączeniu spełniają warunek złączenia. To oznacza, że jeżeli wiersz w jednej kolumn w warunku złączenia posiada wartość NULL, nie zostanie on zwrócony. Prezentowane dotychczas złączenia (Lekcja 9. Instrukcja SELECT wykorzystująca klika tabel.) były przykładami złączeń wewnętrznych.

Wcześniej do wykonania złączenia wewnętrznego stosowaliśmy poniższe zapytanie zgodne ze standardem SQL/86: 

W standardzie SQL/92 do wykonywania złączeń wewnętrznych służą klauzule INNER JOIN i ON. Poniższe zapytanie ma takie samo znaczenie jak zapytanie przedstawione powyżej, użyto w nim jednak klauzul INNER JOIN i ON:


W zapytaniu słowo INNER jest opcjonalne.

Upraszczanie złączeń za pomocą słowa kluczowego USING
Standard SQL/92 pozwala jeszcze bardziej uprościć warunek złączenia przez zastosowanie słowa kluczowego USING. Występują tutaj jednak pewne ograniczenia:

  •              Zapytanie musi wykorzystywać równozłączenie (=)
  •              Kolumny w równozłączeniu muszą mieć taką samą nazwę

Równozłączenia stanowią większość wykonywanych złączeń, a jeżeli będziemy zawsze nazywali klucze obce tak jak odpowiednie klucze główne, warunki te będą spełnione.
W poniższym zapytaniu wykorzystano słowo kluczowe USING zamiast ON:

 

Gdy kolumny występujące w warunku łączącym są tej samej nazwy możemy również użyć słowa kluczowego NATURAL JOIN. Jest to jednak odradzane, ponieważ może się trafić sytuacja gdy będzie więcej dopasowań kolumn o tej samej nazwie niż jedna. Poniższe zapytanie ma takie samo znaczenie jak zapytanie przedstawione powyżej, użyto w nim jednak klauzul NATURAL JOIN:

 

Wykonywanie złączeń wewnętrznych obejmujących więcej niż dwie tabele
Wcześniej opracowaliśmy następujące zapytanie, pobierające wiesze z tabel employee, departmentjob, country :

Poniższe zapytanie ma takie samo znaczenie, ale wykorzystuje składnię SQL/92. Użyto w nim klauzul INNER JOIN i ON:




Brak komentarzy:

Prześlij komentarz