SQL

Опeратор Between в Oracle SQL: включает границы или нет. Примеры использования

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

Оператор BETWEEN в SQL в основном используется в качестве условия рядом с другими операторами, которые задают действие команде. Например, с операторами:

  • SELECT — «выбирать»;
  • INSERT — «вставлять»;
  • UPDATE — «обновить»;
  • DELETE — «удалить».

То есть фактически BETWEEN  определяет лишь диапазон действий в SQL, а не само действие. Общий синтаксис оператора BETWEEN в SQL такой:

  <описание выражения> BETWEEN <нижнее значение диапазона> AND <верхнее значение диапазона>

 

В «описание выражения» входит:

  • оператор, определяющий действие (SELECT, INSERT, UPDATE, DELETE);
  • идентификация столбца, где ограничить диапазон исчисления.

Включает ли границы оператор BETWEEN в SQL?

Да, оператор BETWEEN в SQL включает границы диапазона. Под границами подразумевают верхнее и нижнее значения диапазона, которые входят в исчисление. Например, вы хотите  извлечь из таблицы идентификаторы автомобилей (autoname_id) с определенным объемом продаж (от 100000 до 200000 штук за год). Объемы продаж располагаются в столбце «volum_sales». В этом случае синтаксис инструкции будет такой:

SELECT autoname_id FROM autonames WHERE volum_sales BETWEEN 100000 AND 200000

Главное, что нужно знать о границах в диапазоне в этом случае, что значения «100000» и «200000» определяют диапазон и они включены в выборку. То есть автомобили с объемом 200000 штук в год попадут в выборку, а 200001 уже нет. То же самое с нижней границей: автомобили с объемом 100000 штук в год попадут в выборку, а 99999 уже нет.

Оператор  BETWEEN в SQL: примеры

Как мы уже говорили, что оператор BETWEEN в SQL работает с числами, датами и текстом. В его работе наблюдаются следующие особенности:

  1. Когда взаимодействие оператора происходит с числами, тогда верхняя и нижняя границы входят в выборку.

  2. Нижнее значение диапазона обязательно должно быть меньше чем верхнее значение. Если это условие не соблюдается, тогда диапазон значений не будет выделен, а значит команда с оператором BETWEEN не сработает.  Важно помнить об этой особенности, когда в качестве аргументов диапазона оператора BETWEEN используются не конкретные значения, а переменные.

  3. Когда взаимодействие оператора  BETWEEN происходит с текстом, тогда значения границ диапазона не входят в выборку.

Рассмотрим примеры использования  BETWEEN в SQL.

Чаще всего оператор  BETWEEN в качестве аргумента диапазона использует числовое значение. Например, как в примере выше, когда мы выводили идентификаторы проданных автомобилей в зависимости от объема их продаж:

SELECT autoname_id FROM autonames WHERE volum_sales BETWEEN 100000 AND 200000

Практически, оператор  BETWEEN можно использовать по отношению к любому столбцу. То есть неважно какие аргументы содержит столбец, потому что практически любым аргументам можно задать диапазон и выделить по нему какую-то информацию. Например, у нас есть некая таблица с различной информацией, где в одном из столбцов указаны даты. Пусть это будут даты регистрации пользователей и нам нужно выяснить какие пользователи были зарегистрированы в определенный диапазон дат.  В этом случае мы можем в качестве аргумента диапазона задать определение дат. Вот как в этом случае будет выглядеть SQL-запрос:

SELECT

FROM  customers 

WHERE customers_date BETWEEN "2022/02/22" AND "2022/05/19";

 

В данном случае: "customers" это название таблицы с пользователями, а "customers_date" это столбец с датами регистрации пользователей. Нужно отметить, что такой синтаксис работает с SQL Server, PostgreSQL, SQLite. Когда дело касается Oracle SQL, тогда тут будет несколько иной синтаксис команды и другая форма написания даты. Тут нужно дополнительно задействовать специальную функцию "TO_DATE". В этом случае  синтаксис команды будет такой:

SELECT

FROM customers

WHERE customers_date BETWEEN TO_DATE ('22.02.2022', 'dd.mm.yyyy')

AND TO_DATE ('19.05.2022', 'dd.mm.yyyy');

 

Но и это еще не все. В СУБД MySQL и MariaDB, чтобы задать диапазон по дате, нужно задействовать функцию CAST. В этом случае синтаксис команды будет выглядеть так:

SELECT

FROM customers

WHERE customers_data BETWEEN CAST ('2022/02/22' AS DATE) AND CAST('2022/05/19' AS DATE)

 

Оператор  BETWEEN в SQL может применяться рядом с другим оператором "NOT". В этом случае в качестве ответа на запрос нам будут предоставлены все значения, которые не входят в выбранный диапазон. То есть без оператора NOT мы получаем значения из обозначенного диапазона, а с оператором NOT мы получаем значения вне диапазона. Например:

 

SELECT

FROM  customers 

WHERE customers_date NOT BETWEEN "2022/02/22" AND "2022/05/19";

 

Этот запрос нам выдаст список покупателей, которые были зарегистрированы в любое время кроме диапазона 22.02.2022-19.05.2022.

Заключение

Оператор BETWEEN активно применяется в SQL. Главное, что о нем нужно запомнить он создает диапазон значений, из которого мы можем извлекать какую-то информацию. Если нужно, тогда мы можем извлекать информацию вне диапазона значений, тогда необходимо задействовать дополнительный SQL-оператор "NOT".

Синтаксис написания запросов с оператором  BETWEEN в разных СУДБ отличается. Поэтому перед применением этого оператора почитайте инструкцию его применения в вашей СУБД, чтобы не возникало дополнительных проблем.

Схожие статьи

Что такое MariaDB, где используется эта система управления
SQL

Что такое MariaDB, где используется эта система управления

SQL

Как восстановить базу данных MySQL из дампа быстро и просто

Подключение к базе данных MySQL на Python: создание на SQLite3
SQL

Подключение к базе данных MySQL на Python: создание на SQLite3

SQL

Как обновить SQL Server правильно, чтобы ничего не поломать

×