Переключение в режим SQL осуществляется командой
Вид \ Режим SQL.
Операция селекции.
Специальной операцией реляционной алгебры является операция селекции, или горизонтального выбора, или фильтрации, или ограничения отношений.
Пусть α — булевское выражение, составленное из термов сравнения с помощью связок И (), ИЛИ (), НЕ () и, возможно, скобок. В качестве термов сравнения допускаются:
а) терм А ос а,
где А — имя некоторого атрибута, принимающего значения из домена D; а — константа, взятая из того же домена D, a D; ос — одна из допустимых для данного домена D операций сравнения;
б) терм А ос В,
где А, В — имена некоторых θ -сравнимых атрибутов, то есть атрибутов, принимающих значения из одного и то же домена D.
Тогда результатом операции селекции, заданной на отношении R в виде булевского выражения, определенного на атрибутах отношения R, называется отношение (R WHERE α), включающее те кортежи из исходного отношения, для которых истинно условие выбора или фильтрации:
R WHERE α(r) = {r | r R α (r) = "Истина"}
Для операции селекции задаются логические условия (критерии) отбора записей в поисковых полях.
Условия могут задаваться как выражения, построенные с помощью операторов различного вида:
Условия задаются в следующих вариантах:
· для одного поля;
· в одной строке для нескольких полей, считая все условия совместными;
· в разных строках для одного или разных полей, считая их альтернативными.
Выбор записей из исходной таблицы в общем случае может быть основан на: точном совпадении, частичном совпадении, сравнении.
1. Точное совпадение задается вводом констант в соответствующих полях шаблона, как в случае запроса по должности доцент.
2. Частичное совпадение задается с помощью символов? и *.
3. Условие сравнения записывается с помощью операций сравнения: равно (=), больше (>), меньше (<), больше или равно (>=), меньше или равно (<=), не равно (< >)), не больше (not >), не меньше (not <).
Условия в запросе могут задаваться по одному или по нескольким столбцам. При этом условия в различных столбцах объединяются по условию И (AND).
Задание 2.
Получить фамилии преподавателей с должностью Доцент и датой поступления на работу в диапазоне 1.1.78 - 1.1.83.
На языке реляционной алгебры:
Запрос_2 = (Преподаватель WHERE ([Должн] ="Доцент") &
([Дата_преп]> 1.01.78) & ([Дата_преп] < 1.01.83))[Фам_преп]
Поскольку требуются только фамилии преподавателей, необходимо отношение, полученное в результате операции селекции, спроецировать на атрибут Фам_преп. То есть при выполнении этого запроса выполняются две операции: селекции и проекции.
На языке QBE операция селекции реализуется запросом на выборку:
Запрос_2
Поле | Должн | Фам_преп | Дата_преп | Дата_преп |
Имя таблицы | Преподаватель | Преподаватель | Преподаватель | Преподаватель |
Вывод на экран | ü | |||
Условие отбора | "Доцент" | >#1.1.78# | <#1.1.83# |
На языке SQL: