Предикаты сравнения с образцом LIKE и NOT LIKE. Предикат LIKE
требует задания шаблона, с которым сравнивается заданное значение,
предикат истинен, если сравниваемое значение соответствует шаблону, и
ложен в противном случае. Предикат NOT LIKE имеет противоположный
смысл. Шаблон может содержать % (* для Access) для обозначения любого
числа любых символов; _ (? для Access) для обозначения любого одного
символа.
Предикат сравнения с неопределенным значением IS NULL. Для
выявления равенства значения некоторого атрибута неопределенному
значению применяют специальные стандартные предикаты: <имя атрибута>
IS NULL и <имя атрибута> IS NOT NULL
Предикат существования EXIST и не существования NOT EXIST.
Применяется во вложенных запросах для определения непустого или пустого
множества, являющегося результатом выборки.
В условиях поиска могут быть использованы все рассмотренные
предикаты.
Пример 2.2: Например, можно выбрать из отношения R3 только те дисциплины,
которые были у группы АИ21:
SELECT Дисциплина FROM R3 WHERE Группа Like ‘АИ21’; Для таблиц и полей можно задавать псевдонимы (alias). Для этого
необходимо использовать предлог AS. Например, Select [Цена за единицу] *
[Количество] as [Стоимость покупки] from Продажа; - здесь определяется
псевдоним для вычисляемого поля (операция умножение).
В разделе GROUP BY задается список полей группировки. GROUP BY группирует записи данных и объединяет в одну запись все записи данных,
которые содержат идентичные значения в указанном поле (или полях).
WHERE определяет, какие записи должны участвовать в группировании, т.е.
фильтрует до группирования.
Обратите внимание, что использование Group By отличается от
использования Distinct. Во втором случае будут отброшены кортежи,
которые в текущем представлении совпадают по всем полям (из
совпадающих записей остается только один кортеж). Операция группировки
приводит исходное отношение к виду, когда ко всем полям, запрошенным на
отображение и не указанным в выражении группировки, применяются
агрегатные функции (если они не определены, то запрос не выполнится).
Пример 2.3: Для того чтобы почувствовать разницу между использованием
ключевого слова DISTINCT и группировкой с помощью GROUP BY
попробуйте поочередно выполнить следующие запросы к отношению R2: