Операторы сравнения применимы к любым типам данных, кроме BLOB.
Выполним следующий оператор выборки всех данных из таблицы PERSON, SELECT * FROM PERSON
как мы уже видели в листинге 1. получаем список всех имеющихся у нас личностей. Обычно требуется не весь список, а список отобранный по какому-нибудь критерию. Предложение WHERE позволяет задать условие поиска — условие, на основании которого в результат выборки будут попадать данные из базы данных.
Найдем всех Татьян, данные на которых хранятся в базе данных:[12]
SELECT * FROM PERSON
WHERE PR_NAME2='Татьяна'
Листинг 7. Список всех Татьян.
PR_CODE
PR_NAME
PR_NAME2
PR_NAME3
PR_BIRTHDAY
Беспалова
Татьяна
Евгеньевна
21.12.1965
Соснина
Татьяна
Александровна
05.12.1968
Хемлих
Татьяна
Владимировна
25.10.1953
Шарапова
Татьяна
Юрьевна
14.04.1980
Алтынцева
Татьяна
Владимировна
03.09.1977
Арсентьева
Татьяна
Сергеевна
10.09.1954
Баландина
Татьяна
Анатольевна
11.01.1955
Бартош
Татьяна
Сергеевна
02.12.1974
Веремчук
Татьяна
Валерьевна
23.08.1948
Владысик
Татьяна
Викторовна
19.10.1960
Звездина
Татьяна
Александровна
01.10.1961
Зырянова
Татьяна
Геннадьевна
22.01.1970
Леушина
Татьяна
Фёдоровна
04.05.1963
Мазеина
Татьяна
Александровна
06.04.1969
Мосина
Татьяна
Михайловна
30.06.1979
Некрасова
Татьяна
Николаевна
04.12.1949
Теперь рассмотрим использование условий “>”,”<”
Найдем всех рожденных после 1.01.1970:[13]
SELECT PR_NAME2AS"Имя",
PR_NAME3AS"Отчество",
PR_NAMEAS"Фамилия",
PR_BIRTHDAY AS "Дата рождения"
FROM PERSON
WHERE PR_BIRTHDAY>'1.01.1970'
ORDER BY PR_BIRTHDAY,PR_NAME
Листинг 8. Список всех рожденных после 1.01.1970
Имя
Отчество
Фамилия
Дата рождения
Татьяна
Геннадьевна
Зырянова
22.01.1970
Максим
Владимирович
Бычков
08.09.1970
Юлий
Альбертович
Алексеев
19.09.1974
Татьяна
Сергеевна
Бартош
02.12.1974
Александр
Анатольевич
Лебедев
03.04.1977
Татьяна
Владимировна
Алтынцева
03.09.1977
Оксана
Владимировна
Мельчакова
06.07.1978
Татьяна
Михайловна
Мосина
30.06.1979
Татьяна
Юрьевна
Шарапова
14.04.1980
Лариса
Вилльевна
Вашкарина
05.11.1980
Анна
Николаевна
Верхоланцева
06.10.1991
Объединим оба предыдущих условия, т.е. найдем всех Татьян рожденных после даты “1.01.1970”:[14]
SELECT PR_NAME2AS"Имя",
PR_NAME3AS"Отчество",
PR_NAMEAS"Фамилия",
PR_BIRTHDAY AS "Дата рождения"
FROM PERSON
WHERE (PR_NAME2=' Татьяна') AND (PR_BIRTHDAY>'1.01.1970')
ORDER BY PR_BIRTHDAY,PR_NAME
Листинг 9. Список Татьян рожденных после 1.01.1970
Имя
Отчество
Фамилия
Дата рождения
Татьяна
Геннадьевна
Зырянова
22.01.1970
Татьяна
Сергеевна
Бартош
02.12.1974
Татьяна
Владимировна
Алтынцева
03.09.1977
Татьяна
Михайловна
Мосина
30.06.1979
Татьяна
Юрьевна
Шарапова
14.04.1980
Использование варианта BETWEEN
Близок к операторам сравнения вариант BETWEEN, который, выглядит следующим образом:
<значение> [NOT] BETWEEN <значение> AND <значение>
Это применимо как к числовым, так и к строковым столбцам, дате, времени — ко всем, за исключением BLOB.
Этот вариант требует, чтобы значение находилось в указанном диапазоне, включая граничные значения.
Еще раз обратимся к полному списку личностей. Выберем из этого списка только тех, чья дата рождения находится в диапазоне от 1.01.1960 до 31.12.1969:[15]
SELECT PR_NAME2 AS"Имя",
PR_NAME3AS"Отчество",
PR_NAMEAS"Фамилия",
PR_BIRTHDAY AS "Дата рождения"
FROM PERSON
WHERE PR_BIRTHDAYBETWEEN'1.01.1960'AND'31.12.1969'
ORDER BY PR_BIRTHDAY,PR_NAME
Листинг 10. Список рожденных в диапазоне от 1.01.1960 до 31.12.1969
Имя
Отчество
Фамилия
Дата рождения
Татьяна
Викторовна
Владысик
19.10.1960
Светлана
Александровна
Ветошкина
23.12.1960
Татьяна
Александровна
Звездина
01.10.1961
Татьяна
Фёдоровна
Леушина
04.05.1963
Олег
Владимирович
Лядов
07.06.1964
Оксана
Васильевна
Власова
11.02.1965
Надежда
Александровна
Зеленина
11.12.1965
Татьяна
Евгеньевна
Беспалова
21.12.1965
Татьяна
Александровна
Соснина
05.12.1968
Татьяна
Александровна
Мазеина
06.04.1969
Понятно, что такого же результата можно было бы добиться введя запрос:[16]
SELECT PR_NAME2AS"Имя",
PR_NAME3AS"Отчество",
PR_NAMEAS"Фамилия",
PR_BIRTHDAY AS "Дата рождения"
FROM PERSON
WHERE PR_BIRTHDAY>='1.01.1960'ANDPR_BIRTHDAY<='31.12.1969'
ORDER BY PR_BIRTHDAY,PR_NAME
Результат будет такой же, но вариант запроса с использованием BЕTWEEN намного более выразительный.