Субд лекции

Темы:

Запросы

Предикат подобия применяется для поиска подстроки в указанной строке. Предложение 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. Обратное утверждение несправедливо.

предыдущаяследующая