Шаг 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 поддерживает три основных логических оператора:
|
Логическое «И» (возвращает TRUE, если оба условия истинны) |
|
Логическое «ИЛИ» (возвращает TRUE, если хотя бы одно условие истинно) |
|
Логическое отрицание (инвертирует условие) |
Пример с 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;