Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Общие сведения. Лабораторная работа 6: Создание запросов на языке QBE




Лабораторная работа 6: Создание запросов на языке QBE.

Цель работы

Знакомство с языком QBE и его основными возможностями по извлечению и модификации данных, хранящихся в БД.

Информация, хранящаяся в БД, может использоваться различными категориями пользователей. Разным пользователям нужна разная информация. Даже одному и тому же пользователю в разные моменты времени могут потребоваться разные сведения. Критерий отбора интересующих пользователя данных и способ их преобразования к виду, удобному для восприятия, формируется при помощи запроса к БД. Существуют два стандарта языка запроса к БД: это язык запросов по образцу QBE– Query By Example и язык структурированных запросов SQL– Structured Query Language. Оба эти языка предназначены не для разработки прикладных программ, а для манипулирования базами данных. И тот и другой языки позволяют осуществлять выборку из БД, создавать новые таблицы БД, удалять, добавлять и изменять хранящиеся в таблицах данные. Языки SQL и QBE предназначены для одних и тех же целей. Но, если язык SQL является языком профессионалов, это командный язык, то язык QBE ориентирован на неквалифицированного пользователя, это язык визуального представления операции отбора или модификации данных.

В СУБД Access выбрать данные из одной таблицы, отвечающие заданному условию, можно и при помощи фильтра (смотри лабораторную работу 4). С помощью запроса можно выбрать нужные данные не только из одной, но и одновременно из нескольких таблиц БД, произведя при этом необходимые вычисления. Данные, выбранные с помощью запроса, можно рассматривать как виртуальную таблицу. Эту таблицу можно просматривать, использовать в новом запросе, печатать, частично изменять. Поскольку изменения фактически вносятся в таблицы, на базе которых построен запрос, то существуют некоторые ограничения. Например, нельзя менять значение вычисляемого поля или производить изменения, которые влияют сразу на несколько строк базовой таблицы. Если результатом запроса является виртуальная таблица, представляющая собой совокупность таблиц, связанных отношением 1:n, нельзя обновлять ключевые поля со стороны отношения 1.

Запросы на языке QBE создаются в окне конструктора запросов, можно также воспользоваться услугами Мастера запросов. Окно конструктора запросов содержит набор таблиц и/или запросов, на основе которых строится запрос, и бланк для создания запроса на QBE. Таблицы и запросы могут быть добавлены при необходимости в окно запросов. Каждый столбец бланка относится к одному полю, которое может быть и вычисляемым, то есть содержать арифметическое выражение. Поля выбираются из раскрывающихся списков или перетаскиваются мышью из таблиц. Количество строк в бланке запроса зависит от вида запроса. В простейшем случае (по умолчанию) строк 5: «Поле», «Сортировка», «Вывод на экран», «Условие отбора», «или».

В строке «Поле» указываются все поля, участвующие в формировании запроса. Это могут быть, с одной стороны, поля, которые попадут в результат запроса, а с другой, - поля, которые нужны только для задания условия отбора. Поле может быть и вычисляемым. Вычисляемое поле задается арифметическим выражением, которое может включать в качестве операндов имена полей, константы, переменные и функции, а в качестве операторов арифметические операции "+", "-", "*", "/", а также операцию деления нацело – "\", возведения в степень – "^", вычисления остатка от деления – MOD и конкатенации строк – "&". При построении сложных выражений рекомендуется использовать построитель выражений.

В строке «Сортировка» можно указать необходимость сортировки по возрастанию или убыванию для каждого из выбранных полей. При этом следует помнить, что при сортировке по нескольким полям, важен порядок расположения этих полей в бланке запроса.

В строке «Вывод на экран» устанавливаются флажки для тех полей, которые должны попасть в результат запроса. Это обычно не все поля, поскольку часть полей, присутствующих в бланке запроса, используется только для задания условия отбора записей.

Условие отбора представляет собой логическое выражение. При задании логических выражений кроме операторов AND, OR, NOT вы можете использовать операторы сравнения и предикаты BETWEEN, IN и LIKE. По отношению к условиям отбора, находящимся в одной строке и относящимся каждое к своему полю, выполняется операция AND (логическое "и"). Строки связаны друг с другом оператором OR (логическое "или").

Поля, которые являются результатом запроса, наследуют свойства, заданные при определении таблицы. Часть этих свойств, например, формат поля, число десятичных знаков, подпись поля, маска ввода могут быть изменены при формировании запроса. Возможность изменить подпись поля особенно полезна для вычисляемых полей, а маску ввода есть смысл менять при использовании параметров запроса.

Запрос с параметром позволяет не вводить в строку «Условие отбора» конкретное значение, а запрашивать его всякий раз при выполнении запроса. Таким образом, один и тот же запрос можно использовать многократно для отбора различных записей, регулируя отбор вводимым значением параметра.

Язык QBE имеет средство группировкиданных. Цель группировки – объединить данные на основе одинакового значения поля группировки с целью упрощения их последующего визуального анализа. Над данными, входящими в группу, обычно выполняется какая-нибудь операция, при этом используются функции агрегирования. К таким функциям относятся: функция подсчета количества записей - COUNT(), суммирования значений столбца - SUM(), вычисления среднего значения - AVG(), вычисления минимального и максимального значений - MIN(), MAX()и другие. Запрос с группировкой называется итоговым, так как группировка дает возможность получить на выходе набор строк, включающий по одной строке для каждого уникального значения поля запроса, для которого она установлена. Для получения итоговых значений установку «Группировка» в строке «Групповая операция» следует поменять на нужную функцию агрегирования, выбрав ее из списка. Кроме 9 стандартных функций агрегирования список содержит также значение «Выражение», что позволяет использовать для подведения итогов более сложные выражения. Само выражение задается в строке «Поле». В группы могут включаться не все строки таблицы, а только удовлетворяющие определенным условиям, заданным в строке «Условие отбора». Строка «Групповая операция» при этом должна содержать значение «Группировка», установленное выбором из списка. Кроме того, что в группу можно включать не все строки, в результат запроса можно включать не все группы, а только те, для которых групповое значение удовлетворяет заданному условию. В этом случае условие задается в строке «Условие отбора», а в строке «Групповая операция» должна быть установка «Условие». Следует помнить, что результаты итоговых запросов не могут быть изменены.

Специальным типом итогового запроса является перекрестныйзапрос. Итоговые значения представляются в виде таблицы, напоминающей электронную. Обычно в таких запросах столбцы – это время в тех или иных единицах измерения, а на пересечении строк и столбцов находятся деньги или количество чего–нибудь. В таком виде можно, например, представить объем продаж по годам или месяцам для каждого вида изделий или еженедельную прибыль по каждому из филиалов торгующей организации. При создании перекрестного запроса в бланке QBE появляется новая строка – «Перекрестная таблица». Для каждого поля, участвующего в построении перекрестного запроса, может быть выбрана одна из четырех установок: «Заголовки строк», «Заголовки столбцов», «Значения», «Не выводить». Поля заголовков строк или столбцов должны иметь в строке «Групповая операция» установку «Группировка», а поле значения – выражение для вычисления группового значения. Часть полей используются только для задания условия отбора, в строке «Перекрестная таблица» они имеют установку «Не выводить», а в строке «Групповая операция» -установку «Условие». Само условие задается в строке «Условие отбора». Условие отбора может быть введено и для полей, используемых в качестве заголовков.

Мастер запросов, имеющийся в распоряжении системы, позволяет создать Простой запрос на выборку данных, Перекрестный запрос, а также запросы, позволяющие найти Повторяющиеся записи и Записи без подчиненных.

До сих пор речь шла только о запросах, позволяющих извлекать нужную информацию из БД. Такие запросы называются запросами – выборками. Язык QBE предоставляет также возможность модификации данных с помощью запросов – действий. К запросам – действиям относятся: запрос на обновление, запрос на удалениеи запрос на добавление.

Запрос на обновление формируется с целью произвести одинаковые изменения во всех или нескольких, удовлетворяющих определенному условию, записях. При создании такого запроса сначала создается запрос – выборка, чтобы отобрать записи, подлежащие обновлению, а затем он преобразуется в запрос на обновление. Бланк QBE – запроса на обновление имеет строку «Обновление», в которой можно задать выражения для вычисления значений обновляемых полей. За один раз можно изменять значения нескольких полей, но только одной таблицы. Вычисляя значение некоторого поля, можно использовать значения других полей.

Запрос на удаление, как и предыдущий запрос, создается на основе запроса – выборки. При этом изменять что-либо по сравнению с запросом – выборкой в бланке запроса на удаления не требуется.

Запрос на добавление используется для помещения в таблицу данных или их части, отобранной по некоторому условию, из другой таблицы этой или другой БД. Для создания такого запроса надо, находясь в БД, содержащей таблицу, из которой будут добавлены данные, открыть окно создания нового запроса. В окне добавления таблиц выбрать таблицу, данные из которой будут добавляться, и выполнить команду Запрос/Добавление, указав имя таблицы и БД, куда будут добавляться данные. Бланк запроса на добавление содержит поля таблицы – источника. В строке «Добавление» следует указать (выбрать из списка) имена полей таблицы – приемника. Если в таблице – приемнике есть поля, отсутствующие в источнике, они заполнятся значениями по умолчанию, но можно указать и другое значение в виде константы, поместив ее в строку «Поле».

К запросам – действиям относится и запрос на создание таблицы, уже рассмотренный нами в лабораторной работе 2. Вы, наверное, обратили внимание, что при создании новой таблицы Access копирует не все, а только основные свойства полей.

Запросы, созданные на языке QBE, транслируются на язык SQL и в таком виде хранятся в БД. Посмотреть, как выглядит запрос на языке SQL, и даже модифицировать его можно, перейдя из режима просмотра результата запроса (режим таблицы) или режима конструирования запроса на QBE в режим SQL. Изучение языка SQL выходит, однако, за рамки этой книги.




Поделиться с друзьями:


Дата добавления: 2015-05-09; Просмотров: 563; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.