Wprowadzenie do języka SQL dla programu Access

Ważne : Ten artykuł został przetłumaczony maszynowo, zobacz zastrzeżenie. Angielskojęzyczną wersję tego artykułu można znaleźć tutaj .

Umożliwia pobieranie danych z bazy danych, możesz uzyskać dane przy użyciu Structured Query Language lub SQL. SQL jest język komputerowy przypominający angielski obsługiwanym przez programy bazy danych. Wiedząc, że SQL jest ważne, ponieważ każdej kwerendy w programie Microsoft Access korzysta z języka SQL. Opis działania SQL ułatwiają tworzenie lepszych kwerend i może ułatwić umożliwiające rozwiązywanie kwerendy, gdy nie zwraca wyników, które mają.

Uwaga : Nie można edytować SQL kwerendy sieci web.

W tym artykule

Co to jest SQL?

Podstawowe klauzul SQL: SELECT, FROM gdzie

Sortowanie wyników: według kolejności

Praca z danymi podsumowane: Grupuj według i HAVING

Łączenie wyników kwerendy: Unii

Więcej informacji na temat klauzula SELECT

Więcej informacji na temat klauzuli FROM

Więcej informacji na temat klauzuli WHERE

Co to jest język SQL?

SQL jest język komputerowy do pracy z zestawami faktów i relacje między nimi. Programów relacyjnej bazy danych, takich jak w przypadku uzyskiwania dostępu za pomocą SQL do pracy z danymi. Podobnie jak wielu językach komputera SQL jest międzynarodowy standard, który jest rozpoznawany przez organy standardy, takich jak ISO i ANSI.

Języka SQL służy do opisywania zbiorów danych umożliwiających uzyskiwanie odpowiedzi na pytania. Używając języka SQL, trzeba pamiętać o poprawności składni. Składnia to zbiór reguł poprawnego łączenia elementów języka. Składnia języka SQL jest oparta na składni języka angielskiego i zawiera wiele takich samych elementów jak składnia języka Visual Basic for Applications (VBA).

Na przykład prosta instrukcja SQL pobierająca listę nazwisk kontaktów o imieniu Mary może wyglądać następująco:

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

Uwaga : SQL nie jest używany tylko do manipulowania danych, ale również dla tworzenia i modyfikowania projektu obiektów bazy danych, takie jak tabele. Część programu SQL Server, która służy do tworzenia i modyfikowania obiektów bazy danych jest nazywana języka definicji danych (DDL). W tym temacie omówiono DDL. Aby uzyskać więcej informacji, zobacz artykuł Tworzenie lub modyfikowanie tabel bądź indeksów przy użyciu kwerendy definiującej dane.

Instrukcje SELECT

Aby opisać zbiór danych przy użyciu języka SQL, należy napisać instrukcję SELECT. Instrukcja SELECT zawiera pełny opis zbioru danych, który ma zostać pobrany z bazy danych. Obejmuje to następujące zagadnienia:

  • Które tabele zawierają dane.

  • W jaki sposób dane z różnych źródeł są powiązane.

  • Które pola lub obliczenia dostarczą danych.

  • Kryteria, które muszą być zgodne danych należy uwzględniane.

  • Czy i jak mają być sortowane wyniki.

Klauzule języka SQL

Podobnie jak zdanie, instrukcja SQL zawiera człony: klauzule. Każda klauzula w instrukcji SQL pełni określoną funkcję. W instrukcji SELECT niektóre klauzule są wymagane. W poniższej tabeli wymieniono najpopularniejsze klauzule języka SQL.

Klauzula SQL

Działanie

Wymagana

SELECT

Zwraca listę pół zawierających wskazane dane.

Tak

FROM

Zwraca listę tabel zawierających pola wymienione w instrukcji SELECT.

Tak

WHERE

Określa kryteria pól, które musi spełnić rekord, aby został uwzględniony w wynikach.

Nie

ORDER BY

Określa sposób sortowania wyników.

Nie

GROUP BY

W instrukcji SQL zawierającej funkcje agregujące zwraca listę pól, które nie są podsumowywane w klauzuli SELECT.

Tylko jeśli istnieją takie pola

HAVING

W instrukcji SQL zawierającej funkcje agregujące określa warunki stosowane do pól podsumowywanych w klauzuli SELECT.

Nie

Terminologia języka SQL

Każda klauzula SQL składa się z terminów — porównywalnych do części mowy. W poniższej tabeli wymieniono typy terminów języka SQL.

Termin SQL

Porównywalna część mowy

Definicja

Przykład

identyfikator

rzeczownik

Nazwa identyfikująca obiekt bazy danych, na przykład nazwa pola.

Klienci.[Numer telefonu]

operator

czasownik lub przysłówek

Słowo kluczowe reprezentujące lub modyfikujące akcję.

AS

stała

rzeczownik

Wartość nie ulegająca zmianie, na przykład liczba albo wartość NULL.

42

wyrażenie

przymiotnik

Kombinacja identyfikatorów, operatorów, stałych i funkcji, która w wyniku daje pojedynczą wartość.

>= Produkty.[Cena jednostkowa]

Początek strony

Podstawowe klauzule języka SQL: SELECT, FROM i WHERE

Instrukcja SQL ma następującą ogólną formę:

SELECT field_1
FROM table_1
WHERE criterion_1
;

Uwagi : 

  • W programie Access podziały wiersza w instrukcji SQL są ignorowane. Jednak warto umieszczać poszczególne klauzule w osobnych wierszach w celu zwiększenia czytelności instrukcji SQL dla użytkownika oraz innych osób.

  • Każda instrukcja SELECT kończy się znakiem średnika (;). Średnik może znajdować się na końcu ostatniej klauzuli lub w osobnym wierszu na końcu instrukcji SQL.

Przykład w programie Access

Poniżej przedstawiono przykład instrukcji SQL dla prostej kwerendy wybierającej w programie Access:

Karta obiektu SQL z wyświetloną instrukcją SELECT

1. Klauzula SELECT

2. Klauzula FROM

3. Klauzula WHERE

Ta przykładowa instrukcja SQL jest interpretowana jako „Wybierz dane przechowywane w polach o nazwach Adres e-mail i Firma z tabeli o nazwie Kontakty, a dokładnie te rekordy, w których wartością pola Miasto jest Szczecin”.

Poniżej przeanalizowano działanie składni języka SQL w przykładzie klauzula po klauzuli.

Klauzula SELECT

SELECT [E-mail Address], Company

To jest klauzula SELECT. Składa się ona z operatora (SELECT), po którym występują dwa identyfikatory ([Adres e-mail] i Firma).

Jeśli identyfikator zawiera spacje lub znaki specjalne (tak jak „Adres e-mail”), musi zostać ujęty w nawiasy kwadratowe.

W klauzuli SELECT nie trzeba podawać, które tabele zawierają pola, nie można też określać żadnych warunków, które muszą spełniać uwzględniane dane.

W instrukcji SELECT klauzula SELECT zawsze pojawia się przed klauzulą FROM.

Klauzula FROM

FROM Contacts

To jest klauzula FROM. Składa się ona z operatora (FROM), po którym występuje identyfikator (Kontakty).

Klauzula FROM nie zawiera listy pól, które mają zostać wybrane.

Klauzula WHERE

WHERE City="Seattle"

To jest klauzula WHERE. Składa się ona z operatora (WHERE), po którym występuje wyrażenie (Miasto="Szczecin").

Uwaga : W odróżnieniu od klauzul SELECT i FROM, klauzula WHERE nie jest wymaganym elementem instrukcji SELECT.

Można wykonać wiele czynności, które SQL umożliwia wykonywanie przy użyciu wybierz, od, a klauzul WHERE. Więcej informacji na temat Użyj tych klauzul przedstawiono w poniższych sekcjach na końcu tego artykułu:

Więcej informacji na temat klauzula SELECT

Więcej informacji na temat klauzuli FROM

Więcej informacji na temat klauzuli WHERE

Sortowanie wyników: klauzula ORDER BY

Podobnie jak w programie Microsoft Office Excel, w programie Access można sortować wyniki kwerendy w arkuszu danych. Można także określić w kwerendzie sposób sortowania wyników podczas jej wykonywania, używając w tym celu klauzuli ORDER BY. Jeśli jest używana klauzula ORDER BY, stanowi ona ostatnią klauzulę w instrukcji SQL.

Klauzula ORDER BY zawiera listę pól, które mają zostać użyte do sortowania, w tej samej kolejności, w jakiej mają zostać zastosowane operacje sortowania.

Na przykład wyniki mają być sortowane w pierwszej kolejności według wartości pola Firma w porządku malejącym, następnie — jeśli istnieją rekordy z tą samą wartością pola Firma — według wartości pola Adres e-mail w porządku rosnącym. Klauzula ORDER BY może przypominać następującą:

ORDER BY Company DESC, [E-mail Address]

Uwaga : Domyślnie w programie Access wartości są sortowane w porządku rosnącym (A–Z, od najmniejszych do największych). Natomiast w celu posortowania wartości w porządku malejącym należy użyć słowa kluczowego DESC.

Aby uzyskać więcej informacji o klauzuli ORDER BY, zobacz temat Klauzula ORDER BY.

Początek strony

Praca z podsumowanymi danymi: klauzule GROUP BY i HAVING

Czasami zachodzi potrzeba pracy z podsumowanymi danymi, na przykład dotyczącymi całkowitej miesięcznej sprzedaży lub najdroższych pozycji w spisie. W tym celu należy zastosować funkcja agregująca wobec pola w klauzuli SELECT. Jeśli na przykład kwerenda ma pokazywać liczbę adresów e-mail wymienionych dla każdej firmy, klauzula SELECT może przypominać następującą:

SELECT COUNT([E-mail Address]), Company

Typy funkcji agregujących, jakie można stosować, zależą od typu danych w polu lub wyrażeniu, które ma zostać użyte. Aby uzyskać więcej informacji o dostępnych funkcjach agregujących, zobacz artykuł Funkcje agregacji w języku SQL.

Określanie pól nieużywanych w funkcji agregującej: klauzula GROUP BY

Podczas używania funkcji agregujących zazwyczaj trzeba również utworzyć klauzulę GROUP BY. W klauzuli GROUP BY należy wymienić wszystkie pola, do których nie zostanie zastosowana funkcja agregująca. Jeśli funkcje agregujące mają zostać zastosowane do wszystkich pól w kwerendzie, nie ma potrzeby tworzenia klauzuli GROUP BY.

Klauzula GROUP BY występuje bezpośrednio po klauzuli WHERE lub w przypadku braku klauzuli WHERE — po klauzuli FROM. W klauzuli GROUP BY pola są wymieniane tak samo jak w klauzuli SELECT.

Jeśli klauzula SELECT z poprzedniego przykładu ma stosować funkcję agregującą do pól [Adres e-mail], ale nie do pól Firma, klauzula GROUP BY może wyglądać następująco:

GROUP BY Company

Aby uzyskać więcej informacji o klauzuli GROUP BY, zobacz temat Klauzula GROUP BY.

Ograniczanie wartości zagregowanych przy użyciu grupy kryteriów: Klauzula HAVING

Jeśli trzeba ograniczyć wyniki przy użyciu kryteriów, ale pole, do którego mają zostać zastosowane kryteria, jest używane w funkcji agregującej, nie można użyć klauzuli WHERE. Zamiast tego należy użyć klauzuli HAVING. Klauzula HAVING działa jak klauzula WHERE, ale jest stosowana do danych sumarycznych.

Na przykład do pierwszego pola w klauzuli SELECT jest stosowana funkcja AVG (obliczająca wartość średnią):

SELECT COUNT([E-mail Address]), Company

Jeśli kwerenda ma ograniczać wyniki na podstawie wartości tej funkcji COUNT, nie można stosować kryteriów wobec tego pola w klauzuli WHERE. Zamiast tego należy umieścić kryteria w klauzuli HAVING. Na przykład jeśli kwerenda ma zwracać wiersze tylko w przypadku, gdy z firmą jest powiązany więcej niż jeden adres e-mail, klauzula HAVING może przypominać następującą:

HAVING COUNT([E-mail Address])>1

Uwaga : Kwerenda może zawierać klauzulę WHERE i klauzulę HAVING — kryteria dla pól, które nie są używane w funkcji agregującej, są umieszczane w klauzuli WHERE, a kryteria dla pól używanych w funkcjach agregujących są umieszczane w klauzuli HAVING.

Aby uzyskać więcej informacji o klauzuli HAVING, zobacz temat Klauzula HAVING.

Początek strony

Łączenie wyników kwerend: operator UNION

Aby przejrzeć jako połączony zestaw wszystkie dane zwracane przez kilka podobnych kwerend wybierających, należy użyć operatora UNION.

Operator UNION umożliwia połączenie dwóch instrukcji SELECT w jedną. Łączone instrukcje SELECT muszą mieć taką samą liczbę pól wyjściowych, tak samo uporządkowanych i z identycznymi lub zgodnymi typami danych. Po uruchomieniu kwerendy dane z każdego zestawu odpowiadających sobie pól są łączone w jedno pole wyjściowe, dzięki czemu wyniki kwerendy mają taką samą liczbę pól co każda z instrukcji wybierających.

Uwaga : Dla celów kwerendy składającej typy danych Liczba i Tekst są zgodne.

W przypadku stosowania operatora UNION można za pomocą słowa kluczowego ALL określić, czy w wynikach kwerendy powinny być uwzględniane zduplikowane wiersze, o ile takie istnieją.

Podstawowa składnia SQL kwerendy składającej, która łączy dwie instrukcje SELECT, jest następująca:

SELECT field_1
FROM table_1
UNION [ALL]
SELECT field_a
FROM table_a
;

Na przykład użytkownik ma jedną tabelę o nazwie Produkty i drugą tabelę o nazwie Usługi. Obie tabele zawierają pola z nazwą produktu lub usługi, ceną, informacjami o dostępności gwarancji lub rękojmi oraz informacjami o tym, czy produkt lub usługa są oferowane na wyłączność. Chociaż w tabeli Produkty są przechowywane informacje o rękojmi, a w tabeli Usługi są przechowywane informacje o gwarancji, podstawowe informacje są takie same (wskazują, czy do określonego produktu lub usługi jest dołączona gwarancja jakości). Za pomocą kwerendy składającej, takiej jak przedstawiona poniżej, można połączyć cztery pola z dwóch tabel:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services
;

Aby uzyskać więcej informacji na temat łączenie instrukcji SELECT przy użyciu operatora UNION zobacz artykuł Łączenie wyników kilku kwerend wybierających za pomocą kwerendy składającej.

Początek strony

Więcej informacji na temat klauzula SELECT

W instrukcji SELECT klauzula SELECT listę pól, które zawierają dane Czy chcesz użyć.

Używanie nawiasów kwadratowych identyfikatorów, należy ująć

Nawiasy kwadratowe umożliwia ujmij nazwę pola w klauzuli SELECT. Jeśli nazwa nie zawiera spacji ani znaków specjalnych (na przykład znaki interpunkcyjne), nawiasów kwadratowych są opcjonalne. Jeśli nazwa zawiera spacje lub znaki specjalne, należy użyć nawiasów.

Porada : Nazwa zawiera spacje jest łatwiejsze czytanie i pozwala zaoszczędzić czas podczas projektowania formularzy i raportów, ale może mieć co możesz wpisać więcej podczas pisania instrukcji SQL. Fakt ten należy uwzględnić w nazwach obiektów w bazie danych.

Jeśli instrukcja SQL ma co najmniej dwa pola o tej samej nazwie, do nazwy danego pola w klauzuli SELECT należy dodać nazwę odpowiedniego źródła danych. Należy użyć tej samej nazwy źródła danych co w przypadku klauzuli FROM.

Wybieranie wszystkich pól

Jeśli mają zostać uwzględnione wszystkie pola ze źródła danych, można wymienić je wszystkie osobno w klauzuli SELECT albo użyć symbolu wieloznacznego gwiazdki (*). Gdy jest stosowana gwiazdka, podczas wykonywania kwerendy program Access ustala, jakie pola zawiera źródło danych, i uwzględnia wszystkie te pola w kwerendzie. Pomaga to zapewnić, że kwerenda pozostaje aktualna po dodaniu do źródła danych nowych pól.

W instrukcji SQL gwiazdki można używać z jednym lub większą liczbą źródeł danych. Jeśli jest używana gwiazdka, a istnieje wiele źródeł danych, do gwiazdki należy dołączyć nazwę źródła danych, aby umożliwić ustalenie w programie Access, z którego źródła danych mają zostać uwzględnione wszystkie pola.

Jeśli na przykład trzeba wybrać wszystkie pola z tabeli o nazwie Zamówienia, ale tylko adresy e-mail z tabeli o nazwie Kontakty, klauzula SELECT może przypominać następującą:

SELECT Orders.*, Contacts.[E-mail Address]

Uwaga : Należy śledzić zastosowane symbole gwiazdki. Jeśli do źródła danych zostaną później dodane nowe pola, a nie zostało to przewidziane, wyniki kwerendy mogą różnić się od oczekiwanych.

Wybieranie odrębnych wartości

Jeśli wiadomo, że instrukcja spowoduje wybranie powtarzających się danych, a użytkownik chciałby przeglądać tylko odrębne wartości, w klauzuli SELECT można użyć słowa kluczowego DISTINCT. Na przykład każdy z klientów reprezentuje kilka różnych firm, z których niektóre mają te same numerów telefonów. W celu zapewnienia, że każdy numer telefonu zostanie wyświetlony tylko raz, klauzula SELECT powinna wyglądać następująco:

SELECT DISTINCT [txtCustomerPhone]

Stosowanie nazw zastępczych dla pól lub wyrażeń: słowo kluczowe AS

Dla każdego pola można zmienić etykietę wyświetlaną w widoku arkusza danych, używając w klauzuli SELECT słowa kluczowego AS oraz aliasu pola. Alias pola to nazwa przypisywana do pola w kwerendzie w celu zwiększenia czytelności wyników. Na przykład w przypadku wybierania danych z pola o nazwie tekstTelefonKlienta, które zawiera numery telefonów klientów, można zwiększyć czytelność wyników dzięki zastosowaniu aliasu pola w instrukcji SELECT w następujący sposób:

SELECT [txtCustPhone] AS [Customer Phone]

Uwaga : Użycie aliasu pola jest konieczne, gdy w klauzuli SELECT jest stosowane wyrażenie.

Wybieranie przy użyciu wyrażenia

Czasami chcesz przejrzeć obliczeń na podstawie danych, lub pobrać tylko część danych z tego pola. Załóżmy na przykład, że użytkownik chce powrócić roku urodzenia klientów, na podstawie danych w polu DataUrodzenia w bazie danych. Może być klauzuli SELECT podobny do następującego:

SELECT DatePart("yyyy",[BirthDate]) AS [Birth Year]

To wyrażenie składa się z DatePart , funkcja oraz dwóch argumentów — "yyyy" (stała), a [BirthDate] (identyfikator).

Jako pola można użyć dowolnego prawidłowego wyrażenia, o ile wynikiem tego wyrażenia przy pojedynczej wartości wejściowej jest wartość pojedyncza.

Początek strony

Więcej informacji na temat klauzuli FROM

W instrukcji SELECT klauzula FROM określa tabele lub kwerendy zawierające dane, które mają zostać użyte przez instrukcję SELECT.

Na przykład jest potrzebny numer telefonu konkretnego klienta. Przy założeniu, że tabela zawierająca pole, w którym są przechowywane te dane, nosi nazwę tblKlient, klauzula FROM będzie przypominała następującą:

FROM tblCustomer

Używanie nawiasów kwadratowych identyfikatorów, należy ująć

Nazwę można ująć w nawiasy kwadratowe. Jeśli nazwa nie zawiera żadnych spacji ani znaków specjalnych (takich jak znaki interpunkcyjne), nawiasy kwadratowe są opcjonalne. Jeśli w nazwie znajdują się spacje lub znaki specjalne, zastosowanie nawiasów jest konieczne.

Porada : Nazwa zawiera spacje jest łatwiejsze czytanie i pozwala zaoszczędzić czas podczas projektowania formularzy i raportów, ale może mieć co możesz wpisać więcej podczas pisania instrukcji SQL. Fakt ten należy uwzględnić w nazwach obiektów w bazie danych.

Używanie nazw zastępczych dla źródeł danych

Aby odwołać się do źródła danych w instrukcji SELECT przy użyciu aliasu tabeli w klauzuli FROM służy pod inną nazwą. Aliasu tabeli jest nazwą, korzystając z wyrażenia jako źródła danych, lub aby ułatwić instrukcję SQL do wpisywania i przeczytaj przypisywane do źródła danych w kwerendzie. Może to być przydatne, jeśli nazwa źródła danych jest długa lub trudno wpisz, zwłaszcza w przypadku, gdy istnieje wiele pól, które mają taką samą nazwę z różnych tabel.

Jeśli na przykład trzeba wybrać dane z dwóch różnych pól o nazwie ID, z których jedno pochodzi z tabeli tblKlient, a drugie z tabeli tblZamówienie, klauzula SELECT może przypominać następującą:

SELECT [tblCustomer].[ID], [tblOrder].[ID]

Używając aliasów tabel w klauzuli FROM, można ułatwić wpisywanie kwerendy. Klauzula FROM z aliasami tabel może przypominać następującą:

FROM [tblCustomer] AS [C], [tblOrder] AS [O]

Te aliasy tabel można zastosować w klauzuli SELECT w następujący sposób:

SELECT [C].[ID], [O].[ID]

Uwaga : Użycie aliasu tabeli, można używać odwołań do źródła danych w instrukcji SQL za pomocą aliasu lub przy użyciu pełnej nazwy źródła danych.

Sprzęganie danych pokrewnych

Gdy zachodzi potrzeba połączenia par rekordów z dwóch źródeł danych w pojedyncze rekordy w wynikach kwerendy, można wykonać sprzężenie. Sprzężenie to operacja SQL określająca, w jaki sposób dwa źródła danych są powiązane i czy dane z jednego źródła powinny być uwzględniane, jeśli odpowiadające im dane nie występują w drugim źródle.

Aby połączyć informacje z dwóch źródeł danych, należy wykonać operację sprzężenia na polu, które jest dla nich wspólne. Jeśli wartości przechowywane w tym polu są zgodne, dane z rekordów są łączone w wynikach.

Oprócz łączenia danych, sprzężenia można również używać do określania, czy mają być uwzględniane rekordy z którejkolwiek tabeli, jeśli odpowiadający im rekord nie występuje w tabeli pokrewnej.

Załóżmy na przykład, aby użyć danych z dwóch tabel w kwerendzie: Tblklient i Tblzamówienie. Obie tabele oba muszą polem Id_klienta, który identyfikuje klienta. Każdy rekord w tabeli Tblklient mogą mieć co najmniej jeden odpowiednich rekordów w tabeli Tblzamówienie, a odpowiadające im wartości można ustalić według wartości w tabeli.

Jeśli tabele mają zostać sprzężone tak, aby kwerenda połączyła ich rekordy, wykluczając rekordy z dowolnej tabeli, o ile w drugiej tabeli nie istnieją rekordy im odpowiadające, klauzula FROM może przypominać następującą (w celu zwiększenia czytelności dodano tutaj podział wiersza):

FROM [tblCustomer] INNER JOIN [tblOrder]
ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]

W programie Microsoft Office Access sprzężenia występują w klauzuli FROM instrukcji SELECT. Istnieją dwa typy sprzężeń: sprzężenia wewnętrzne i sprzężenia zewnętrzne. W następnych sekcjach wyjaśniono te dwa typy sprzężeń.

Sprzężenia wewnętrzne

Najczęściej występującym typem sprzężeń są sprzężenia wewnętrzne. Po uruchomieniu kwerendy ze sprzężeniem wewnętrznym jedynymi rekordami uwzględnionymi w wynikach kwerendy są te rekordy, w przypadku których istnieje wspólna wartość w obu sprzężonych tabelach.

Sprzężenie wewnętrzne ma następującą składnię (w celu zwiększenia czytelności dodano tutaj podział wiersza):

FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field2

W poniższej tabeli opisano poszczególne części operacji INNER JOIN.

Część

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.

operator_porównania

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

Sprzężenia zewnętrzne

Sprzężenia zewnętrzne są podobne do sprzężeń wewnętrznych — przekazują do kwerendy instrukcje, jak powinny być łączone informacje pochodzące z dwóch źródeł. Różnica polega na tym, że określają one również, czy dane mają być uwzględniane w przypadkach, gdy nie istnieje wspólna wartość. Sprzężenia zewnętrzne są kierunkowe: można określić, czy uwzględniane mają być wszystkie rekordy z pierwszego źródła danych określonego w sprzężeniu (nazywanego lewym sprzężeniem), czy też uwzględniane mają być wszystkie rekordy z drugiego źródła danych w sprzężeniu (nazywanego prawym sprzężeniem).

Sprzężenie zewnętrzne ma następującą składnię:

FROM tabela1 [lewej | RIGHT] JOIN tabela2
ON tabela1.pole1 operator_porównania tabela2.pole2

W poniższej tabeli opisano poszczególne części operacji LEFT JOIN i RIGHT JOIN.

Część

Opis

tabela1, tabela2

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

pole1, pole2

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

operator_porównania

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

Aby uzyskać więcej informacji na temat sprzężeń zobacz artykuł Sprzęganie tabel i kwerend.

Początek strony

Więcej informacji na temat klauzuli WHERE

Jeśli chcesz ograniczyć liczbę rekordów wyświetlanych w kwerendzie przy użyciu danych za pomocą kwerendy kryterium w klauzuli WHERE instrukcji SELECT. Kryterium kwerendy jest podobne do formuły — jest to ciąg, który zawiera pole odwołania, operatory i stałe. Kryteria kwerend są typu wyrażenie.

W poniższej tabeli pokazano przykładowe kryteria i wyjaśniono sposób ich działania.

Kryteria

Opis

>25 i <50

Kryterium to odnosi się do pola Liczba, takich jak cena lub StanMagazynu. Zawiera tylko te rekordy, w których pole zawiera ona wartość większą niż 25 i mniejsza niż 50.

DateDiff ("yyyy", [DataUrodzenia], Date()) > 30

To kryterium dotyczy pól typu Data/Godzina, na przykład pola DataUrodzenia. W wyniku kwerendy zostaną uwzględnione tylko te rekordy, w których liczba lat między datą urodzenia danej osoby a datą datą bieżącą jest większa niż 30.

Is Null

To kryterium można zastosować do pola dowolnego rodzaju w celu pokazania rekordów, w których wartością pola jest null.

Jak to przedstawiono w poprzedniej tabeli, kryteria mogą się od siebie bardzo różnić w zależności od typu danych pola, do którego są stosowane, a także od konkretnych wymagań. Niektóre kryteria są proste i zawierają podstawowe operatory oraz stałe. Inne są złożone i zawierają funkcje oraz operatory specjalne, a także odwołania do pól.

Ważne : Jeśli pole jest używana z funkcją agregującą, nie można określić kryteriów dla tego pola w klauzuli WHERE. Zamiast tego użyj klauzuli HAVING określone kryteria dla pól zagregowane. Aby uzyskać więcej informacji, zobacz sekcję Praca z danymi podsumowania: Grupuj według i HAVING.

Składnia klauzuli WHERE

Klauzula WHERE ma następującą składnię podstawową:

WHERE field = criterion

Potrzebny jest na przykład jest numer telefonu klienta, ale użytkownik pamięta tylko, że jego nazwisko brzmi Bagel. Zamiast przeglądać wszystkie numery telefonów w bazie danych, można użyć klauzuli WHERE, aby ograniczyć wyniki i ułatwić odnalezienie odpowiedniego numeru telefonu. Jeśli nazwiska są przechowywane w polu o nazwie Nazwisko, klauzula WHERE może wyglądać następująco:

WHERE [LastName]='Bagel'

Uwaga : Nie masz podstawę kryteria w klauzuli WHERE równoważne wartości. Można używać innych operatorów porównania, takich jak większości (>) lub mniej niż (<). Na przykład miejsce, w którym [Cena] > 100.

Łączenie źródeł danych za pomocą klauzuli WHERE

Czasami może zachodzić potrzeba połączenia źródeł danych na podstawie pól zawierających zgodne dane, ale o innym typie danych. Na przykład pole w jednej tabeli zawiera dane typu Liczba, a ma zostać porównane z polem w innej tabeli zawierającym dane typu Tekst.

Nie można utworzyć sprzężenia między polami o różnych typach danych. Aby połączyć dane z dwóch źródeł danych na podstawie wartości w polach o różnych typach danych, należy utworzyć klauzulę WHERE, w której jedno pole będzie stanowić kryterium dla drugiego pola, stosując słowo kluczowe LIKE.

Przykładowo mają być używane dane z tabel o nazwach tabela1 i tabela2, ale tylko gdy dane z pola pole1 (pola tekstowego w tabeli tabela1) pasują do danych z pola pole2 (pola liczbowego w tabeli tabela2). Klauzula WHERE będzie przypominać następującą:

WHERE field1 LIKE field2

Aby uzyskać więcej informacji na temat tworzenia kryteria mają być używane w klauzuli WHERE zobacz artykuł Przykłady kryteriów kwerend.

Początek strony

Uwaga : Zrzeczenie dotyczące tłumaczenia maszynowego: Ten artykuł został przetłumaczony przez system komputerowy bez interwencji człowieka. Firma Microsoft udostępnia te tłumaczenia maszynowe, aby ułatwić użytkownikom, którzy nie znają języka angielskiego, korzystanie z zawartości dotyczącej produktów, usług i technologii firmy Microsoft. Ponieważ ten artykuł został przetłumaczony maszynowo, może zawierać błędy w słownictwie, składniowe lub gramatyczne.

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

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×