Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции СУБД.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
6.32 Mб
Скачать

9.8.1 Сравнение

Наиболее распространенным условием отбора в SQL является сравнение. При сравнении СУБД вычисляет и сравнивает значения двух выражений для каждой' строки данных. В SQL имеется шесть различных способов сравнения выражений (по количеству операций сравнения). В ORACLE операции сравнения обозначаются посредством следующих символов: =, !=(не равно), <, >, <=, >=.

Приведем примеры использования запросов с условиями отбора типа сравнения:

Найти служащих с зарплатой меньше 300

select fname, lname

from staff

where salary< 300;

Найти служащих, родившихся до 1988 года

select fname, lname

from staff

where DOB<’01-Jan-88’

Вывести адреса и номера телефонов всех “не Минских” отделений

select address, tel_no

from branch

where city !=’Минск’;

Следует также отметить, что условие сравнение можно делать и составным, объединяя простые сравнения логическими предикатами AND и OR.

9.8.2 Проверка на принадлежность значений (оператор between and)

Другой формой условия отбора является проверка на принадлежность диапазону значений (оператор BETWEEN … AND). При этом проверяется, находится ли элемент данных между двумя заданными значениями.

Следующий пример иллюстрирует типичную процедуру проверки на принадлежность диапазону:

Найти служащих, родившихся в интервале времени с 1октября 1963 по 31 декабря 1971

select fname, lname

from staff

where DOB between ’01-Oct-63’ and ’31-Dec-71’;

Здесь следует отметить, что проверка на принадлежность диапазону не расширяет возможностей SQL, поскольку её можно выразить в виде двух сравнений, т. е. выражение A between B and C эквивалентно (A>=B) and (A<=C).

Помимо рассмотренной проверки в SQL существует также и инверсная проверка на принадлежность диапазону, реализованная с помощью оператора NOT BETWEEN … AND.

9.8.3 Проверка на членство в множестве (оператор in)

Еще одним распространенным условием отбора является проверка на членство в множестве (оператор in). В этом случае проверяется, соответствует ли элемент данных какому-либо значению из заданного списка.

Следующий пример иллюстрирует процедуру проверки на членство в множестве:

Вывести информацию об офисах, расположенных в Минске, Витебске и Бресте

select address, tel_no

from branch

where city in (‘Минск’, ‘Витебск’, ‘Брест’);

Проверка IN не добавляет новых возможностей, так же как и BETWEEN … AND, так как условие X IN (A, B, C) полностью эквивалентно условию (X=A) OR (X=B) OR (X=C)

9.8.4 Проверка на соответствие шаблону (оператор like)

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

Следующий пример иллюстрирует применение проверки на соответствие шаблону:

Вывести информацию о всех сотрудников фамилии которых начинаются на букву К

select lname, address, tel_no

from staff

where lname like ‘K%’

Здесь также следует обратить внимание на запись шаблона строки сравнения в условии LIKE. Указанный способ задания строки шаблона характерен для диалекта SQL СУБД ORACLE и отличен от регламентированного стандартом. Символ ‘%’ - замещает произвольную последовательность символов, а ‘_’ – замещает одиночный символ. Строки-шаблоны так же как и обыкновенные строки-константы заключаются в парные одинарные кавычки.