Edytowanie instrukcji SQL w celu sprecyzowania wyników kwerendy

Edytowanie instrukcji SQL w celu sprecyzowania wyników kwerendy

Uwaga:  Staramy się udostępniać najnowszą zawartość Pomocy w Twoim języku tak szybko, jak to możliwe. Ta strona została przetłumaczona automatycznie i może zawierać błędy gramatyczne lub nieścisłości. Chcemy, aby ta zawartość była dla Ciebie przydatna. Prosimy o powiadomienie nas, czy te informacje były pomocne, u dołu tej strony. Oto angielskojęzyczny artykuł do wglądu.

Jeśli kwerendy nie dają zadowalających wyników, dodanie kilku podstawowych instrukcji SQL może pomóc w uzyskaniu bardziej precyzyjnych wyników. Przyjrzyjmy się kilku typom instrukcji SQL oraz klauzul lub części, które możesz edytować, aby uzyskać odpowiednie 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

Dostosowywanie klauzuli SELECT

Dostosowywanie klauzuli FROM

Dostosowywanie klauzuli WHERE

Dostosowywanie operatora UNION

Tworzenie instrukcji SELECT

Instrukcja SELECT języka SQL składa się z dwóch lub trzech klauzul. Klauzula SELECT informuje bazę danych, gdzie szukać danych i żąda zwrócenia określonego wyniku.

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

Poniższa instrukcja w programie Access powoduje pobranie informacji z kolumn Adres e-mail i Firma z tabeli Kontakty, gdy w kolumnie Miasto znaleziona zostanie wartość „Warszawa”.

Karta obiektu SQL z wyświetloną instrukcją SELECT

Powyższa kwerenda zawiera trzy klauzule — SELECT, FROM oraz WHERE.

1. Klauzula SELECT wyświetla listę kolumn zawierających dane, których chcesz użyć, i składa się z operatora (SELECT), po którym następują dwa identyfikatory (Adres e-mail i Firma). Jeśli identyfikator zawiera spacje lub znaki specjalne (na przykład „Adres e-mail”), umieść go w nawiasach kwadratowych.

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

3. Klauzula WHERE jest opcjonalna. Przykładowa klauzula zawiera operator (WHERE), po którym następuje wyrażenie (Miasto="Warszawa").

Aby uzyskać więcej informacji na temat kwerend wybierających, zobacz Tworzenie prostej kwerendy wybierającej.

Poniżej przedstawiono listę często używanych 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. Na poniżej liście przedstawiono kilka często używanych terminów 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

Wyświetlanie tylko odrębnych wartości.

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

Jeśli na przykład Twoi klienci pochodzą z kilku różnych oddziałów, niektórzy z nich mają taki sam numer telefonu i chcesz, aby numer telefonu był wyświetlany na liście tylko raz, klauzula SELECT powinna wyglądać następująco:

SELECT DISTINCT [txtCustomerPhone] 

Zmienianie sposobu wyświetlania identyfikatora w widoku arkusza danych w celu poprawienia jego czytelności.

Użyj operatora AS (słowa kluczowego, które odzwierciedla lub modyfikuje akcję) z aliasem pola w klauzuli SELECT. Alias pola to nazwa przypisywana do pola w celu poprawy czytelności wyników.

SELECT [txtCustPhone] AS [Customer Phone]

Dostosowywanie klauzuli FROM

Dostosowywanie

Przykład

Możesz użyć aliasu tabeli lub innej nazwy, którą przypiszesz tabeli w instrukcji SELECT. Alias tabeli jest użyteczny, gdy nazwa tabeli jest zbyt długa, a szczególnie w przypadku, gdy istnieje kilka pól o takich samych nazwach pochodzących z innych tabel.

Wybieranie danych z dwóch pól o nazwie ID, z których jedno należy do tabeli tblKlient, a drugie należy do tabeli tblZamówienie:

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

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

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

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

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

Użyj sprzężeń, aby łączyć pary rekordów z dwóch źródeł danych w jeden wynik lub określić, czy mają zostać uwzględnione rekordy z jednej z tabel, jeśli w powiązanej tabeli nie istnieje odpowiedni rekord.

Połącz tabele, tak aby w kwerenda łączyła elementy z tabel i wykluczała elementy, gdy w innej tabeli nie istnieje odpowiedni rekord.

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

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

Informacje dotyczące stosowania sprzężeń

Istnieją dwa typy sprzężeń: sprzężenia wewnętrzne i zewnętrzne. Sprzężenia wewnętrzne są częściej stosowane w kwerendach. Po uruchomieniu kwerendy zawierającej sprzężenie wewnętrzne w wyniku wyświetlane są tylko te elementy, w przypadku których wspólna wartość istnieje w obu sprzężonych tabelach.

Sprzężenia zewnętrzne określają, czy mają zostać uwzględnione dane, które nie posiadają wspólnej wartości. Sprzężenia zewnętrzne są kierunkowe, co oznacza, że możesz określić, czy mają zostać uwzględnione wszystkie rekordy z pierwszej tabeli określonej w sprzężeniu (nazywanej lewym sprzężeniem) lub czy mają zostać uwzględnione wszystkie rekordy z drugiej tabeli w sprzężeniu (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ężeń w kwerendzie w Sprzęganie tabel i kwerend.

Początek strony

Dostosowywanie klauzuli WHERE

Klauzula WHERE zawiera kryteria, które pomaga ograniczyć liczbę elementów zwrócone w kwerendzie. Zobacz Przykłady kryteriów kwerend i sposób działania.

Przykładem dostosowania podstawowej klauzuli WHERE jest ograniczenie wyników kwerendy. Załóżmy, że chcesz zlokalizować numer telefonu klienta i pamiętasz jedynie, że jego nazwisko to Jankowski. W tym przykładzie nazwiska są przechowywane w polu Nazwisko, dlatego składnia SQL wygląda następująco:

WHERE [LastName]='Bagel'

Za pomocą klauzuli WHERE również do połączenia źródła danych dla kolumny, które mają pasujące dane, ale różne typy danych. Ten przydatny, ponieważ nie można utworzyć sprzężenie między polami, które mają różne typy danych. Używanie jedno pole jako kryterium dla innych pól, takich jak słowo kluczowe. Na przykład jeśli chcesz używać danych z tabelami składniki majątku i pracownicy tylko wtedy, gdy typ zawartości w elementu tabeli składniki majątku ma liczba 3 w polu Ilość tabeli Pracownicy, poniżej przedstawiono wygląd programu klauzuli WHERE :

WHERE field1 LIKE field2

Ważne:  Nie można określić kryteriów dla pola używanego z funkcją agregującą 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 operatora UNION

Użyj operatora UNION, gdy chcesz wyświetlić połączony widok wyników z kilku podobnych kwerend wybierających. Jeśli na przykład w bazie danych znajduje się tabela Produkty oraz tabela Usługi i obie te tabele zawierają trzy pola: oferta wyłączna, produkt lub usługa, cena i gwarancja lub rękojmia. Mimo że w tabeli Produkty przechowywane są informacje dotyczące rękojmi, a w tabeli Usługi przechowywane są informacje o gwarancji, podstawowe informacje są takie same. Możesz użyć kwerendy składającej w następujący sposób, aby połączyć te trzy pola z dwóch tabel:

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

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

Uwaga:  Instrukcja SELECT musi mieć taką samą liczbę pól wyjściowych w takiej samej kolejności i z takimi samymi lub kompatybilnymi typami danych. Na potrzeby kwerendy składającej typy danych Liczba i Tekst są zgodne.

Aby uzyskać więcej informacji na temat kwerend składających zobacz Używanie kwerendy składającej w celu wyświetlania zbiorczego wyniku wielu kwerend.

Początek strony

Rozwijaj umiejętności związane z pakietem Office
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.

×