В Язык структурированных запросов (SQL) предоставляет пользователям баз данных возможность создавать индивидуальные запросы для извлечения информации из баз данных. В предыдущей статье мы исследовали извлечение информации из базы данных. использование запросов SQL SELECT. Давайте расширим это обсуждение и узнаем, как вы можете выполнять расширенные запросы для получения данных, которые соответствует конкретным условиям.
Рассмотрим пример, основанный на обычно используемых Северный ветер database, который часто поставляется с продуктами баз данных в качестве учебного пособия.
Вот выдержка из таблицы Product базы данных:
Идантификационный номер продукта | Наименование товара | SupplierID | QuantityPerUnit | Цена за единицу | Единицы |
---|---|---|---|---|---|
1 | Чай | 1 | 10 коробок х 20 пакетов | 18.00 | 39 |
2 | Чанг | 1 | Бутылки 24 - 12 унций | 19.00 | 17 |
3 | Анисовый сироп | 1 | 12 бутылочек - 550 мл | 10.00 | 13 |
4 | Приправа для каджуна от шеф-повара Антона | 2 | 48 - банки по 6 унций | 22.00 | 53 |
5 | Гамбо микс от шеф-повара Антона | 2 | 36 коробок | 21.35 | 0 |
6 | Бабушкин Бойзеновый спред | 3 | Банки 12-8 унций | 25.00 | 120 |
7 | Органические сушеные груши дяди Боба | 3 | 12 - 1 фунт уп. | 30.00 | 15 |
Простые граничные условия.
Первые ограничения, которые мы наложим на наш запрос, связаны с простыми граничными условиями. Мы можем указать их в предложении WHERE запроса SELECT, используя простые операторы условий, построенные с помощью стандартных операторов, таких как ,> = и <=.
Во-первых, давайте попробуем выполнить простой запрос, который позволяет нам извлечь список всех продуктов в базе данных, у которых UnitPrice больше 20.00:
ВЫБЕРИТЕ ProductName, UnitPrice
ИЗ продуктов
ГДЕ UnitPrice> 20.00
В результате получается список из четырех продуктов, как показано ниже:
ProductName UnitPrice
Гамбо Микс от шеф-повара Антона 21.35
Приправа для каджуна от шеф-повара Антона 22.00
Паста Бабушкина Бойзенберри 25.00
Органические сушеные груши дяди Боба 30.00
Мы также можем использовать предложение WHERE со строковыми значениями. Это в основном приравнивает символы к числам, где A представляет значение 1, а Z представляет значение 26. Например, мы могли бы показать все продукты с названиями, начинающимися с U, V, W, X, Y или Z, с помощью следующего запроса:
ВЫБЕРИТЕ ProductName
ИЗ продуктов
ГДЕ ProductName> = 'T'
Что дает результат:
Наименование товара
Органические сушеные груши дяди Боба
Выражение диапазонов с помощью границ
Предложение WHERE также позволяет нам реализовать условие диапазона для значения, используя несколько условий. Например, если мы хотим взять наш запрос выше и ограничить результаты продуктами с ценами от 15 до 20, мы могли бы использовать следующий запрос:
ВЫБЕРИТЕ ProductName, UnitPrice
ИЗ продуктов
ГДЕ UnitPrice> 15.00 И UnitPrice <20.00
Это дает результат, показанный ниже:
ProductName UnitPrice
Чай 18.00
Чанг 19.00
Выражение диапазонов с помощью BETWEEN
SQL также предоставляет сокращенный синтаксис BETWEEN, который сокращает количество условий, которые нам нужно включить, и делает запрос более читабельным. Например, вместо использования двух условий WHERE, приведенных выше, мы могли бы выразить тот же запрос как:
ВЫБЕРИТЕ ProductName, UnitPrice
ИЗ продуктов
ГДЕ UnitPrice МЕЖДУ 15.00 И 20.00
Как и другие наши предложения условий, BETWEEN также работает со строковыми значениями. Если бы мы хотели составить список всех стран, начинающихся с V, W или X, мы могли бы использовать запрос:
ВЫБЕРИТЕ ProductName
ИЗ продуктов
ГДЕ ProductName МЕЖДУ "A" и "D"
Что дает результат:
Наименование товара
Анисовый сироп
Чай
Чанг
Гамбо микс от шеф-повара Антона
Приправа для каджуна от шеф-повара Антона
Предложение WHERE - это мощная часть языка SQL, которая позволяет ограничивать результаты значениями, попадающими в указанные диапазоны. Он очень часто используется для выражения бизнес-логики и должен быть частью набора инструментов каждого специалиста по базам данных. Часто бывает полезно включить общие предложения в хранимую процедуру, чтобы сделать ее доступной для тех, кто не знает SQL.