<<
>>

Логические операторы

К логическим относятся операторы, в которых для задания ограничений на от­бор данных используются специальные ключевые слова. В SQL определены следующие логические операторы; Is null, BETWEEN...AND, IN, LIKE, EXISTS, UNIQUE, ALL, ANY.

Оператор IS NULL

Оператор IS NULL предназначен для сравнения текущего значения поля со значе­нием NULL.

Он используется для отбора записей, в некоторое поле которых не за­несено никакого значения.

Для иллюстрации использования этого оператора воспользуемся таблицей Клиен­ты. С помощью приведенного ниже запроса произведем выборку из нее записей, в которых не указано название предприятия:

SELECT Фамилия. Имя. Отчество. Телефон. Город. Адрес FROM Клиенты

WHERE Предприятие IS NULL

Результат выполнения запроса показан на рис. 11.8.

Результат выполнения данного запроса показан на рис.

11.10.

Оператор LIKE

Оператор LIKE применяется для сравнения значения поля со значением, за­данным при помощи шаблонов. Для задания шаблонов используются два сим­вола:

? знак процента (%) — заменяет последовательность символов любой (в том чис­ле и нулевой) длины;

? символ подчеркивания (_) — заменяет любой символ.

Найдем в таблице Клиенты записи, в которых фамилия клиента начинается с бук­вы «М»:

SELECT Фамилия. Имя. Отчество, Телефон

FROM Клиенты

WHERE Фамилия LIKE 'МГ

В результате выполнения этого запроса будет выбрано 4 записи (рис. 11.11).

Рис.

11.11. Использование оператора LIKE с шаблоном в виде символа процента

А теперь найдем в этой же таблице записи, для которых номер телефона начинает­ся с символов (816)025-61, а две последние цифры неизвестны:

SELECT Фамилия. Имя. Отчество. Телефон FROM Клиенты

WHERE Телефон LIKE ' (816)025-61_'

При выполнении данного запроса будут отобраны две записи (рис. 11.12).

Рис. 11.12. Использование оператора LIKE с шаблоном в виде символа подчеркивания

Оператор EXISTS

Оператор EXISTS используется для отбора записей, соответствующих заданному критерию.

Для иллюстрации работы оператора EXISTS рассмотрим следующий пример. Из таблицы Товары требуется отобрать товары, количество продаж которых превыша­ет 10. Сведения о продажах содержатся в поле Продано таблицы Продажи. Для по­лучения необходимой выборки воспользуемся оператором EXISTS:

SELECT Наименование. Цена FROM Товары

WHERE EXISTS (SELECT [Код товара]

FROM Продажи

WHERE (Продажи.Продано>10) AND Товары.[Код товара]=Продажи.[Код товара])

В этом запросе после ключевого слова EXISTS следует оператор SELECT, отбираю­щий из таблицы Продажи записи, для которых количество продаж превышает 10. Оператор EXISTS отбирает из таблицы Товары записи, в которых значение поля Код товара соответствует записям, отобранным из таблицы Продажи. Результат выпол­нения данного запроса приведен на рис. 11.13.

Рис. 11.13. Пример использования оператора EXISTS

ПРИМЕЧАНИЕ ------------------------------------------------------------------------------

При использовании оператора EXISTS (а также еще трех логических операторов: UNIQUE, ALL и ANY) применяется подзапрос — оператор SELECT, следующий за ключевым словом EXISTS и заключенный в круглые скобки.

Более подробно под­запросы будут рассмотрены далее.

Оператор UNIQUE

Оператор UNIQUE используется для проверки записи таблицы на уникальность. По своему действию он аналогичен оператору EXISTS. Единственное отличие заключа­ется в том, что подзапрос, задаваемый после ключевого слова UNIQUE, не должен возвращать более одной записи.

Оператор ALL

Оператор ALL используется для сравнения исходного значения со всеми другими значениями, входящими в некоторый набор данных.

Например, для того чтобы выбрать из таблицы Товары те товары, которые имеют цену большую, чем цена всех товаров, проданных в количестве более 10, использу­ется следующий запрос:

SELECT *

FROM Товары

WHERE Цена>АИ (SELECT Продажи.Цена FROM Продажи

WHERE Продажи.Продано>10)

Результат выполнения данного запроса приведен на рис. 11.14.

Рис. 11.14. Пример использования оператора ALL

Оператор ANY

Оператор ANY применяется для сравнения заданного значения с каждым из значе­ний некоторого набора данных. Если в предыдущем примере заменить оператор ALL оператором ANY, то будет возвращен список товаров, цена которых больше, чем хотя бы у одного из товаров, проданных в количестве больше 10. Результат выпол­нения такого запроса показан на рис. 11.15.

<< | >>
Источник: Избачков Ю. С., Петров В. Н.. Информационные системы. 2006

Еще по теме Логические операторы:

  1. ОШИБКА ОПЕРАТОРА
  2. ДЕЯТЕЛЬНОСТЬ ОПЕРАТОРА
  3. ОПЕРАТОР
  4. ОПЕРАТОР: ПРИЕМ ИНФОРМАЦИИ
  5. ОПЕРАТОР: НАДЕЖНОСТЬ
  6. ОПЕРАТОР: ПОМЕХОУСТОЙЧИВОСТЬ
  7. Профессия оператора: между техникой и искусством
  8. Логическое ударение
  9. МЫШЛЕНИЕ СЛОВЕСНО-ЛОГИЧЕСКОЕ
  10. Логическая последовательность вопросов
  11. 3.2.4. Логический анализ основных понятий
  12. 3.9. Логические ошибки
  13. По единому логическому основанию