Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

Оператор EXISTS

Оператор EXISTSОператор EXISTS проверяет наличие строк, соответствующих значениям в результатах подзапроса; при этом сам подзапрос может обращаться к той же или другой таблице (см. главу 8) или их комбинации. Данный оператор функционально идентичен во всех трех ведущих СУБД. Использование оператора EXISTS зависит от IN (они обычно используются в коррелирующих запросах). Следующий запрос SQL выдает результаты, идентичные ранее показанным примерам. Использование дополнительного ограничения (order_line. ordline_prodid_fn=pro — duct. prod_id_n) необходимо для лимитирования вывода теми записями таблицы PRODUCT, которым соответствуют записи таблицы ORDER_LINE, т. е. только теми товарами, которые были когда-либо заказаны. В отсутствие этого условия запрос вернет все записи таблицы PRODUCT. Предварение имени столбца именем таблицы необязательно — в данном примере это сделано исключительно с целью иллюстрирования коррелирующих запросов. Оператор exists возвращает значение true с любым непустым списком значений. К примеру, следующий запрос вернет все записи таблицы product, поскольку подзапрос всегда возвращает значение true. Использование оператора NOT в связке с оператором EXISTS позволяет вернуть записи, соответствующие непустому результирующему набору данных подзапроса. Оператор LIKE можно использовать, когда критерий в предложении WHERE запроса SELECT известен только частично. В нем может быть задействовано множество символов макроподстановки (табл. 11.4), которые определяют отсутствующую часть значения. Шаблон должен следовать за ключевым словом LIKE. Данный запрос извлекает записи из представления, в котором имя таблицы начинается с символов ORD, за которыми следует неопределенное количество других символов. За ними должен следовать символ подчеркивания с последующей буквой L, после которой может находиться неопределенное количество любых символов. Так как символ подчеркивания в качестве макроподстановки имеет специальное значение, его нужно предварять символом косой черты (/). Как видите, имя таблицы ORDER_LINE удовлетворяет всем этим требованиям.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *