Предикат подобия применяется для поиска подстроки в указанной строке. Предложение WHERE при использовании предиката этого типа будет иметь следующий вид:
WHERE [NOT]<выражение_для_вычисления_значения_строки_1>
[NOT] LIKE<выражение_для_вычисления_значения_строки_2>.
В качестве <выражения_для_вычисления_значения_строки_1> обычно используется <имя колонки>.
<Выражение_для_вычисления_значения_строки_2> называется образцом. В образце разрешается применять заполнители (трафаретные символы):
· символ подчеркивания (_) - используется вместо любого единичного символа в проверяемом значении;
· символ процента (%) - заменяет набор любых символов в проверяемом значении.
Предположим, что коды металлов начинаются с буквы «м». Тогда запрос, позволяющий вывести сведения о поставке металлов, будет иметь вид
SELECT * FROM post WHERE kod_mat LIKE "м%";
Предикат проверки на неопределенное значение имеет вид
предикат NULL ::=
конструктор значения строки IS [NOT] NULL
Например, если в таблице «Сотрудник» (sotr) есть поле «Ученая_степень» (ych_st), то запрос, выводящий список сотрудников, не имеющих ученых степеней, будет выглядеть следующим образом:
SELECT fio FROM sotr WHERE ych_st IS NULL;
При использовании подзапросов в условии WHERE может быть использован квантор существования EXISTS. Формат условия WHERE в этом случае имеет вид
WHERE [NOT] EXISTS
(<подзапрос>).
EXISTS проверяет, вернул ли подзапрос какие-либо ряды. Фактически любой подзапрос, который может быть выражен с использованием IN, может альтернативным образом быть сформулирован также с использованием EXISTS. Обратное утверждение несправедливо.
предыдущаяследующая