Логические связки AND, OR и NOT
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Логические выражения в SELECT-запросах могут состоять из более, чем одной операции сравнения. Для записи таких выражений применяются логические операции AND, OR и NOT. Операции AND и OR являются бинарными, т. е. предназначены для соединения двух логических выражений. Значение операции AND будет «истина», если оба операнда имеют значение «истина». Значение операции OR будет «истина» в том случае, если хотя бы один из операндов имеет значение «истина». Операция NOT – унарная, применяется к любому логическому выражению и меняет его значение на противоположное (рис. 7.67).

 

Рис. 7.67. Таблица истинности для логических операций AND, OR, NOT

 

На рис. 7.68–7.72 представлено пять примеров использования логических операций AND, OR, NOT. Следует обратить внимание, что для операций принят следующий приоритет: NOT, AND, OR. Приоритет операций может быть изменен с помощью скобок (7.71, 7.72).

 

 

Рис. 7.68. Применение операций AND в секции WHERE

 

 

Рис. 7.69. Применение операций NOT и AND в секции WHERE

 

 

Рис. 7.70. Применение операций OR в секции WHERE

 

 

Рис. 7.71. Применение операций OR и AND в секции WHERE

 

 

Рис. 7.72. Применение операций скобок для изменения приоритета операций
 OR и AND в секции WHERE

 


Операция BETWEEN

На рис. 7.73 представлен запрос, позволяющий выбрать строки из таблицы AUDITORIUM с заданным диапазоном значений столбца AUDITORIUM_ CAPACITY.

 

 

Рис. 7.73. Запрос, задающий диапазон значений в столбце

 

Логическое выражение, заданное в секции WHERE запроса на рис. 7.73, может быть записано короче с помощью ключевого слова BETWEEN (рис. 7.74).

 

 

Рис. 7.74. Применение операции BETWEEN

 

Операция BETWEEN может быть использована совместно с другими операциями (рис. 7.75).

 

 

Рис. 7.75. Применение операции BETWEEN совместно с другими операциями

Применение подзапросов

Напомним, подзапрос – это SELECT-запрос, который выполняется в рамках другого запроса. Подзапросы могут применяться в секции WHERE. В простейшем случае подзапрос некоррелированный и формирует скалярный результирующий набор (рис. 7.76).

 

 

Рис. 7.76. Применение некоррелируемого подзапроса в секции WHERE

 

Подзапрос на рис. 7.76 формирует одно значение (достигается с помощью опции TOP и указания единственного столбца в SELECT-списке). Подзапрос некоррелированный, поэтому выполняется только один раз. В секции WHERE внешнего запроса значение столбца AUDITORIUM_ TYPE каждой строки таблицы AUDITORIUM_ TYPE сравнивается с результатом выполнения подзапроса. При совпадении значений строка внешнего запроса копируется в окончательный результирующий набор.

 

 

Рис. 7.77. Применение коррелируемого подзапроса в секции WHERE

 

На рис. 7.77 приведен пример использования коррелируемого подзапроса в секции WHERE и фрагмент результирующего набора. Внутренний запрос выполняется для каждой строки результирующего набора внешнего запроса и формирует единственное значение (скалярный результирующий набор), которое сравнивается со значением столбца NOTE таблицы PROGRESS, связанной внутренним соединением с таблицей STUDENT. Обратите внимание, что при сравнении применяется неравенство «больше».

 

Дата: 2019-02-25, просмотров: 222.