W przypadku dołączenia wielu źródeł danych do zapytania programu Access sprzężenia ograniczają liczbę rekordów, które chcesz wyświetlić, w zależności od tego, jak źródła danych są ze sobą powiązane. Sprzężenia są również wykorzystywane do łączenia rekordów z obu źródeł danych, dzięki czemu każda para rekordów ze źródeł staje się jednym rekordem w wynikach zapytania.

W tym artykule omówiono różne typy sprzężenia i pokazano, jak używać ich w zapytaniu. Domyślnie sprzężenia są tworzone automatycznie, jeśli istnieje już relacja między dwoma źródłami danych, których używasz w zapytaniu. Sprzężenia są również tworzone, jeśli istnieją pola, które wyraźnie ze sobą odpowiadają. Sprzężenia utworzone automatycznie można usunąć. Ten artykuł zawiera podstawowe informacje na temat relacji między tabelami, w tym dotyczące tworzenia relacji.

Uwaga: Zapytania można łączyć w taki sam sposób jak tabele, a także łączyć obie tabele.

W tym artykule

Omówienie

Baza danych to zbiór tabel danych, które są ze sobą logicznie relacjami. Relacje są służące do łączenia tabel za pomocą wspólnych pól. Tabela może być częścią dowolnej liczby relacji, ale każda relacja zawsze ma dokładnie dwie tabele. W zapytaniu relacja jest reprezentowana przez sprzężenia.

Podczas dodawania tabel do zapytania Access sprzężenia oparte na relacjach zdefiniowanych między tabelami. Sprzężenia w zapytaniach można tworzyć ręcznie, nawet jeśli nie reprezentują one już zdefiniowanych relacji. Jeśli jako źródła danych dla zapytania używasz innych zapytań (zamiast tabel lub oprócz tabel), możesz tworzyć sprzężenia między zapytaniami źródłowymi, a także między tymi zapytaniami a tabelami, których używasz jako źródeł danych.

Sprzężenia działają podobnie do kryteriów zapytań, ponieważ ustanawiają reguły, które muszą być zgodne, aby dane były uwzględniane w operacjach zapytania. W przeciwieństwie do kryteriów sprzężenia określają również, że każda para wierszy spełniających warunki sprzężenia będzie łączyć się w z zestawu rekordów, tworząc jeden wiersz.

Istnieją cztery podstawowe typy sprzężenia: sprzężenia wewnętrzne, sprzężenia zewnętrzne, sprzężenia krzyżowe i sprzężenia nierówne. W tym artykule opisano typy sprzężenia, z których można korzystać, ich zastosowania oraz sposób tworzenia sprzężenia.

Sprzężenia są oparte na zapytaniach dotyczących relacji z tabelami, co wskazuje, w jaki sposób dane z dwóch źródeł można łączyć na podstawie wspólnych wartości danych. Oto ilustracja przedstawiająca sprzężenia w widoku projektu zapytania z otwartymi właściwościami sprzężenia w oknie dialogowym:

Okno Właściwości sprzężenia

Ta linia między tabelami reprezentuje sprzężenia. Kliknij dwukrotnie sprzężenia, aby otworzyć okno dialogowe Właściwości sprzężenia (przedstawionym poniżej) i przejrzeć lub zmienić sprzężenia.

Sprzężenia są czasami kierunkowe. W tym obszarze okna dialogowego przedstawiono tabelę, która znajduje się w sprzężeniach, oraz pola używane do sprzężenia tabel.

Ten obszar określa typ sprzężenia: opcja 1 to sprzężenie wewnętrzne, 2 to lewe sprzężenie zewnętrzne, a 3 to prawe sprzężenie zewnętrzne.

Można używać pól z obu tabel i wyświetlać z każdej z nich dane związane z danym zadaniem. W sprzężeniach wewnętrznych nie są uwzględniane żadne inne dane. W przypadku sprzężenia zewnętrznego niepowiązane rekordy z jednej tabeli są również uwzględniane w wynikach zapytania.

Początek strony

Typy sprzężenia

Istnieją cztery podstawowe typy sprzężenia: sprzężenia wewnętrzne, sprzężenia zewnętrzne, sprzężenia krzyżowe i sprzężenia nierówne. Sprzężenia krzyżowe i sprzężenia nierówne są zaawansowanymi typami sprzężenia i są rzadko używane, ale warto wiedzieć o nich, aby w pełni zrozumieć, jak działają sprzężenia.

Sprzężenia wewnętrzne: łączone są tylko powiązane dane z obu tabel

Sprzężenie wewnętrzne to sprzężenie, w którym program Access uwzględnia dane z tabeli tylko wtedy, gdy w powiązanej tabeli znajdują się odpowiednie dane i odwrotnie. W większości przypadków będziesz używać sprzężenia wewnętrznego. Podczas tworzenia sprzężenia bez określania rodzaju sprzężenia program Access zakłada, że ma zostać sprzężenie wewnętrzne. Sprzężenia wewnętrzne są przydatne, ponieważ umożliwiają łączenie danych z dwóch źródeł na podstawie wartości udostępnionych, dzięki czemu dane są dostępne tylko w przypadku pełnego obrazu.

Sprzężenia zewnętrzne: wszystkie powiązane dane połączone poprawnie oraz wszystkie pozostałe rekordy z jednej tabeli

Sprzężenie zewnętrzne przypomina sprzężenie wewnętrzne, ale dodaje pozostałe wiersze z jednej z tabel. Sprzężenia zewnętrzne są kierunkowe: lewe sprzężenie zewnętrzne obejmuje wszystkie rekordy z lewej tabeli — pierwszej tabeli sprzężenia — a prawe sprzężenie zewnętrzne obejmuje wszystkie rekordy z prawej tabeli — drugą tabelę sprzężenia.

Pełne sprzężenia zewnętrzne: wszystkie dane, łącznie, jeśli jest to możliwe

W niektórych systemach sprzężenie zewnętrzne może zawierać wszystkie wiersze z obu tabel, z wierszami połączonymi podczas ich odpowiadania. Jest to pełne sprzężenie zewnętrzne, a program Access ich jawnie nie obsługuje. Jednak ten sam efekt można osiągnąć za pomocą sprzężenia krzyżowego i kryteriów.

Sprzężenia krzyżowe: wszystkie dane połączone w każdy możliwy sposób

W większości przypadków sprzężenia krzyżowe są efektem pobocznym dodawania dwóch tabel do zapytania, a następnie zapomnianego o ich sprzężeniach. W programie Access jest to interpretowane jako oznaczanie, że chcesz widzieć każdy rekord z jednej tabeli w połączeniu z każdym rekordem z drugiej tabeli — z każdą możliwą kombinacją rekordów. Ponieważ nie można łączyć danych, tego rodzaju sprzężenia rzadko daje przydatne wyniki. Jednak w kilku przypadkach sprzężenia krzyżowe są potrzebne.

Sprzężenia nierówne: jak zwykłe sprzężenia, ale przy użyciu innego porównania w celu łączenia wierszy

Sprzężenia nierówne używają operatora innego niż znak równości (=), aby porównać wartości i określić, czy i jak połączyć dane. Sprzężenia nierówne nie są jawnie obsługiwane, ale można użyć sprzężenia krzyżowego i kryteriów, aby osiągnąć ten sam efekt.

Pokazywanie wierszy, w których istnieje wspólna wartość w obu sprzężeniach tabel

Aby pokazać tylko te wiersze, które mają pasujące wartości w polu sprzężenia, należy użyć sprzężenia wewnętrznego. W programie Access sprzężenia wewnętrzne są tworzone automatycznie.

Sprzężenia wewnętrzne to najpopularniejszy typ sprzężenia. Odpowiadają one zapytaniu, że wiersze z jednej ze sprzężenia tabel odpowiadają wierszom w drugiej tabeli na podstawie danych w sprzężeniach pól. Po uruchomieniu zapytania ze sprzężeniem wewnętrznym w operacjach zapytania zostaną uwzględnione tylko te wiersze, w których istnieje wspólna wartość w obu sprzężeniach tabel.

Jak używać sprzężenia wewnętrznego?

W większości przypadków nie musisz nic robić, aby użyć sprzężenia wewnętrznego. Jeśli tabele, które dodajesz do zapytania, mają już relacje, program Access automatycznie tworzy sprzężenie wewnętrzne między każdą parą powiązanych tabel podczas dodawania tabel. Jeśli więzy integralności, program Access wyświetli również znak "1" nad linią sprzężenia, aby sprawdzić, która tabela znajduje się po stronie "jeden" relacja jeden-do-wielu i symbol nieskończoności(∞),aby wyświetlić tabelę po stronie "wiele".

Nawet jeśli nie zostały utworzone relacje, program Access automatycznie utworzy sprzężenia wewnętrzne, jeśli dodasz do zapytania dwie tabele, z których każda ma pole o tym samym lub zgodnym typie danych, a jednym z pól sprzężenia jest klucz podstawowy. W tym przypadku symbole "jeden" i "wiele" nie są wyświetlane, ponieważ więzy integralności nie są wymuszane.

Jeśli dodasz do zapytania zapytania, a nie utworzysz relacji między tymi zapytaniami, program Access nie utworzy automatycznie sprzężenia wewnętrznego między tymi zapytaniami ani między zapytaniami i tabelami. Ogólnie rzecz biorąc, należy utworzyć je samodzielnie. Sprzężenie wewnętrzne tworzy się, przeciągając pole z jednego źródła danych do pola w innym źródle danych. Program Access wyświetli linię między tymi dwoma polami, co oznacza, że sprzężenie zostało utworzone.

Składnia SQL sprzężenia wewnętrznego

Sprzężenia wewnętrzne są określone w języku SQL w klauzuli FROM, jak pokazano poniżej:

FROM tabela1 INNER JOIN tabela2 ON tabela1.pole1 porównaj tabelę2.pole2

Operacja INNER JOIN zawiera następujące segmenty:

Segment

Opis

tabela1, tabela2

Nazwy tabel, z których pochodzą łączone rekordy.

pole1, pole2

Nazwy sprzęganych pól. Jeśli nie są to pola numeryczne, muszą mieć ten sam typ danych i zawierać ten sam rodzaj danych, ale mogą mieć inne nazwy.

porównywanie

Dowolny relacyjny operator porównania: „=”, „<”, „>”, „<=”, „>=”, lub „<>”.

Aby uzyskać więcej informacji na temat składni sprzężenia wewnętrznego, zobacz temat Operacja INNER JOIN.

Początek strony

Wyświetlanie wszystkich wierszy z jednej tabeli i odpowiadających im wierszy z drugiej tabeli

Sprzężenia zewnętrzne informują zapytanie, że chociaż niektóre wiersze po obu stronach sprzężenia dokładnie odpowiadają, zapytanie powinno zawierać wszystkie wiersze z jednej tabeli, a także wiersze z drugiej tabeli, które mają wspólną wartość po obu stronach sprzężenia.

Sprzężenia zewnętrzne mogą być lewym sprzężeniem zewnętrznym lub prawym sprzężeniem zewnętrznym. W lewym sprzężeniem zewnętrznym zapytanie obejmuje wszystkie wiersze z pierwszej tabeli w klauzuli FROM instrukcji SQL i tylko te wiersze z drugiej tabeli, w których pole łączące zawiera wartości wspólne dla obu tabel. W prawym sprzężeniem zewnętrznym zapytanie uwzględnia wszystkie wiersze z drugiej tabeli w klauzuli FROM instrukcji SQL i tylko te wiersze z drugiej tabeli, w których pole łączące zawiera wartości wspólne dla obu tabel.

Uwaga: Klikając dwukrotnie sprzężenia i patrząc w oknie dialogowym Właściwości sprzężenia, można łatwo określić, która tabela jest lewą lub prawą tabelą w danym sprzężeniach. Możesz również przełączyć się do widoku SQL, a następnie sprawdzić klauzulę FROM.

Ponieważ niektóre wiersze po jednej stronie sprzężenia zewnętrznego nie będą mieć odpowiadających im wierszy z drugiej tabeli, niektóre pola zwrócone w wynikach zapytania z tej drugiej tabeli będą puste, gdy wiersze nie będą odpowiadać.

Jak używać sprzężenia zewnętrznego?

Sprzężenie zewnętrzne tworzy się, modyfikując istniejące sprzężenie wewnętrzne. Jeśli nie istnieje sprzężenie wewnętrzne, należy je utworzyć, a następnie zmienić na sprzężenie zewnętrzne.

Zmienianie sprzężenia wewnętrznego na sprzężenie zewnętrzne

  1. W widoku projektu zapytania kliknij dwukrotnie sprzężenia, które chcesz zmienić.

    Zostanie wyświetlone okno dialogowe Właściwości sprzężenia.

  2. W oknie dialogowym Właściwości sprzężenia zwróć uwagę na opcje wymienione obok opcji 2 i opcji 3.

  3. Kliknij opcję, której chcesz użyć, a następnie kliknij przycisk OK.

  4. Program Access wyświetli sprzężenia i wyświetli strzałkę wskazującą punkt ze źródła danych, w którym wszystkie wiersze zostaną dołączone do źródła danych, gdzie zostaną uwzględnione tylko wiersze spełniające warunek sprzężenia.

Niejednoznaczne sprzężenia zewnętrzne

Jeśli utworzysz zapytanie zawierające sprzężenie LEFT i INNER JOIN, program Access może nie być w stanie określić, która operacja sprzężenia ma zostać najpierw wykonać. Ponieważ wyniki różnią się w zależności od tego, czy najpierw zostanie wykonane lewe sprzężenie, czy sprzężenie wewnętrzne, w programie Access zostanie wyświetlony komunikat o błędzie:

Aby naprawić ten błąd, należy zmodyfikować zapytanie, aby było jasne, które sprzężenia mają zostać najpierw wykonać.

Składnia SQL sprzężenia zewnętrznego

Sprzężenia zewnętrzne są określone w języku SQL w klauzuli FROM, jak pokazano poniżej:

FROM table1 [ LEFT | RIGHT ] TABELA.SPRZĘŻENIA2
ON tabela1.pole1 porównaj tabelę2.pole2

Operacje LEFT JOIN i RIGHT JOIN zawierają następujące segmenty:

Segment

Opis

tabela1, tabela2

Nazwy tabel, z których pochodzą łączone rekordy.

pole1, pole2

Nazwy sprzęganych pól. Pola muszą mieć ten sam typ danych i zawierać ten sam rodzaj danych, ale mogą mieć inne nazwy.

porównywanie

Dowolny relacyjny operator porównania: „=”, „<”, „>”, „<=”, „>=”, lub „<>”.

Aby uzyskać więcej informacji na temat składni sprzężenia zewnętrznego, zobacz temat OPERACJI LEFT JOIN i RIGHT JOIN.

Początek strony

Pokaż wszystkie wiersze z obu tabel i połącz je, jeśli istnieje wspólna wartość

Aby wyświetlić wszystkie wiersze z dwóch tabel i połączyć je na podstawie wspólnych wartości, należy użyć pełnego sprzężenia zewnętrznego. Program Access nie obsługuje pełnego sprzężenia zewnętrznego, ale można osiągnąć ten sam efekt za pomocą zapytania sprzężenia. W poniższej procedurze wyjaśniono, jak to zrobić, ale jeśli potrzebujesz więcej informacji na temat zapytań złożonych, zobacz sekcję Zobacz też.

Aby użyć zapytania union w celu wykonania pełnego sprzężenia zewnętrznego:

  1. Utwórz zapytanie z lewym sprzężeniem zewnętrznym w polu, którego chcesz użyć do pełnego sprzężenia zewnętrznego.

  2. Na karcie Narzędzia główne w grupie Widoki kliknij pozycję Widok i kliknij pozycję Widok SQL.

  3. Naciśnij klawisze CTRL+C, aby skopiować kod SQL.

  4. Usuń średnik na końcu klauzuli FROM, a następnie naciśnij klawisz ENTER.

  5. Wpisz ciąg UNION i naciśnij klawisz ENTER.

    Uwaga: Nie używaj słowa kluczowego ALL w przypadku użycia zapytania union w celu wykonania pełnego sprzężenia zewnętrznego.

  6. Naciśnij klawisze CTRL+V, aby wkleić kod SQL skopiowany w kroku 3.

  7. W wklejonym kodzie zmień lewą join na RIGHT JOIN.

  8. Usuń średnik na końcu drugiej klauzuli FROM, a następnie naciśnij klawisz ENTER.

  9. Dodaj klauzulę WHERE określającą, że wartość pola sprzężenia ma wartość NULL w pierwszej tabeli wymienionej w klauzuli FROM (lewa tabela).

    Jeśli na przykład klauzula FROM to:

    FROM Products RIGHT JOIN [Order Details] 
    ON Products.ID = [Order Details].[Product ID]

    Należy dodać następującą klauzulę WHERE:

    WHERE Products.ID IS NULL

  10. Wpisz średnik (;) na końcu klauzuli WHERE, aby wskazać koniec zapytania union.

  11. Na karcie Projektowanie w grupie Wyniki kliknij przycisk Uruchom.

Sprzężenia krzyżowe

Sprzężenia krzyżowe różnią się od sprzężenia wewnętrznego i zewnętrznego tym, że nie są jawnie reprezentowane przez Access. W sprzężeniach krzyżowych każdy wiersz z jednej tabeli jest połączony z każdym wierszem z innej tabeli, co oznacza, że jest to produkt krzyżowy lub kartezjański. Każde uruchomienie zapytania, które zawiera tabele, które nie są jawnie sprzężenia, wynikiem jest produkt krzyżowy. Sprzężenia krzyżowe są zwykle niezamierzone, ale w niektórych przypadkach mogą być przydatne.

Dlaczego warto używać sprzężenia krzyżowego?

Aby sprawdzić każdą możliwą kombinację wierszy między dwiema tabelami lub zapytaniami, należy użyć sprzężenia krzyżowego. Załóżmy na przykład, że w Twojej firmie był wspaniały rok i rozważasz udzielenie rabatów klientom. Możesz utworzyć zapytanie podsumowujące zakupy poszczególnych klientów, utworzyć małą tabelę z kilkoma możliwymi procentami rabatów i połączyć te dwa zapytania w innym zapytaniu, które wykonuje sprzężenia krzyżowe. Kończy się zapytanie, które wyświetla zestaw hipotez dla każdego klienta.

Jak używać sprzężenia krzyżowego?

Sprzężenia krzyżowe są wykonywane za każdym razem, gdy uwzględnisz tabele lub zapytania w zapytaniu i nie utworzysz co najmniej jednego jawnego sprzężenia dla każdej tabeli lub zapytania. Program Access połączy każdy wiersz z każdej tabeli lub zapytania, który nie jest jawnie sprzężony z żadnym innym tabelą lub zapytaniem, z co drugim wierszem w wynikach. Rozważ scenariusz rabatów z poprzedniego akapitu. Załóżmy, że masz 91 klientów i chcesz sprawdzić pięć możliwych procentów rabatów. Sprzężenia krzyżowe będą tworzyły 455 wierszy (i tak 91 i 5).

Jak możesz sobie wyobrazić, niezamierzone sprzężenia krzyżowe mogą tworzyć ogromną liczbę wierszy w wynikach zapytania. Ponadto te wyniki są ogólnie bezsensowne, ponieważ jeśli w rzeczywistości nie zamierzasz łączyć wszystkich wierszy z co drugim wierszem, większość połączonych wierszy wyświetlanych w wynikach nie będzie sensowna. Ponadto uruchamianie zapytań, które używają niezamierzonych sprzężenia krzyżowego, może zająć dużo czasu.

Niezamierzone sprzężenie krzyżowe w widoku Projekt kwerendy

1. Pola zakreślone powinny być ze sobą połączone.

Niezamierzony iloczyn wektorowy

1. Zwróć uwagę na bardzo dużą liczbę rekordów.

Poprawiony wynik kwerendy

1. Zwróć uwagę, że liczba rekordów jest znacznie mniejsza.

Początek strony

Sprzężenia tabel na podstawie niechcący wartości pól

Sprzężenia nie muszą być oparte na równoważności sprzężenia pól. Sprzężenia mogą być oparte na dowolnym operatorze porównania, takim jak "większe niż" (>), mniejsze niż (<) lub nie równa się (<>). Sprzężenia, które nie są oparte na równoważności, są nazywane sprzężeniami nierównmi.

Aby połączyć wiersze dwóch źródeł danych na podstawie wartości pól, które nie są równe, należy użyć sprzężenia nierównego. Zazwyczaj sprzężenia nierówne są oparte na operatorach porównania większe niż (>), mniejsze niż (<), większe lub równe (>=) lub mniejsze niż lub równe (<=). Sprzężenia nierówne oparte na operatorze nie równa się (<>) mogą zwracać niemal tyle wierszy, ile wierszy sprzężeń krzyżowych, a interpretacja wyników może być trudna do zinterpretowania.

Jak używać sprzężenia nierównego?

Sprzężenia nierówne nie są obsługiwane w widoku projektu. Jeśli chcesz ich używać, musisz to zrobić przy użyciu widoku SQL. Można jednak utworzyć sprzężenia w widoku projektu, przełączyć się do widoku SQL, znaleźć operator porównania "równa się"(=)i zmienić go na operator, którego chcesz użyć. Po tym celu można ponownie otworzyć zapytanie tylko w widoku projektu, jeśli najpierw zmienisz operator porównania z powrotem na równa się (=) w widoku SQL.

Usuwanie sprzężenia

Jeśli program Access automatycznie utworzy sprzężenia, które Nie chcesz, lub jeśli sprzężenia zostaną tworzone przez pomyłkę — na przykład sprzężenia między dwoma polami, które mają różne typy danych — możesz usunąć sprzężenia.

  1. W siatce projektu zapytania kliknij sprzężenia, które chcesz usunąć.

  2. Naciśnij klawisz DELETE.

— lub —

  • W siatce projektu zapytania kliknij prawym przyciskiem myszy sprzężenia, które chcesz usunąć, a następnie kliknij polecenie Usuń.

Początek strony

Dodawanie rekordów do

usuwanie relacji

Potrzebna dalsza pomoc?

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów firmy Microsoft

Czy te informacje były pomocne?

Jak zadowalająca jest jakość tłumaczenia?
Co wpłynęło na Twoje wrażenia?

Dziękujemy za opinię!

×