Пример 7. Использование диапазонов (BETWEEN/NOT BETWEEN) в условиях поиска
Перечислить всех сотрудников, которые родились в интервале с 1970 по 1981 года.
SELECT [Фамилия], [Имя], [Отчество], [Дата рождения] FROM [Список сотрудников] WHERE [Дата рождения] BETWEEN ‘01/01/1970’ AND ‘01/01/1981’
В этом запросе используются таблица [Список сотрудников] и предикат по полю [Дата рождения] с использованием ключевого слова BETWEEN. При выполнении запроса будет создана новая таблица, содержащая только те строки таблицы [Список сотрудников], в которых значение столбца [Дата рождения] больше ‘01/01/1970’ и меньше ‘01/01/1981’. Результаты выполнения запроса представлены в таблице 9.
Результат выполнения запроса из примера 7 Таблица 9.
Существует также версия проверки диапазона значений, которая имеет противоположный смысл (NOT BETWEEN), В этом случае требуется, чтобы проверяемое значение лежало вне границ заданного диапазона. Наличие ключевого слова BETWEEN и соответствующей проверки лишь незначительно повышает выразительную мощность языка SQL, поскольку те же результаты могут быть достигнуты с помощью выполнения двух обычных проверок. В результате приведенный выше запрос можно представить следующим образом:
SELECT [Фамилия], [Имя], [Отчество], [Дата рождения] FROM [Список сотрудников] WHERE [Дата рождения] >=‘01/01/1970’ AND [Дата рождения] <=‘ ‘01/01/1981’ Однако многие полагают, что проверка принадлежности к диапазону с помощью ключевого слова BETWEEN является более простым способом записи условий выборки, чем обычные проверки.
Пример 8. Условия поиска с проверкой принадлежности к множеству (IN/NOT IN)
Требуется отыскать всех сотрудников, фамилии которых Иванов, Петров и Сидоров.
SELECT [Фамилия], [Имя], [Отчество] FROM [Список сотрудников] WHERE [Фамилия] IN (‘Иванов’, ‘Петров’, ‘Сидоров’);
Проверка принадлежности к множеству обеспечивается с помощью ключевого слова IN. При этом проверяется, соответствует ли результат вычисления выражения одному из значений в предоставленном списке — в нашем случае это строки ‘Иванов’, ‘Петров’, ‘Сидоров’. Результаты выполнения запроса представлены в таблице 10. Существует также версия такой проверки, имеющая противоположный смысл (NOT IN), которая используется для отбора любых значений, кроме тех, которые указаны в представленном списке. Как и оператор BETWEEN, оператор IN незначительно повышает выразительную мощность языка SQL — тот же самый запрос может быть представлен следующим образом:
SELECT [Фамилия], [Имя], [Отчество] FROM [Список сотрудников] WHERE [Фамилия] = ‘Иванов’ OR [Фамилия] = ‘Петров’ OR [Фамилия] = ‘Сидоров’;
Однако использование оператора IN представляет собой более эффективный способ записи условий поиска, особенно если набор допустимых значений достаточно велик.
Результат выполнения запроса из примера 8 Таблица 10.
Читайте также: b) Пример классического. Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|