Wybieranie danych w zakresach w SQL
Wprowadzenie klauzuli WHERE oraz warunku BETWEEN
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.