Wybieranie danych w zakresach w SQL

Wprowadzenie klauzuli WHERE oraz warunku BETWEEN

Kod SQL

KIVILCIM PINAR / Getty Images





The 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, w jaki sposób można wykonywać zaawansowane zapytania w celu pobrania danych, które spełnia określone warunki .

Rozważmy przykład oparty na powszechnie używanym Północny wiatr baza 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
dwa 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 dwa 48 - 6 uncji słoików 22.00 53
5 Gumbo Mix szefa kuchni Antona dwa 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 piętnaście

Tabela produktów



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 przekracza 20,00:

|_+_|

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

|_+_|

Możemy również użyć klauzuli WHERE z wartościami łańcuchowymi. To w zasadzie przyrównuje znaki do liczb, gdzie 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:



|_+_|

Co daje wynik:

|_+_|

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 od 15.00 do 20.00, moglibyśmy użyć następującego zapytania:



|_+_|

Daje to wynik pokazany poniżej:

|_+_|

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 NazwaProduktu 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 specjalisty 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.