Отслеживание отсутствия значений (NULL)
Проверка на соответствие шаблону (LIKE)
Проверка на членство во множестве (IN)
Проверка на принадлежность диапазону значений (BETWEEN)
Синтаксис:
<выражение1> [NOT] BETWEEN <выражение2> AND <выражение3>
Данная проверка возвращает True (Истина), если:
<выражение1> Î[<выражение2>;<выражение3>]
Чаще всего <выражение1> - имя столбца таблицы, <выражение2>, <выражение3> - константы.
Пример 10. Вывести названия мелодий с кодами (ID) от 5 до 15 включительно.
SELECT ID, NAZV
FROM MELODII
WHERE ID BETWEEN 5 AND 15
Синтаксис:
<выражение> [NOT] IN (<выражение1>[,<выражение2>][,…])
Данная проверка возвращает True (Истина), если <выражение> равно одному из выражений в круглых скобках.
Чаще всего <выражение> - имя столбца таблицы, <выражение1>, <выражение2> и т.д. - константы.
Примечание. Вместо списка значений в круглых скобках может быть вложенный запрос SELECT, возвращающий такой список. Вложенные запросы будут рассмотрены позже.
Пример 11. Вывести номера телефонов, принадлежащих контактам с кодами (ID) 1, 2, 4, 5.
SELECT NOMER, KONT_ID
FROM NOMERA
WHERE KONT_ID IN (1,2,4,5)
Пример 12. Вывести номера телефонов, не принадлежащих контактам с кодами 1, 2, 4, 5.
SELECT NOMER, KONT_ID
FROM NOMERA
WHERE KONT_ID NOT IN (1,2,4,5)
Используется только для текстового типа данных.
Синтаксис:
<проверяемое значение> [NOT] LIKE <шаблон>
Данная проверка возвращает True (Истина), если проверяемое значение соответствует шаблону (похоже на шаблон).
В качестве проверяемого значения обычно выступает имя столбца таблицы, для которого установлен текстовый тип данных.
Шаблон представляет собой текстовое значение (заключенное в кавычки) с подстановочными символами «*» (звездочка) и/или «?» (вопросительный знак). Символ «*» в шаблоне заменяет любое количество (даже ноль) любых символов, а символ «?» заменяет один любой символ в конкретной позиции. Примеры шаблонов и соответствующие им текстовые значения приведены в таблице 13.1
Таблица 13.1 – Примеры шаблонов
Шаблон | Соответствующие текстовые строки |
«*» | Любые (даже пустые) строки |
«????» | Строки, состоящие из 4 любых символов |
«*а*» | Строки, в которых есть символ «а» |
«*я?» | Строки, в которых предпоследний символ «я» |
Пример 13. Вывести номера телефонов оператора TELE2 с кодом 953.
SELECT NOMER
FROM NOMERA
WHERE NOMER LIKE “*(953)*”
Как уже говорилось выше, если в некоторой ячейке таблицы значение отсутствует, то говорят, что значение в этой ячейке есть NULL.
Для того чтобы отследить такие ситуации, необходимо использовать конструкцию следующего вида:
<имя столбца> IS [NOT] NULL
Данная проверка возвращает True (Истина), если в указанном столбце значение отсутствует.
Пример 14. Вывести список групп контактов, для которых не указана мелодия.
SELECT ID, NAZV, MEL_ID
FROM GRUPPY
WHERE MEL_ID IS NULL
Примечание. Выражение вида <значение>=NULL не является синтаксической ошибкой, но всегда будет возвращать NULL (Неизвестно) и никогда True (Истина).