Edytowanie instrukcji SQL w celu sprecyzowania wyników kwerendy

Jeśli zapytania nie są wystarczająco wytęgne, dodanie podstawowych 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ć w celu uzyskania określonych wyników.

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 wskazuje bazie danych, gdzie szukać danych, i prosi o zwrócenie określonego wyniku.

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

Następująca instrukcja select prosi program Access o uzyskanie informacji z kolumn Adres e-mail i Firma z tabeli Kontakty, a dokładniej z kolumny Miasto, gdzie znajduje się "Szczecin".

Karta obiektu SQL z wyświetloną instrukcją SELECT

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

1. Klauzula SELECT zawiera kolumny zawierające dane, których chcesz użyć, oraz operator (SELECT), po którym znajdują się dwa identyfikatory (Adres e-mail i Firma). Jeśli identyfikator zawiera spacje lub znaki specjalne (takie jak "Adres e-mail"), należy go ująć w nawiasy kwadratowe.

2. Klauzula FROM identyfikuje tabelę źródłową. W tym przykładzie ma operator (FROM), po którym następuje identyfikator (Kontakty).

3. Klauzula WHERE jest klauzulą opcjonalną. W przykładzie znajduje się operator (WHERE), po którym następuje wyrażenie (City="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 terminów. Poniżej znajduje się lista niektórych popularnych terminów języka SQL.

Termin SQL

Definicja

Przykład

identyfikator

Nazwa identyfikująca obiekt bazy danych, taka jak 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 odrębne wartości.

W klauzuli SELECT użyj słowa kluczowego DISTINCT.

Jeśli na przykład klienci znajdują się w kilku różnych oddziałach firmy, a niektóre z nich mają ten sam numer telefonu i chcesz wyświetlić tylko jeden numer telefonu, klauzula SELECT powinna wyglądać tak:

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 modyfikującego akcję) z aliasem pola w klauzuli SELECT. Alias pola to nazwa przypisana do pola, aby wyniki były bardziej czytelne.

SELECT [txtCustPhone] AS [Customer Phone]

Dostosowywanie klauzuli FROM

Dostosowywanie

Przykład

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

Aby wybrać dane z dwóch pól o nazwie Identyfikator, 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 tabel w klauzuli FROM:

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

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

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

Za pomocą sprzężenia można łączyć pary rekordów z dwóch źródeł danych w jeden wynik lub określać, czy rekordy z jednej tabeli mają być dołączane, 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, jeśli w drugiej tabeli nie ma odpowiadającego im rekordu

Klauzula FROM może wyglądać tak:

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

Informacje o używaniu sprzężenia

Istnieją dwa typy sprzężenia: sprzężenia wewnętrzne i zewnętrzne. Sprzężenia wewnętrzne są najczęściej spotykane w zapytaniach. Po uruchomieniu zapytania ze sprzężeniem wewnętrznym w wyniku są zwracane tylko te elementy, dla których istnieje wspólna wartość w obu sprzężeniach tabel.

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

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

Zobacz więcej informacji na temat używania sprzężenia w zapytaniu w tabelach i zapytaniach sprzężenia.

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 jego nazwisko tylko jako Bagel. W tym przykładzie nazwiska są przechowywane w polu Nazwisko, więc składnia JĘZYKA SQL wygląda następująco:

WHERE [LastName]='Bagel'

Klauzula WHERE również łączy źródła danych dla kolumn, które mają zgodne dane, ale różne typy 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 ze słowem kluczowym LIKE. Jeśli na przykład chcesz użyć danych z tabeli Majątek i Pracownicy, tylko wtedy, gdy typ środka trwałego w polu Typ środka trwałego w tabeli Majątek ma numer 3 w polu Ilość w tabeli Pracownicy, klauzula WHERE będzie wyglądać tak:

WHERE field1 LIKE field2

Ważne:  Nie można określić kryteriów dla pola używanego z funkcją agregacyjną w klauzuli WHERE. 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 usługi i oba te pola mają trzy pola: oferta wyłączności, 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 union można połączyć trzy pola z dwóch tabel w ten sposób:

SELECT name, price, warranty, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee, exclusive_offer
FROM Services;

Po uruchomieniu zapytania dane z każdego zestawu odpowiadających sobie 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 tym samym lub zgodnym typem danych. Na potrzeby zapytania składającego typy danych Liczba i Tekst są zgodne.

Aby uzyskać więcej informacji na temat zapytań union, zobacz używanie zapytania union w celu wyświetlenia ujednoliconego wyniku wielu zapytań.

Początek strony

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ę!

×