![]() КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Оператор выбора SELECT. Формирование запросов к базе данных
Язык SQL VEDOM RASP Квантор всеобщности Квантор всеобщности означает, что некоторое условие применяется ко всем строкам или к каждой строке некоторого типа. Он используется в тех же целях, что и операция деления реляционной алгебры. Проиллюстрируем его применение тем же запросом, который рассматривался в разделе, описывающем операцию деления. Пусть даны два отношения:
Требуется определить фамилии тех студентов, каждый из которых сдавал все экзамены, перечисленные в отношении RASP. Необходимо обратить внимание на то, что условие выбора студента содержит определение каждый. В результирующее отношение нключаются только те студенты, которые сдавали каждый экзамен. Если взглянуть на полученный результат, то можно увидеть, что условию запроса удовлетворяют только два студента. Полное решение в реляционном исчислении с использованием квантора всеобщности FORALL таково: {t.Фамилия | t in VEDOM and s in RASP and FORALL s {t. Назв_дисц_на = s.Назв_дисц and t.Дата = s.Дата)}, где t — кортеж отношения VEDOM; s — кортеж отношения RASP. Результат выполнения запроса:
Имя студента из строки t таблицы VEDOM помещается в результирующее отношение, если определяющее выражение истинно для строки t, а определяющее выражение истинно, если для каждой строки s отношения RASP должна существовать строка t в отношении VEDOM, удовлетворяющая условию, то есть в данном случае для каждой строки s отношения RASP должна существовать строка t в отношении VEDOM с одной и то же фамилией: § Иванов присутствует в строках t (1) и t (2): t (1) соответствует s (2) и t (2) соответствует s (1); § Сидоров присутствует в строках t (3) и t (4): t (3) соответствует s (2) и t (4) соответствует s (1); § Коровин присутствует только в строке t (5): t (5) соответствует s (1), а для s (2) нет соответствующей строки t. Полное соответствие всем строкам отношения RASP есть только у Иванова и Сидорова. Таким образом, они и вошли в результирующее отношение. Назначение оператора select состоит в выборке и отображении данных одной или нескольких таблиц БД. Синтаксис оператора select: SELECT [DISTINCT| ALL] {* ÷ [<СПИСОК СТОЛБЦОВ>]} FROM <СПИСОК ТАБЛИЦ> [WHERE <предикат-условие выборки или соединения;>] [GROUP BY <список полей результата>] [HAVING <предикат-условие для группы>] [ORDER BY <список полей, по которым требуется упорядочить вывод>] Поясним каждую фразу данного оператора. Фраза select: · наличие ключевого слова all (по умолчанию) означает, что в результирующую таблицу включаются все строки, удовлетворяющие условиям запроса, что может привести к появлению в результирующей таблице одинаковых строк; · ключевое слово distinct предназначено для приведения таблицы в соответствие с принципами теории отношений, где предполагается отсутствие дубликатов строк; · символ "*" определяет очень часто встречаемую ситуацию, когда в результирующий набор включаются все столбцы из исходной таблицы · запроса. Во фразе from задается перечень исходных таблиц запроса. Во фразе where определяются условия отбора строк результата или условия соединения строк исходных таблиц, подобно операции условного соединения в реляционной алгебре. В качестве условий отбора могут быть использованы следующие операторы: · сравнения " =, <>, >, <, >=, <=" — для сравнения результатов вычисления двух выражений; более сложные выражения строятся с помощью логических операторов AND, OR, NOT; · between А and В — предикат истинен, когда вычисленное значение выражения попадает в заданный диапазон; · in — предикат истинен тогда, когда сравниваемое значение входит в множество заданных значений; · like и not like — предикаты, смысл которых противоположен, требуют задания шаблона, с которым сравнивается заданное значение; · is null — предикат, применяющийся для выявления равенства значения некоторого атрибута неопределенному значению: · exist и not exist, используемые во встроенных подзапросах. Во фразе group by задается список полей группировки. Во фразе having задаются предикаты-условия, накладываемые на каждую группу. Во фразе order by задается список полей упорядочения результата, то есть список полей, который определяет порядок сортировки в результирующей таблице.
Дата добавления: 2014-01-20; Просмотров: 615; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |