Файл: Современные языки программирования (Общая характеристика языка).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 17.06.2023

Просмотров: 76

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Это можно сделать несколькими способами, например, выбирая позиции меню Файл/Закрыть, ответив «Да» на вопрос о сохранении файла и задав после этого имя запроса. Имя запроса не может совпадать не только с именем другого запроса, но и с именем какой-либо таблицы в данной базе данных. Сохраненный запрос можно впоследствии «открывать», что означает его выполнение. Сохраненный запрос может быть скорректирован, если открыть его в режиме Конструктор. Microsoft Access 2000. Шаг за шагом: Практическое пособие / Пер. с англ. - М.: ЭКОМ, 2000. - 352с.

2.1. Добавление и удаление таблиц в запросе

Возможно использование нескольких способов включения таблиц, на которых базируется запрос. Для добавления таблицы можно в режиме Конструктор запроса щелкнуть по кнопке Добавить таблицу на панели инструментов или выбрать в меню Запрос команду Добавить таблицу - открывается окно диалога Добавление таблицы. Пользователь имеет также возможность добавить в запрос таблицу или запрос, выбрав их имена в окне базы данных и переместив их с помощью мыши в верхнюю часть окна запроса. Кроме того, можно позиционироваться на свободное место в верхней части окна запроса, нажать правую кнопку мыши и в появившемся ниспадающем меню выбрать позицию Добавить таблицу.

Для добавления в запрос таблицы из другой базы данных или другого приложения следует сначала присоединить эту таблицу к активной базе данных. Это присoединение выполняется путем использования команды Присоединить таблицу (меню Файл). При создании нового запроса без помощи мастера по разработке запросов окно диалога Добавление таблицы выводится автоматически Для того чтобы указать, на чем будет базироваться создаваемый запрос (таблице, запросе или том и другом одновременно), нужно просто выбрать сoответствующую вкладку. Установив в появившемся списке доступных таблиц/запросов указатель на имя добавляемой таблицы или запроса, нужно или выполнить двойной щелчок «мышью», или нажать клавишу [Enter].

Допускается одновременное добавление в запрос нескольких таблиц или запросов. Для этого следует, удерживая нажатой клавишу [Ctrl], выбрать имена добавляемых таблиц или запросов и щелкнуть по кнопке Добавить. В верхней части окна запроса выводится список полей добавленных таблицы или запроса.

Существует несколько способов удаления таблицы из запроса:

выбрать имя удаляемой таблицы или запроса в соответствующем списке и нажать клавишу [Del] или выбрать в меню Запрос команду Удалить таблицу;


двойным щелчком мыши выделить нужную таблицу в соответствующей зоне экрана и затем нажать клавишу [Del].Имена полей удаленной таблицы или запроса удаляются из бланка запроса QBE. Удаление из запроса таблицы или запроса, на которых он базируется, не приводит к их удалению из базы данных. Различают несколько типов запросов: запрос на выборку (Select), перекрестный запрос (Crosstab), создание таблицы (Make-table), запрос на обновление (Update), добавление (Append), удаление (Delete). Наиболее часто используемым типом запросов является запрос на выборку. Именно с него мы и начнем изучение возможностей задания запросов в Access.

2.2. Перекрестные запросы

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

Первый набор выводится в левом столбце и образует заголовки строк, а второй - выводится в верхней строке и образует заголовки столбцов. Например, в таблице «Сотрудники» имеются сведения о зарплате каждого сотрудника, а также признаки, на какой кафедре и в какой должности работает каждый сотрудник. Требуется для каждой кафедры определить общий фонд зарплаты, а по каждой должности - среднюю по каждой кафедре зарплату. Для создания перекрестного запроса следует воспользоваться позицией «Перекрестный запрос» в окне Новый запрос или выбрать соответствующую строку в меню Запрос. Далее необходимо выполнить ряд шагов, предлагаемых мастером по созданию перекрестных запросов. При создании перекрестного запроса в качестве источника данных можно задать только одну таблицу. Если для реализации запроса требуются поля из разных таблиц, то надо предварительно создать вспомогательный запрос, который будет включать все требуемые поля. Так, если в создаваемом нами запросе требуется выводить название кафедры, то следует создать запрос, базирующийся на таблицах <<Кафедра>> и <<Сотрудник>>, и этот запрос выбрать в качестве источника для создаваемого перекрестного запроса. Будем выводить в ответ <<Код_кафедры>> и поэтому выберем таблицу <<Сотрудник>>.


2.2. Корректирующие запросы

К корректирующим запросам относятся запросы на обновление (Update) и на удаление (Delete) записей, а также добавление (Append, Insert)[†] записей из одной таблицы или нескольких связанных таблиц в конец другой таблицы. В документации по Access к типу «запросов на изменение» отнесены не только перечисленные выше запросы, но еще и «запрос на создание таблицы». Последний запрос все-таки отличается от названных ранее: первый круг запросов меняет содержание существующих таблиц, а последний - создает новую таблицу, т.е. фактически меняет имеющуюся структуру базы данных. Поэтому «запрос на создание таблицы» выделен в отдельную группу.

Корректирующие запросы на обновление и удаление могут изменять как все записи таблицы, так и определенное их подмножество - это будет зависеть от условия отбора. При выполнении корректирующих запросов система осуществляет контроль ограничений целостности. Так, например, если при описании таблицы было задано ограничение на максимально допустимое значение поля «Оклад», то при выполнении запроса в случае нарушения ограничения может быть выдано сообщение. Если выбрать вариант «Да», то для записей, нарушающих ограничение на значение, корректировка вообще выполнена не будет. В нашем примере такой выбор будет неправильным, поскольку в этом случае у одних сотрудников зарплата будет повышена, а у других - нет. Причем потом разобраться, у кого она была повышена, а у кого - нет, будет практически невозможно. В рассматриваемой ситуации следует отказаться от выполнения запроса, скорректировать при необходимости ограничение на значение и только после этого выполнить запрос. Канноли, Томас, Бегг, Карелии. Базы данных. Проектирование, реализация и сопровождение. Теория и практика. 3-е издание. : Пер. с англ. -- М. : Издательский дом "Вильямс", 2003. -- 1440 с

Следует быть очень внимательным перед выполнением корректирующих запросов (недаром в списке запросов перед их именем стоит восклицательный знак), так как каждый их запуск на выполнение изменяет содержимое таблиц и отменить результат выполнения нельзя. В связи с этим рекомендуется сохранять резервные копии изменяемых таблиц. Это позволит восстановить ошибочно скорректированные записи.

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


1. просмотреть запрос в режиме таблицы;

2. выполнить запрос как запрос на выборку.

«Открытие» запроса на обновление означает изменение значений в базе данных. Каждое «Открытие» запроса на обновление будет означать обновление уже обновленных данных. Леонтьев Ю. Microsoft Office 2005: Краткий курс. - СПб.: Питер, 2001. - 288с.

Запрос на удаление используют для удаления группы записей, отбираемых с помощью указанных пользователем условий отбора. Сначала необходимо задать условие отбора. Перед выполнением запроса на удаление рекомендуется предварительно просмотреть результаты отбора. Для создания запроса на удаление следует в режиме Конструктор запроса выбрать соответствующую позицию «Удаление» в меню Запрос (либо нажать стрелку рядом с кнопкой Тип запроса на панели инструментов).

Если в запросе на удаление не указать условие отбора, то будут удалены все записи. В некоторых случаях запрос-удаление приводит к удалению записей в таблицах, не включенных в запрос. Это случается, если в запрос включена таблица, находящаяся на стороне «один» отношения «один ко многим», а целостность данных обеспечивается параметром «Каскадное удаление». При удалении записей из этой таблицы будут также удалены связанные записи из таблицы, находящейся на стороне «многие». В многотабличном запросе в бланк запроса QBE необходимо переместить символ звездочки (*) для каждой таблицы, из которой будут удаляться записи, и поля, используемые для задания условий отбора.

Запрос на добавление добавляет группу записей из одной или нескольких таблиц (таблиц-источников) в конец другой таблицы (результатной таблицы). Для задания запроса такого типа следует сначала создать запрос, содержащий таблицу (таблицы), записи из которой необходимо добавить в другую таблицу. Затем в режиме Конструктор запроса нужно нажать стрелку рядом с кнопкой Тип запроса на панели инструментов и выбрать команду Добавление (либо выбрать соответствующую позицию в меню Запросы). На экране появится диалоговое окно Добавление. В поле «Имя таблицы» следует ввести имя таблицы, в которую необходимо добавить записи. Дейт, К. Дж. Введение в системы баз данных, 8-е издание.: Пер. с англ. -- М.: Издательский дом "Вильямс", 2005. -- 1328 с.: ил. -- Парал. тит. англ

Таблица, в которую осуществляется добавление, может быть как в той же базе данных, так и в другой, причем это не обязательно должна быть база данных Access (это может быть Microsoft FoxPro, Paradox или dBASE, а также база данных SQL).

Из списка полей таблиц-источников в бланк запроса необходимо переместить поля, которые должны входить в состав добавляемых записей, а также те, которые будут использованы при определении условия отбора. Если все поля таблицы-источника должны быть перенесены в целевую таблицу и поля в таблице-источнике и целевой таблице имеют одинаковые имена, то можно просто переместить с помощью мыши символ «звездочка» (*) в бланк запроса. Однако при работе с репликой базы данных добавлять придется все поля. Кроме того, при использовании символа «звездочка» (*), даже если структуры обеих таблиц полностью совпадают, могут возникнуть проблемы с ключами (если ключевое поле имеет тип «Счетчик», то для автоматического добавления значений счетчика не следует при создании запроса перемещать поле счетчика в бланк запроса). Если в обеих таблицах выделенные поля имеют одинаковые имена, соответствующие имена автоматически вводятся в строку «Добавление». Если имена полей двух таблиц отличаются друг от друга, в строку «Добавление» необходимо ввести имя поля целевой таблицы, которое соответствует полю таблицы-источника. Следует быть внимательным при создании запроса на добавление записей в таблицу. Все поля целевой таблицы, которые имеют либо свойство «Обязательное поле», либо заданные «условия на значение», должны быть включены в состав добавляемых полей, иначе ни одна запись добавлена не будет по причине нарушения ограничений целостности. Дейт, К. Дж. Введение в системы баз данных, 8-е издание.: Пер. с англ. -- М.: Издательский дом "Вильямс", 2005. -- 1328 с.: ил. -- Парал. тит. англ


Глава 3. Прочие операции с QBE

Запрос QBE представляет собой одну или несколько таблиц, строки которых содержат требования к значениям строк таблицы, получаемой в результате выполнения запроса. В соответствии с синтаксисом запроса наименование таблицы (отношения) помещают в заголовок первого столбца (сам столбец остается пустым всегда, кроме случая краткой записи включения в результат всех столбцов таблицы - см. ниже). Для каждого атрибута, участвующего в запросе (для значений результата, значений образца или для связи таблиц) в таблицу включается свой столбец, в заголовок которого помещается имя атрибута. Значения атрибутов (образец, переменная или результат запроса) помещаются в соответствующие столбцы. Для описания переменных в условиях отбора записей, а также для связывания шаблонов в запросах используются переменные - элементы примера.

Элемент примера играет роль идентификатора переменной (как в языке программирования) и задается с помощью символьно-цифровой последовательности. Константные значения, которые и составляют тот самый «образец» из термина QBE (запрос по образцу) берутся в кавычки. Для указания искомых атрибутов значение соответствующего столбца - переменную, константное выражение или пустое значение (когда необходимо включить столбец в результат, но значение не используется для связи с другими таблицами) предваряют символом «Р» (что означает «напечатать») с точкой. Занесение «Р.» во все столбцы шаблона можно заменить записью Р. в первом столбце шаблона под именем таблицы.

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

Пример. Запрос на выборку. Найти всех студентов 3-го курса

Студент Имя Курс

Р. Имя «3»

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

Для упорядочения выводимых значений по возрастанию или по убыванию, значения требуемых атрибутов в запросе предваряются символами «АО.» и «DO.» соответственно. Если требуется выполнить упорядочивание по нескольким столбцам, применяют конструкции вида: «АО(1)» (для первого столбца упорядочивания), «АО(2)» (для второго столбца упорядочивания) и так далее.