Оператор OR. Sql оператор in


Руководство по SQL. Операторы. – PROSELYTE

Оператор – это зарезервированное слово, или символ, который используется в SQL выражениях с использованием WHERE для выполнения операции или операций, например, сравнение.

Операторы используется для описания условий в SQL выражении и для обслуживания группы SQL выражений.

В языке структурированных запросов SQL существует четыре типа операторов:

Арифметические операторы

Предположим, что A = 100 и B = 200

Ссылка на примеры

Оператор Описание Пример
+ Сложение – добавляет значение с другой стороны оператора A + B = 300
Вычитание – отнимает значение справа от значения слева от оператора A + B = -100
* Умножение – умножает значения по обе стороны от оператора A * B = 20000
/ Деление – делит левое значение на правое значение от оператора B / A = 2
% Остаток от деления – делит левое значение на правое от оператора и возвращает остаток от деления. B % A = 0

Операторы сравнения

Предположим, что A = 100 и B = 200

Ссылка на примеры

Оператор Описание Пример
= Проверяет, равны ли значения слева и справа от оператора. Если да – возвращает true, если нет – false (A = B) – false
!= Проверяет, равны ли значения слева и справа от оператора. Если да – возвращает false, если нет – true (A != B) – true
<> Проверяет, равны ли значения слева и справа от оператора. Если да – возвращает false, если нет – true (A <> B) – true.
> Проверяет, больше ли значение слева, чем значение справа от оператора. Если да – возвращает true, если нет – false (A > B) – false
< Проверяет, меньше ли значение слева, чем значение справа от оператора. Если да – возвращает true, если нет – false (A < B) – true
>= Проверяет, больше ли или равно значение слева, чем значение справа от оператора. Если да – возвращает true, если нет – false (A >= B) – false
<= Проверяет, меньше ли или равно значение слева, чем значение справа от оператора. Если да – возвращает true, если нет – false (A <= B) – true
!< Проверяет, чтобы значение слева было не меньше, чем значение справа от оператора. Если да – возвращает true, если нет – false. (A !< B) – false
!> Проверяет, чтобы значение слева было не больше, чем значение справа от оператора. Если да – возвращает true, если нет – false. (A !> B) – true

Логические операторы

Ссылка на примеры

Оператор Описание
ALL Используется для сравнения занчения со всеми значениями в другом множестве значений.
AND Разрешает существование нескольких условий в условии WHERE выражения SQL.
ANY Сравнивает значение с любым применимым значением в списке в соответствии с условием.
BETWEEN Ищет значения в указанном диапазоне.
EXISTS Ищет запись в таблице, которая соответствует заданным критериям.
IN Сравнивает значение в списке определённых буквенных значений.
LIKE Сравнивает значение, которое похоже на опредлённый шаблон.
NOT Делает логический оператор противоположным. Например, NOT IN, NOT EXISTS и т.д.
OR Комбинирует несколько условий в SQL выражении.
IS NULL Сравнивает значение с NULL.
UNIQUE Проверяет каждую запись в таблице на уникальность.

На этом мы заканчиваем изучение операторов языка структурированных запросов SQL.В следующей статье мы рассмотрим выражения (expressions) в языке SQL.

proselyte.net

MS SQL Server и T-SQL

Операторы фильтрации

Последнее обновление: 13.07.2017

Оператор IN

Оператор IN позволяет определить набор значений, которые должны иметь столбцы:

WHERE выражение [NOT] IN (выражение)

Выражение в скобках после IN определяет набор значений. Этот набор может вычисляться динамически на основании, например, еще одного запроса, либо это могут быть константные значения.

Например, выберем товары, у которых производитель либо Samsung, либо Xiaomi, либо Huawei:

SELECT * FROM Products WHERE Manufacturer IN ('Samsung', 'Xiaomi', 'Huawei')

Мы могли бы все эти значения проверить и через оператор OR:

SELECT * FROM Products WHERE Manufacturer = 'Samsung' OR Manufacturer = 'Xiaomi' OR Manufacturer = 'Huawei'

Но использование оператора IN гораздо удобнее, особенно если подобных значений очень много.

С помощью оператора NOT можно найти все строки, которые, наоборот, не соответствуют набору значений:

SELECT * FROM Products WHERE Manufacturer NOT IN ('Samsung', 'Xiaomi', 'Huawei')

Оператор BETWEEN

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

WHERE выражение [NOT] BETWEEN начальное_значение AND конечное_значение

Например, получим все товары, у которых цена от 20 000 до 40 000 (начальное и конечное значения также включаются в диапазон):

SELECT * FROM Products WHERE Price BETWEEN 20000 AND 40000

Если надо, наоборот, выбрать те строки, которые не попадают в данный диапазон, то применяется оператор NOT:

SELECT * FROM Products WHERE Price NOT BETWEEN 20000 AND 40000

Также можно использовать более сложные выражения. Например, получим товары, запасы которых на определенную сумму (цена * количество):

SELECT * FROM Products WHERE Price * ProductCount BETWEEN 100000 AND 200000

Оператор LIKE

Оператор LIKE принимает шаблон строки, которому должно соответствовать выражение.

WHERE выражение [NOT] LIKE шаблон_строки

Для определения шаблона могут применяться ряд специальных символов подстановки:

  • %: соответствует любой подстроке, которая может иметь любое количество символов, при этом подстрока может и не содержать ни одного символа

  • _: соответствует любому одиночному символу

  • [ ]: соответствует одному символу, который указан в квадратных скобках

  • [ - ]: соответствует одному символу из определенного диапазона

  • [ ^ ]: соответствует одному символу, который не указан после символа ^

Некоторые примеры использования подстановок:

  • WHERE ProductName LIKE 'Galaxy%'

    Соответствует таким значениям как "Galaxy Ace 2" или "Galaxy S7"

  • WHERE ProductName LIKE 'Galaxy S_'

    Соответствует таким значениям как "Galaxy S7" или "Galaxy S8"

  • WHERE ProductName LIKE 'iPhone [78]'

    Соответствует таким значениям как "iPhone 7" или "iPhone8"

  • WHERE ProductName LIKE 'iPhone [6-8]'

    Соответствует таким значениям как "iPhone 6", "iPhone 7" или "iPhone8"

  • WHERE ProductName LIKE 'iPhone [^7]%'

    Соответствует таким значениям как "iPhone 6", "iPhone 6S" или "iPhone8". Но не соответствует значениям "iPhone 7" и "iPhone 7S"

  • WHERE ProductName LIKE 'iPhone [^1-6]%'

    Соответствует таким значениям как "iPhone 7", "iPhone 7S" и "iPhone 8". Но не соответствует значениям "iPhone 5", "iPhone 6" и "iPhone 6S"

Применим оператор LIKE:

SELECT * FROM Products WHERE ProductName LIKE 'iPhone [6-8]%'

metanit.com

Оператор OR | SQL Программирование

Таким образом, оператор OR позволил поместить в запрос совершенно несвязные критерии. Идентификатор клиента, разместившего заказ 30661, совсем не 63, но тем не менее он все равно присутствует в результирующем наборе данных. Мы указали, что нас интересуют заказы клиента 63 независимо от их номеров и заказ 30661, независимо от того, кто его разместил. Именно поэтому мы использовали оператор OR (или). Если бы мы использовали оператор AND (и), то не получили бы ни одной записи, поскольку клиент 63 заказа 30661 не размещал (т. е. одновременно двум заданным критериям ни одна запись таблицы не отвечает). Конечно, можно использовать объединение двух операторов сравнения (> и <) для получения записей, попадающих в заданный диапазон значений, но тот же результат можно получить и более изящно, используя оператор BETWEEN. Обратите внимание, что в диапазон значений включаются его границы, заданные в операторе BETWEEN. Однако такой режим работы характерен только для чисел. Если в критерии будут использоваться другие типы данных (к примеру, символы, даты и т. п.), результаты могут быть другими. Оператор BETWEEN может использоваться практически с любыми типами данных. Если в предложении WHERE есть несколько условий отбора и ни одно из них не задает диапазон, можно воспользоваться оператором OR. Рассмотрим пример. Все записи, которые соответствуют любому из трех заданных критериев, попадут в результирующий набор данных. Тот же результат легче получить с помощью оператора IN. Оператор IN упрощает жизнь, заменяя собой множество операторов OR и ускоряя таким образом выполнение запросов. Также этот оператор очень практично использовать совместно с подзапросами, возвращающими нужный набор значений. Следующий запрос возвращает информацию о заказах, размещенных клиентами с хорошей кредитной историей. О том, как использовать подзапросы в предложении WHERE, читайте далее.

Похожие публикации

new-techs.ru