Edytowanie instrukcji SQL w celu sprecyzowania wyników kwerendy
Applies ToAccess dla Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Jeśli kwerendy nie działają wystarczająco ciężko, dodanie podstawowych instrukcji SQL może ułatwić skoncentrowanie się na wynikach. Przyjrzyjmy się kilku typom instrukcji SQL oraz klauzulom lub częściom, które można edytować, aby uzyskać żądane wyniki.

Uwaga:  Ten artykuł nie dotyczy aplikacji sieci Web programu Access, czyli baz danych projektowanych przy użyciu programu Access i publikowanych w trybie online.

W tym artykule

Tworzenie instrukcji Select

Instrukcja SQL select zawiera od dwóch do trzech klauzul. Klauzula SELECT informuje bazę danych, gdzie należy szukać danych, i prosi o zwrócenie określonego wyniku.

Uwaga:  Instrukcje SELECT zawsze kończą się średnikiem (;) na końcu ostatniej klauzuli lub na samym wierszu na końcu instrukcji SQL.

Poniższa instrukcja wyboru powoduje wyświetlenie monitu w programie Access o uzyskanie informacji z kolumn Adres e-mail i Firma z tabeli Kontakty, w szczególności w przypadku, gdy znajduje ona wyraz "Szczecin" w kolumnie Miasto.

Karta obiektu SQL z wyświetloną instrukcją SELECT

Powyższe zapytanie zawiera trzy klauzule SELECT, FROM i WHERE.

1. Klauzula SELECT zawiera listę kolumn zawierających dane, których chcesz użyć, oraz operator (SELECT), a następnie dwa identyfikatory (Adres e-mail i Firma). Jeśli identyfikator zawiera spacje lub znaki specjalne (na przykład "Adres e-mail"), należy ująć identyfikator w nawiasy kwadratowe.

2. Klauzula FROM określa tabelę źródłową. W tym przykładzie ma operator (FROM), a po nim identyfikator (Kontakty).

3. Klauzula WHERE jest klauzulą opcjonalną. W przykładzie znajduje się operator (WHERE), po którym następuje wyrażenie (Miasto="Seattle").

Aby uzyskać więcej informacji na temat zapytań wybierających, zobacz Tworzenie prostego zapytania wybierającego.

Oto lista typowych klauzul SQL:

Klauzula SQL

Działanie

Wymagane ?

SELECT

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

Tak

FROM

Zwraca listę tabel zawierających pola wymienione w klauzuli 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

Każda klauzula SQL składa się z warunków. Poniżej przedstawiono listę typowych terminów języka SQL.

Termin SQL

Definicja

Przykład

identyfikator

Nazwa używana do identyfikowania obiektu bazy danych, na przykład nazwa kolumny.

[Adres e-mail] i Firma

operator

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

AS

stała

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

42

wyrażenie

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

>= Produkty.[Cena jednostkowa]

Początek strony

Dostosowywanie klauzuli SELECT

Dostosowywanie

Przykład

Aby wyświetlić tylko unikatowe wartości.

Użyj słowa kluczowego DISTINCT w klauzuli SELECT.

Jeśli na przykład klienci pochodzą z kilku różnych oddziałów, a niektórzy z nich mają ten sam numer telefonu i chcesz wyświetlić tylko jeden numer telefonu, klauzula SELECT będzie następująca:

SELECT DISTINCT [txtCustomerPhone] 

Aby zmienić sposób wyświetlania identyfikatora w widoku arkusza danych w celu poprawienia czytelności.

Użyj operatora AS (słowa kluczowego reprezentującego akcję lub modyfikatora akcji) z aliasem pola w klauzuli SELECT. Alias pola to nazwa przypisana do pola, aby ułatwić odczytywanie wyników.

SELECT [txtCustPhone] AS [Customer Phone]

Dostosowywanie klauzuli FROM

Dostosowywanie

Przykład

Możesz użyć aliasu tabeli lub innej nazwy przypisanej do tabeli w instrukcji select. Alias tabeli jest przydatny, jeśli nazwa tabeli jest długa, szczególnie wtedy, gdy istnieje wiele pól o takiej samej nazwie z różnych tabel.

Aby wybrać dane z dwóch pól o nazwie ID, z których jedno pochodzi z tabeli tblCustomer, a drugie z tabeli tblOrder:

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

Użyj operatora AS, aby zdefiniować aliasy tabeli w klauzuli FROM:

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

Następnie możesz użyć tych aliasów tabeli w klauzuli SELECT w następujący sposób:

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

Sprzężenia umożliwiają łączenie par rekordów z dwóch źródeł danych w jeden wynik lub określanie, czy mają zostać uwzględnione rekordy z dowolnej tabeli, jeśli w powiązanej tabeli nie ma odpowiadającego im rekordu.

Połącz tabele, aby zapytanie połączyło elementy z tabel i wykluczało elementy, gdy w drugiej tabeli nie ma odpowiadającego im rekordu.

Klauzula FROM może wyglądać następująco:

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

Używanie sprzężeń — informacje

Istnieją dwa typy sprzężeń: sprzężenia wewnętrzne i zewnętrzne. Sprzężenia wewnętrzne są częstsze w zapytaniach. Po uruchomieniu zapytania ze sprzężeniami wewnętrznymi wynik pokazuje tylko te elementy, w których istnieje wspólna wartość w obu sprzężonych tabelach.

Sprzężenia zewnętrzne określają, czy mają być uwzględniane dane, w przypadku których nie istnieje żadna wspólna wartość. Sprzężenia zewnętrzne są kierunkowe, co oznacza, że można określić, czy mają zostać uwzględnione wszystkie rekordy z pierwszej tabeli określonej w sprzężeniu (nazywane sprzężeniem lewym), czy też uwzględniać wszystkie rekordy z drugiej tabeli sprzężenia (nazywane sprzężeniem prawym). Sprzężenie zewnętrzne ma następującą składnię SQL:

FROM table1 [ LEFT | RIGHT ] JOIN table2ON table1.field1 = table2.field2

Aby uzyskać więcej informacji na temat używania sprzężeń w zapytaniu, zobacz Łączenie tabel i zapytań.

Początek strony

Dostosowywanie klauzuli WHERE

Klauzula WHERE zawiera kryteria, które pomagają ograniczyć liczbę elementów zwracanych w zapytaniu. Zobacz przykłady kryteriów zapytań i ich działania.

Przykładem dostosowywania podstawowej klauzuli WHERE jest ograniczenie wyników zapytania. Załóżmy, że chcesz znaleźć numer telefonu klienta i pamiętasz tylko jego nazwisko jako Duda. W tym przykładzie nazwiska są przechowywane w polu Nazwisko, więc składnia języka SQL byłaby następująca:

WHERE [LastName]='Bagel'

Klauzula WHERE umożliwia również łączenie źródeł danych dla kolumn zawierających zgodne dane, ale o różnych typach danych. Jest to przydatne, ponieważ nie można utworzyć sprzężenia między polami o różnych typach danych. Użyj jednego pola jako kryterium dla drugiego pola za pomocą słowa kluczowego LIKE . Jeśli na przykład chcesz użyć danych z tabeli Zasoby i tabeli Pracownicy, tylko wtedy, gdy typ składnika majątku w polu typu składnika majątku tabeli Aktywa ma liczbę 3 w polu Ilość w tabeli Pracownicy, klauzula WHERE będzie wyglądać w następujący sposób:

WHERE field1 LIKE field2

Ważne:  W klauzuli WHERE nie można określić kryteriów dla pola używanego z funkcją agregująca. Zamiast tego należy użyć klauzuli HAVING w celu określenia kryteriów dla pól agregowanych.

Początek strony

Dostosowywanie za pomocą operatora UNION

Operator UNION umożliwia wyświetlenie połączonego widoku wyników z kilku podobnych zapytań wybierających. Jeśli na przykład baza danych zawiera tabelę Produkty i tabelę Usługi i oba mają trzy pola: oferta wyłączna lub produkt lub usługa, cena, gwarancja lub gwarancja. Mimo że w tabeli Produkty są przechowywane informacje o gwarancji, a w tabeli Usługi są przechowywane informacje o gwarancji, podstawowe informacje są takie same. Za pomocą zapytania składającego możesz połączyć trzy pola z dwóch tabel w następujący sposób:

SELECT name, price, warranty, exclusive_offerFROM ProductsUNION ALLSELECT name, price, guarantee, exclusive_offer FROM Services;

Po uruchomieniu zapytania dane z każdego zestawu odpowiednich pól są łączone w jedno pole wyjściowe. Aby uwzględnić w wynikach zduplikowane wiersze, użyj operatora ALL.

Uwaga:  Instrukcja Select musi mieć taką samą liczbę pól wyjściowych, w tej samej kolejności i z tymi samymi lub zgodnymi typami danych. Na potrzeby zapytania składającego typy danych Liczba i Tekst są zgodne.

Aby uzyskać więcej informacji na temat zapytań składających, zobacz Używanie zapytania składającego do wyświetlania ujednoliconego wyniku wielu zapytań.

Początek strony

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.