Skip to main content

Wybieranie danych w zakresach w SQL

Kurs Access: bazy danych, zapytania SQL, VBA (Czerwiec 2026)

Kurs Access: bazy danych, zapytania SQL, VBA (Czerwiec 2026)
Anonim

Structured Query Language (SQL) zapewnia użytkownikom baz danych możliwość tworzenia niestandardowych zapytań w celu wydobywania informacji z baz danych. We wcześniejszym artykule zbadaliśmy wydobywanie informacji z bazy danych za pomocą zapytań SQL SELECT. Rozwińmy tę dyskusję i zbadajmy, jak można wykonywać zaawansowane zapytania w celu pobrania danych pasujących do konkretnych warunków.Rozważmy przykład oparty na powszechnie używanej bazie danych Northwind, która często jest dostarczana z produktami bazodanowymi jako samouczek.

Oto fragment tabeli produktów bazy danych:

Tabela produktów
ID produktuNazwa produktuIdentyfikator dostawcyIlość sztuk na jednostkęCena jednostkowaJednostkiInStock
1Chai110 pudełek x 20 torebek18.0039
2Chang1Butelki 24 - 12 oz19.0017
3Syrop ananasowy112 - 550 ml butelek10.0013
4Przyprawa Cajun szefa kuchni Antona248 - 6 oz słoików22.0053
5Gumbo Mix szefa kuchni Antona236 pudełek21.350
6Spread babci dla Boysenberry312 - 8 oz słoików25.00120
7Uncle Bob's Organic Suszone Gruszki312 - 1 kg pkg.30.0015

Proste warunki brzegowe

Pierwsze ograniczenia, które wprowadzimy w naszym zapytaniu, dotyczą prostych warunków brzegowych. Możemy je określić w klauzuli WHERE kwerendy SELECT, używając prostych instrukcji warunkowych skonstruowanych za pomocą standardowych operatorów, takich jak <,>,> = i <=.

Najpierw spróbujmy prostej kwerendy, która pozwoli nam wyodrębnić listę wszystkich produktów w bazie danych o wartości UnitPrice powyżej 20,00:

SELECT ProductName, UnitPrice Z produktów WHERE UnitPrice> 20.00

Daje to listę czterech produktów, jak pokazano poniżej:

ProductName UnitPrice ------- -------- Chef Gumbo Mix 21.35 Chef Anton's Cajun Przyprawa 22,00 Babcia Boysenberry Spread 25.00 Wuj Bob's Organiczne suszone gruszki 30.00

Możemy również użyć klauzuli WHERE z wartościami łańcuchów. Zasadniczo zrównuje to znaki do liczb, gdzie A oznacza wartość 1, a Z oznacza wartość 26. Na przykład, możemy pokazać wszystkie produkty o nazwach zaczynających się od U, V, W, X, Y lub Z z następującym zapytaniem:

SELECT Nazwa produktu z produktów WHERE Nazwa produktu> = 'T'

Który daje wynik:

ProductName ------- Organiczne suszone gruszki wuja Boba

Wyrażanie zakresów za pomocą granic

Klauzula WHERE umożliwia także implementację warunku zakresu na wartości przy użyciu wielu warunków. Na przykład, jeśli chcemy wziąć powyższe zapytanie i ograniczyć wyniki do produktów z cenami między 15.00 a 20.00, możemy użyć następującego zapytania:

SELECT ProductName, UnitPrice Z produktów WHERE UnitPrice> 15.00 AND UnitPrice <20.00

Daje to wynik pokazany poniżej:

ProductName UnitPrice ------- -------- Chai 18,00 Czang 19.00

Wyrażanie zakresów MIĘDZY

SQL udostępnia skrótową składnię MIĘDZY, która zmniejsza liczbę warunków, które musimy uwzględnić, i sprawia, że ​​zapytanie staje się bardziej czytelne. Na przykład zamiast używać dwóch powyższych warunków WHERE, możemy wyrazić to samo zapytanie, co:

SELECT ProductName, UnitPrice Z produktów, GDZIE cena jednostkowa MIĘDZY 15.00 a 20.00

Podobnie jak w przypadku innych klauzul warunkowych, funkcja BETWEEN działa również z wartościami łańcuchowymi. Gdybyśmy chcieli stworzyć listę wszystkich krajów zaczynających się od V, W lub X, moglibyśmy użyć zapytania:

SELECT Nazwa produktu z produktów GDZIE Nazwa produktu MIĘDZY "A" i "D"

Który daje wynik:

ProductName ------- Aniseed Syrup Chai Chang Chef Szef kuchni Antoniego Gumbo Mix Antoni's Cajun Seasoning

Klauzula WHERE stanowi potężną część języka SQL, która pozwala ograniczyć wyniki do wartości mieszczących się w określonych zakresach. Jest bardzo często używany do wyrażania logiki biznesowej i powinien być częścią każdego zestawu narzędzi profesjonalistów baz danych.

Często pomocne jest włączenie wspólnych klauzul do procedury przechowywanej, aby była dostępna dla osób bez znajomości SQL.