Выбор данных в диапазонах в SQL

Введение предложения WHERE и условия BETWEEN

Язык структурированных запросов (SQL) предоставляет пользователям базы данных возможность создавать настраиваемые запросы для извлечения информации из баз данных. В предыдущей статье мы рассмотрели извлечение информации из базы данных с помощью запросов SQL SELECT. Давайте углубимся в это обсуждение и рассмотрим, как можно выполнять расширенные запросы для извлечения данных, соответствующих определенным условиям.

Давайте рассмотрим пример, основанный на широко используемой базе данных Northwind, которая часто поставляется с продуктами баз данных в качестве учебного пособия. ,

Вот выдержка из таблицы продуктов базы данных:

Код товара
Наименование товара
SupplierID
QuantityPerUnit
Цена за единицу
UnitsInStock








1 Чай 1 10 коробок по 20 сумок 18,00 39
2 Chang 1 бутылки на 24 – 12 унций 19,00 17
3 Сироп анисовый 1 12 – 550 мл флаконы 10,00 13
4 Приправа Cajun шеф-повара Антона 2 банки на 48 – 6 унций 22,00 53
5 Шеф-повар Антон Gumbo Mix 2 36 коробок 21,35 0
6 Бабушкин спрей “Boysenberry” 3 банки на 12 – 8 унций 25,00 120
7 Органические сушеные груши дяди Боба 3 12 – 1 фунт фунтов. 30,00 15

Простые граничные условия

Первые ограничения, которые мы наложим на наш запрос, касаются простых граничных условий. Мы можем указать их в предложении WHERE запроса SELECT, используя простые операторы условия, созданные с помощью стандартных операторов, таких как,> = и <=.


Во-первых, давайте попробуем простой запрос, который позволит нам извлечь список всех продуктов в базе данных, у которых UnitPrice превышает 20,00:

 ВЫБЕРИТЕ ProductName, UnitPrice
ИЗ продуктов
ГДЕ ЕдиницаЦена> 20,00

Это создает список из четырех продуктов, как показано ниже:

 ProductName UnitPrice
------- --------
Шеф-повар Антона Гамбо Микс 21,35
Cajun Приправа шеф-повара Антона 22.00
Бабушкин Бойзенберри Спред 25.00
Органические сушеные груши дяди Боба 30.00

Мы также можем использовать предложение WHERE со строковыми значениями. Это в основном приравнивает символы к числам, где A представляет значение 1, а Z представляет значение 26. Например, мы могли бы показать все продукты с именами, начинающимися с U, V, W, X, Y или Z, с помощью следующего запроса:

 ВЫБЕРИТЕ ProductName
ИЗ продуктов
ГДЕ ProductName> = 'T'

Который дает результат:

 ProductName
-------
Органические сушеные груши дяди Боба

Выражение диапазонов с использованием границ

Предложение WHERE также позволяет нам реализовать условие диапазона для значения, используя несколько условий. Например, если мы хотим взять наш запрос выше и ограничить результаты продуктами с ценами от 15.00 до 20.00, мы могли бы использовать следующий запрос:

 ВЫБЕРИТЕ ProductName, UnitPrice
ИЗ продуктов
ГДЕ UnitPrice> 15,00 И UnitPrice <20,00 

Это дает результат, показанный ниже:

 ProductName UnitPrice
------- --------
Чай 18.00
Чанг 19.00

Выражение диапазонов между

SQL также предоставляет сокращенный синтаксис BETWEEN, который уменьшает количество условий, которые мы должны включить, и делает запрос более читабельным. Например, вместо использования двух условий WHERE, описанных выше, мы можем выразить тот же запрос:

 ВЫБЕРИТЕ ProductName, UnitPrice
ИЗ продуктов
ГДЕ ЕДИНАЯЦЕНА МЕЖДУ 15.00 И 20.00

Как и в случае с другими нашими условиями, BETWEEN также работает со строковыми значениями. Если бы мы хотели создать список всех стран, начинающихся с V, W или X, мы могли бы использовать запрос:

 ВЫБЕРИТЕ ProductName
ИЗ продуктов
ГДЕ ProductName МЕЖДУ «А» и «D»

Который дает результат:

 ProductName
-------
Анисовый сироп
Chai
Чанг
Шеф-повар Антон Гамбо Микс
Cajun Seasoning от шеф-повара Антона 

Предложение WHERE является мощной частью языка SQL, которая позволяет ограничивать результаты значениями, попадающими в указанные диапазоны. Он очень часто используется, чтобы помочь выразить бизнес-логику и должен быть частью инструментария каждого специалиста по базам данных. Часто полезно включать общие выражения в хранимую процедуру, чтобы сделать ее доступной для тех, кто не знает SQL.

Оцените статью
Solutics.ru
Добавить комментарий