Wybierz dane w zakresach w SQL

Strukturalny język zapytań (SQL) zapewnia użytkownikom bazy danych możliwość tworzenia niestandardowych zapytań w celu wyodrębnienia informacji z baz danych. We wcześniejszym artykule omawialiśmy wydobywanie informacji z bazy danych za pomocą zapytań SQL SELECT. Rozwińmy tę dyskusję i zbadajmy, jak możesz wykonywać zaawansowane zapytania do pobierania danych, które spełnia określone warunki.

Rozważmy przykład oparty na powszechnie używanym Północny wiatr bazy danych, która często jest dostarczana z produktami bazodanowymi jako samouczek.

Oto fragment tabeli Produkt w bazie danych:

ID produktu Nazwa produktu Identyfikator dostawcy Ilość sztuk na jednostkę Cena jednostkowa Jednostki w magazynie
1 Chai 1 10 pudełek x 20 torebek 18.00 39
2 Chang 1 Butelki 24 - 12 uncji 19.00 17
3 Syrop anyżowy 1 12 - 550 ml butelek 10.00 13
4 Przyprawa Cajun szefa kuchni Antona 2 48 - 6 uncji słoików 22.00 53
5 Gumbo Mix szefa kuchni Antona 2 36 pudełek 21.35 0
6 Babcia Boysenberry Spread 3 12 - 8 uncji słoików 25.00 120
7 Organiczne Suszone Gruszki Wuja Boba 3 12 - 1 funtowe opakowania. 30.00 15
Tabela produktów
instagram viewer

Proste warunki brzegowe

Pierwsze ograniczenia, jakie nałożymy na nasze zapytanie, dotyczą prostych warunków brzegowych. Możemy je określić w klauzuli WHERE zapytania SELECT, używając prostych instrukcji warunkowych skonstruowanych za pomocą standardowych operatorów, takich jak , >= i <=.

Najpierw wypróbujmy proste zapytanie, które pozwoli nam wyodrębnić listę wszystkich produktów w bazie danych, których cena jednostkowa jest większa niż 20,00:

SELECT NazwaProduktu, CenaJednostkowa
Z produktów
GDZIE cena jednostkowa >20,00

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

NazwaProduktu CenaJednostkowa

Mieszanka Gumbo Szefa Antona 21,35
Przyprawa Cajun szefa kuchni Antona 22.00
Babcia Boysenberry Spread 25.00
Organiczne Suszone Gruszki Wujka Boba 30,00

Możemy również użyć klauzuli WHERE z wartościami łańcuchowymi. To w zasadzie przyrównuje znaki do liczb, przy czym A reprezentuje wartość 1, a Z reprezentuje wartość 26. Na przykład możemy pokazać wszystkie produkty o nazwach zaczynających się od U, V, W, X, Y lub Z za pomocą następującego zapytania:

WYBIERZ NazwaProduktu
Z produktów
GDZIE NazwaProduktu >= 'T'

Co daje wynik:

Nazwa produktu

Organiczne Suszone Gruszki Wuja Boba

Wyrażanie zakresów za pomocą granic

Klauzula WHERE pozwala nam również na zaimplementowanie warunku zakresu na wartości przy użyciu wielu warunków. Na przykład, gdybyśmy chcieli skorzystać z powyższego zapytania i ograniczyć wyniki do produktów o cenach między 15.00 a 20.00, moglibyśmy użyć następującego zapytania:

SELECT NazwaProduktu, CenaJednostkowa
Z produktów
GDZIE CenaJednostkowa> 15,00 I CenaJednostkowa <20,00

Daje to wynik pokazany poniżej:

NazwaProduktu CenaJednostkowa

czaj 18.00
19.00

Wyrażanie zakresów za pomocą BETWEEN

SQL udostępnia również skrót BETWEEN składni, który zmniejsza liczbę warunków, które musimy uwzględnić, i sprawia, że ​​zapytanie jest bardziej czytelne. Na przykład, zamiast używać dwóch powyższych warunków WHERE, możemy wyrazić to samo zapytanie jako:

SELECT NazwaProduktu, CenaJednostkowa
Z produktów
GDZIE Cena Jednostkowa POMIĘDZY 15.00 A 20.00

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

WYBIERZ NazwaProduktu
Z produktów
GDZIE Nazwa produktu POMIĘDZY „A” i „D”

Co daje wynik:

Nazwa produktu

Syrop anyżowy
Chai
Chang
Gumbo Mix szefa kuchni Antona
Przyprawa Cajun szefa kuchni Antona

Klauzula WHERE jest potężną częścią 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ą zestawu narzędzi każdego profesjonalisty ds. baz danych. Często pomocne jest włączenie wspólnych klauzul do procedury składowanej, aby była ona dostępna dla osób bez znajomości języka SQL.