Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
69
Добавлен:
23.11.2017
Размер:
3.23 Mб
Скачать

Проверка на равенство значению null

Результатом вычисления рассмотренных условий поиска может одно из трех значений: TRUE, FALSE или NULL (например, если один из столбцов содержит значение NULL).

Вряде случаев бывает необходимо проверять значения в столбцах на равенство значениюNULL и помещать соответствующие строки в таблицу результатов. Для этого в языке SQL предусмотрена специальная проверка на равенство значению NULL (рис. 8.10).

В следующем операторе проверка на NULL используется для определения свободных номеров телефонов:

SELECT * FROM TPHONE

WHERE ADR IS NULL

Инвертированная форма проверки на NULL позволяет отыскать строки, которые не содержат значения NULL. Например, список номеров телефонов, установленных в квартирах, формирует оператор

SELECT * FROM TPHONE

WHERE ADR IS NOT NULL

В отличие от условий поиска, рассмотренных ранее, проверка на NULL не может возвратить значение NULL в качестве результата. Она всегда возвращает TRUE или FALSE.

Составные условия поиска

Все описанные простые условия поиска можно объединить в более сложные с помощью ключевых слов AND, OR, NOT. Возможность использования составных условий поиска предусмотрена правилами записи предложения WHERE (рис. 8.11), уточняющими ранее приведенную на рис.8.4 форму этого предложения в составе оператораSELECT.

Ключевые слова AND, OR, NOT являются операторами логических операций И, ИЛИ, НЕ. С помощью этих операторов и круглых скобок можно создавать очень сложные условия поиска. Например, проверку на членство в множестве NOM IN (1,3,5,9) можно задать другим (менее удачным) условием поиска:

(NOM=1) OR (NOM=3) OR (NOM=5) OR (NOM=9)

Таблицы истинности для операторов AND, OR, NOT учитывают наличие значения NULL (см. табл. 8.2).

Таблица 8.2

Таблицы истинности

AND

TRUE

FALSE

NULL

TRUE

FALSE

NULL

TRUE

FALSE

NULL

FALSE

FALSE

FALSE

NULL

FALSE

NULL

OR

TRUE

FALSE

NULL

TRUE

FALSE

NULL

TRUE

TRUE

TRUE

TRUE

FALSE

NULL

TRUE

NULL

NULL

NOT

FALSE

TRUE

NULL

Вопросы для самоконтроля

  1. Нарисуйте синтаксическую диаграмму для предложения SELECT оператора SELECT.

  2. Нарисуйте синтаксическую диаграмму для предложения FROM оператора SELECT.

  3. Нарисуйте синтаксическую диаграмму для предложения WHERE оператора SELECT.

  4. Нарисуйте синтаксическую диаграмму для предложения GROUP BY оператора SELECT.

  5. Нарисуйте синтаксическую диаграмму для предложения HAVING оператора SELECT.

  6. Нарисуйте синтаксическую диаграмму для предложения ORDER BY оператора SELECT.

  7. Для чего предназначено предложение SELECT оператора SELECT?

  8. Для чего предназначено предложение FROM оператора SELECT?

  9. Для чего предназначено предложение WHERE оператора SELECT?

  10. Для чего предназначено предложение GROUP BY оператора SELECT?

  11. Для чего предназначено предложение HAVING оператора SELECT?

  12. Для чего предназначено предложение ORDER BY оператора SELECT?

  13. Нарисуйте синтаксическую диаграмму для условия поиска "сравнение" и приведите пример использования в операторе SELECT (для учебной БД).

  14. Нарисуйте синтаксическую диаграмму для условия поиска "проверка на принадлежность диапазону" и приведите пример использования в операторе SELECT (для учебной БД).

  15. Нарисуйте синтаксическую диаграмму для условия поиска "проверка на принадлежность множеству" и приведите пример использования в операторе SELECT (для учебной БД).

  16. Нарисуйте синтаксическую диаграмму для условия поиска "проверка на соответствие шаблону" и приведите пример использования в операторе SELECT (для учебной БД).

  17. Нарисуйте синтаксическую диаграмму для условия поиска "проверка на равенство неопределенному значению (NULL)" и приведите пример использования в операторе SELECT (для учебной БД).

  18. Нарисуйте синтаксическую диаграмму для составных условий поиска в языке SQL и приведите пример использования в операторе SELECT (для учебной БД).

  19. Приведите таблицы истинности для операций AND, OR, NOT в языке SQL.

Соседние файлы в папке БД лабы