Логические условия выборки записей

Логическое условие в опции WHERE может быть простым или сложным, содержащим разделительные скобки, ограничения на значения отдельных полей некоторых таблиц и равенство значений полей одной таблицы значениям соответствующих полей другой таблицы. Арифметические условия отбора записей были рассмотрены ранее.

а. Одностороннее ограничение на значение поля

Для задания одностороннего ограничения могут быть использованы логические операторы: =, <, > <=, >= и <>.

Пример 9.18. Извлечь все записи о книгах, изданных в г. Москве.

SELECT Name_book, Town, Year, Price

FROM Book INNER JOIN Town ON Book.Key town =

Town. Key_t own WHERE Town - "Москва";

Пример 9.19. Извлечь все записи о книгах, изданных после 2005 г.

SELECT Name_book, Town, Year, Price

FROM Book INNER JOIN Town ON Book. Keytown =

Town. Key_t own WHERE Year > 2005;

б. Двухстороннее ограничение на значение поля

С помощью ключевого слова BETWEEN задается диапазон значений поля и соответствующие записи попадают в выборку.

Пример 9.20. Извлечь все записи о книгах, изданных в период с 2000 по 2005 г.

SELECT Name_book, Town, Year, Price

FROM Book INNER JOIN Town ON Book. Keytown =

Town. Key_t own

WHERE Year BETWEEN 2000 AND 2005;

Для выделения значений поля, лежащих вне диапазона, следует использовать логический оператор отрицания NOT.

Пример 9.21. Извлечь все записи о книгах, изданных вне периода с 2000 по 2005 г.

SELECT Name_book, Town, Year, Price

FROM Book INNER JOIN Town ON Book.Key town =

Town. Key_t own

WHERE Year NOT BETWEEN 2000 AND 2005;

в. Отбор записей по списку

Для определения списка допустимых значений используется ключевое слово IN.

Пример 9.22. Извлечь все записи о книгах, изданных в 2001, 2003, 2005 и 2007 годах.

SELECT Name_book, Town, Year, Price

FROM Book INNER JOIN Town ON Book.Key town =

Town. Key_t own

WHERE Year IN (2007, 2003, 2005, 2001);

Порядок следования элементов списка — произвольный. Если какой-то элемент списка IN в записях таблицы (или таблиц) отсутствует, то никакие сообщения об этом факте не выводятся.

Допускается использование логического оператора NOT, который устанавливается перед ключевым словом IN.

г. Отбор записей по части значения поля

Ключевое слово LIKE используется для определения шаблона, в соответствии с которым выполняется отбор записей. Слева от ключевого слова LIKE пишется имя поля, по значениям которого выполняется отбор записей, а справа — шаблон.

Для составления шаблона допускается использование следующих символов:

% — заменяет любое количество символов слева или справа от комбинации букв;

_ — заменяет один символ. Допускается многократное использование символа «_»;

[<список>] — значение поля может содержать только указанные символы. Символы шаблона пишутся подряд без пробелов. Например, [АРСКЛОЕТУН1234567]. Для задания диапазона символов используется символ «-» (минус). Например, [А-Яа-яО-9];

[< лсписок>] — аналогично предыдущему, но запрещает в значении поля перечисленные символы. Например, %[Astu]. Шаблон запрещает, чтобы значения полей начинались с символов «s», «t» и «и».

Пример 9.23. Извлечь все записи о книгах, написанных авторами, в фамилии которых имеется комбинация букв.

SELECT Name_book, Town, Year, Price FROM Book B, Town T, Fam F

WHERE B.Key town = T.Key town AND B.Key fam = F.Key fam AND Fam LIKE %ro%;

В выборку будут помещены записи, в которых в середине фамилии автора присутствуют символы «го». Например, Гоголь, Погодин, Загоскин и др.

 
< Пред   СОДЕРЖАНИЕ     След >