SQL - Оператор BETWEEN
Привет, будущие маги SQL! Сегодня мы отправимся в увлекательное путешествие в мир оператора BETWEEN. Как ваш добрый сосед по компьютерным наукам, я здесь, чтобы направить вас через это приключение с множеством примеров и капелькой юмора. Так что возьмите свои виртуальные палочки (клавиатуры), и начнем!
Оператор BETWEEN в SQL
Представьте, что вы организовываете вечеринку и хотите пригласить друзей, чей возраст находится в определенном диапазоне. Именно так действует оператор BETWEEN в SQL - он помогает нам выбрать данные в определенном диапазоне. Давайте окунемся!
Основная Синтаксис
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
Это может показаться немного пугающим сначала, но не волнуйтесь! Мы разберем это на примерах.
Пример 1: Выбор Продуктов в Диапазоне Цен
Давайте представим, что у нас есть таблица "Products" в нашей базе данных интернет-магазина. Мы хотим найти все продукты, цены на которые находятся между $50 и $100.
SELECT * FROM Products
WHERE Price BETWEEN 50 AND 100;
Этот запрос вернет все столбцы (*) из таблицы Products, где Цена находится между $50 и $100, включительно. Это как спросить: "Покажи мне все продукты, которые стоят как минимум $50, но не более $100."
Пример 2: Диапазоны Дат
Оператор BETWEEN не только для чисел. Он также отлично работает с датами! Представим, что у нас есть таблица "Orders" и мы хотим найти все заказы, сделанные в 2023 году.
SELECT * FROM Orders
WHERE OrderDate BETWEEN '2023-01-01' AND '2023-12-31';
Этот запрос выбирает все заказы с датами с 1 января 2023 года по 31 декабря 2023 года. Это как спросить вашу базу данных: "Какие заказы мы получили в 2023 году?"
Оператор BETWEEN с Оператором IN
Теперь давайте добавим немного остроты! Мы можем combine BETWEEN с оператором IN для более сложных запросов. Представьте это как создание списка гостей на вашу вечеринку с определенными возрастными диапазонами и именами.
Пример 3: Combining BETWEEN и IN
Предположим, мы хотим найти сотрудников, которые находятся в возрасте от 25 до 35 лет и работают либо в IT, либо в HR отделе.
SELECT * FROM Employees
WHERE (Age BETWEEN 25 AND 35)
AND Department IN ('IT', 'HR');
Этот запрос можно представить как: "Покажи мне всех сотрудников в возрасте от 25 до 35 лет, которые работают в IT или HR." Это отличной способ сузить圈子 поиска критериев.
Оператор BETWEEN с Оператором UPDATE
Иногда нам нужно обновить данные в определенном диапазоне. Давайте посмотрим, как мы можем использовать BETWEEN в операторе UPDATE.
Пример 4: Обновление Зарплат
Представим, что мы хотим дать 10% raise всем сотрудникам, зарабатывающим от $50,000 до $70,000.
UPDATE Employees
SET Salary = Salary * 1.10
WHERE Salary BETWEEN 50000 AND 70000;
Этот запрос увеличивает зарплату на 10% для всех сотрудников в указанном диапазоне зарплат. Это как дать bonus вашим сотрудникам среднего дохода!
Оператор BETWEEN с Оператором DELETE
Оператор BETWEEN также можно использовать с операторами DELETE, когда вам нужно удалить данные в определенном диапазоне.
Пример 5: Удаление Старых Записей
Представим, что мы хотим удалить все заказы 2020 года, чтобы почистить нашу базу данных.
DELETE FROM Orders
WHERE OrderDate BETWEEN '2020-01-01' AND '2020-12-31';
Этот запрос удаляет все заказы, сделанные в 2020 году. Это как сделать цифровую весеннюю уборку для вашей базы данных!
Оператор NOT BETWEEN
А что, если мы хотим найти данные за пределами определенного диапазона? Вот где на помощь приходит оператор NOT BETWEEN.
Пример 6: Поиск Продуктов за Пределами Диапазона Цен
Давайте найдем все продукты, которые стоят дешевле $20 или дороже $100.
SELECT * FROM Products
WHERE Price NOT BETWEEN 20 AND 100;
Этот запрос возвращает все продукты с ценами меньше $20 или больше $100. Это как спросить: "Покажи мне бюджетные и роскошные товары, но ничего между ними."
Оператор NOT BETWEEN с Оператором IN
Lastly, let's combine NOT BETWEEN with the IN operator for even more precise queries.
Пример 7: Сложный Запрос Исключения
Предположим, мы хотим найти сотрудников, которые не находятся в возрасте от 30 до 50 лет и не работают в отделах продаж или маркетинга.
SELECT * FROM Employees
WHERE (Age NOT BETWEEN 30 AND 50)
AND Department NOT IN ('Sales', 'Marketing');
Этот запрос находит сотрудников, которые либо моложе 30 лет, либо старше 50, и которые не работают в отделах продаж или маркетинга. Это как сказать: "Покажи мне молодых и опытных сотрудников, которые не работают в наших клиентоориентированных отделах."
Обобщение Methods Оператора BETWEEN
Вот удобная таблица, резюмирующая различные способы использования оператора BETWEEN:
Method | Описание | Пример |
---|---|---|
BETWEEN | Выбирает значения в заданном диапазоне | WHERE Price BETWEEN 50 AND 100 |
BETWEEN с Датами | Выбирает даты в заданном диапазоне | WHERE OrderDate BETWEEN '2023-01-01' AND '2023-12-31' |
BETWEEN с IN | Combines range и list selection | WHERE (Age BETWEEN 25 AND 35) AND Department IN ('IT', 'HR') |
BETWEEN в UPDATE | Обновляет значения в диапазоне | UPDATE Employees SET Salary = Salary * 1.10 WHERE Salary BETWEEN 50000 AND 70000 |
BETWEEN в DELETE | Удаляет записи в диапазоне | DELETE FROM Orders WHERE OrderDate BETWEEN '2020-01-01' AND '2020-12-31' |
NOT BETWEEN | Выбирает значения за пределами диапазона | WHERE Price NOT BETWEEN 20 AND 100 |
NOT BETWEEN с IN | Combines exclusion диапазона и списка | WHERE (Age NOT BETWEEN 30 AND 50) AND Department NOT IN ('Sales', 'Marketing') |
И вот мы и добрались до конца,朋友们! Мы совершили путешествие по земле операторов BETWEEN, от базовых селектов до сложных запросов. Помните, что практика делает perfect, так что не бойтесь экспериментировать с этими запросами на своих наборах данных. Счастливого SQL-программирования, и пусть ваши запросы всегда возвращают те результаты, которые вы ищете!
Credits: Image by storyset