Графические (схематичные) реляционные языки

 

Типичным представителем является язык QBE (Query By Example), реализованный в среде электронных таблиц, в ряде СУБД, в пакете Microsoft Query.

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

Для вертикальной выборки (проекции) записей реляционной таблицы осуществляется пометка отбираемых полей с помощью символа √ (помеченное поле выводится в выходную структуру новой реляционной таблицы).

 

 

Для горизонтальной выборки (селекции) задаются логические условия (критерии) отбора записей в поисковых полях.

Условия могут задаваться как выражения, построенные с помощью операторов различного вида:

Арифметические операторы – используются для выполнения вычислений с числами в качестве констант выражения:

* Умножения двух чисел

+ Сложения двух чисел

- Вычитания одного числа из другого

/ Деления одного числа на другое

Операторы сравнения – используются для сравнения двух значений:

> (больше)

>= (больше или равно)

< (меньше)

<= (меньше или равно)

<> (не равно)

= (равно).

Логические операторы – используются с выражениями, которые могут быть истинными или ложными:

И (AND) – должны выполняться оба критерия.

Или (OR) – должен выполняться один из критериев.

Не (NOT) – этот критерий не должен выполняться.

Могут использоваться специальные операторы типа:

BETWEEN – значение в заданном диапазоне.

IN – одно из значений списка.

IS – с ключевым словом Null определяет, является ли величина нулем (нет значения) или нет (есть значение).

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

Условия задаются в следующих вариантах:

для одного поля;

в одной строке для нескольких полей, считая все условия совместными;

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

Пример 19.55.Для получения фамилий студентов с именем Иван и датой рождения в диапазоне 1.1.79 –1.1.80 создается запрос:

 

 

Для получения фамилий студентов с именем Иван с датой рождения в диапазоне 1.1.79- 1.1.80 и фамилий студентов с именем Петр создается запрос:

 

 

В некоторых реализациях языка QBE условие на значение диапазона дат может записываться в ином виде:

 

 

Язык QBE позволяет вычислять групповые функции (по группе выделенных строк) с помощью функций:

Avg – среднее арифметическое значение поля;

Count – число выбранных записей;

Мах – максимальное значение поля;

Min – минимальное значение поля;

Sum – сумма значений поля.

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

Пример 19.56.Для подсчета количества студентов с именем Иван и датой рождения в диапазоне 1.1.79 – 1.1.80 создается запрос:

 

 

Ключевое слово Сalс означает вычисление значений по данному полю.

 

Выражения используются в запросе и для формирования новых данных.

Пример 19.57.Для каждого студента определить количество прожитых на сегодняшнюю дату дней:

 

 

Символ – идентификатор значения поля, today – встроенная функция вычисления сегодняшней даты.

 

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

Пример 19.58.Получить сведения о студентах, успевающих на 4 и 5, название дисциплины и результат сдачи экзамена (оценку):

 

 

 

Символы – идентификаторы ключей связи в различных реляционных таблицах. Выходная структура содержит поля: имя, фамилия, результат, название дисциплины. Выводятся сведения о студентах, которые учатся на 4 и 5.

 

Некоторые версии языка QBE позволяют создать набор (множество) значений указанного поля одной таблицы, по отношению к которому проверяются значения поля другой таблицы. Операции сравнения выполняются на уровне множества значений поля с помощью сравнения наборов:

ONLY – второй набор – подмножество первого,

NO – наборы не совпадают,

EVERY – первый набор – подмножество второго,

EXACTLY – наборы совпадают.

Первый набор формируется с помощью ключевого слова SET.

Пример 19.59.Получить сведения о студентах, которые имеют такие же результаты, что и студент с зачетной книжкой 123456

 

 

 

В ряде СУБД кроме выборки записей возможны операции включения новых записей (INSERT), удаления записей (DELETE) или групповой корректировки выбранных записей (CHANGETO).



p">Далее ⇒