Шаг 6 - Операторы сравнения, логические и специальные в SELECT

В данном разделе используется база данных db_example/custom.

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

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

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

=

Равно

>

Больше чем

<

Меньше чем

>=

Больше или равно

<=

Меньше или равно

<> или !=

Не равно

Пример: найти всех заказчиков с creditLimit выше 59000:

SELECT customerName, creditLimit
FROM customers
WHERE creditLimit > 59000;

Результат:

customerName

creditLimit

Signal Gift Stores

71800

Australian Collectors, Co.

117300

La Rochelle Gifts

118200

Baane Mini Imports

81700

Mini Gifts Distributors Ltd.

210500

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

SQL поддерживает три основных логических оператора:

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

AND

Логическое «И» (возвращает TRUE, если оба условия истинны)

OR

Логическое «ИЛИ» (возвращает TRUE, если хотя бы одно условие истинно)

NOT

Логическое отрицание (инвертирует условие)

Пример с AND: заказчики из Madrid с положительным кредитным лимитом:

SELECT customerName, city, country, creditLimit
FROM customers
WHERE city = 'Madrid' AND creditLimit > 0;

Пример с OR: заказчики из Madrid или Los Angeles:

SELECT customerName, city, country
FROM customers
WHERE city = 'Madrid' OR city = 'Los Angeles';

Пример с NOT: заказчики из Madrid с ненулевым кредитным лимитом:

SELECT customerName, city, country, creditLimit
FROM customers
WHERE city = 'Madrid' AND NOT creditLimit = 0;

Группировка условий

Для группировки условий используются круглые скобки:

SELECT customerName, city, country, creditLimit
FROM customers
WHERE NOT (city = 'Madrid' AND creditLimit = 0);

Специальные операторы

IN - соответствие списку значений

Оператор IN проверяет вхождение значения в список:

SELECT customerName, city, country, creditLimit
FROM customers
WHERE city IN ('Madrid', 'Paris');

BETWEEN - диапазон значений

Оператор BETWEEN проверяет вхождение в диапазон:

SELECT customerName, city, country, creditLimit
FROM customers
WHERE creditLimit BETWEEN 34800 AND 55400;

LIKE - поиск по шаблону

Оператор LIKE ищет строки по шаблону:

  • % - любое количество любых символов

  • _ - ровно один любой символ

Пример: имена, начинающиеся на «O»:

SELECT customerName, city, country, creditLimit
FROM customers
WHERE customerName LIKE 'O%';

IS NULL - проверка на NULL

Для проверки на NULL используется специальный оператор:

SELECT customerName, city, country, creditLimit, postalCode
FROM customers
WHERE postalCode IS NULL;