Создание таблиц, ввод и редактирование данных в СУБД MS Access.
1. С помощью конструктора. Необходимо в разделе «Таблицы» структуры БД, нажать кнопку «Создать» и в дополнительном окне выбрать необходимый пункт «Конструктор».
2. Далее необходимо в конструкторе указать «Имя поля» таблицы,
«Тип данных» поля, по желанию «Примечание» и при достаточной подготовке можно использовать расширенные настройки полей, такие как: Символьный размер поля, кодировка, формат и многое прочее, представлены в нижней части окна конструктора.
- «Имя поля» таблицы - это просто название столбца, несет в себе информационный характер для пользователя
- «Тип данных» - требует серьезного подхода к своему выбору, так как он определяет тип информации вносимой в поля таблицы. В зависимости от типа данных, БД будет позволять или не позволять вам производить различные операции. К примеру: получение суммы остатков по складам, возможно только если поле «Остатки» будет числового типа данных.
- «Примечание» - носит также информационный характер, но в отличие от «Имени поля», примечание сможете видеть только Вы, в режиме конструктора.
- «Ключевое поле» - используют для создания связей между таблицами. Все значения этого поля должны быть уникальными. Связь по КП используют для создания запросов, отчетов.
Пример создания таблицы в MS Access:
Рис.1 Создание таблицы
Поиск данных и создание запросов в СУБД
MS Access.
Запросы — это объект базы данных, который служит для извлечения данных из таблиц и предоставления их пользователю в удобном виде. Особенность запросов состоит в том, что они черпают данные из базовых таблиц и создают на их основе временную таблицу. Применение запросов позволяет избежать дублирования данных в таблицах и обеспечивает максимальную гибкость при поиске и отображении данных в базе данных.
Access позволяет создавать запросы двух типов: QBE-запросы, SQL-запросы.
QBE-запросы (Query By Example) — запросы, строящиеся с помощью конструктора запросов, представляющего собой графический инструмент для создания запросов по образцу.
SQL-запросы — запросы, строящиеся при помощи унифицированного набора инструкций SQL (Structured Query Language — структурированный язык запросов).
Все запросы делятся на две группы: запросы-выборки, запросы-действия.
Запросы-выборки осуществляют выборку данных из таблиц в соответствии с заданными условиями. К этой группе запросов относятся следующие:
·Запрос к связанным таблицам — позволяет производить выборку данных из связанных таблиц.
·Перекрестный запрос — отображает итоговые данные с группировкой их по горизонтали и вертикали, выводя результаты их обработки в виде таблиц.
·Запрос с параметром — позволяет пользователю задать критерий отбора, введя нужный параметр при вызове запроса.
·Запрос с вычисляемым полем — позволяет рассчитать данные на основе других полей из той же строки запроса.
·Запрос с критерием поиска — позволяет производить отбор записей в соответствии с заданным критерием поиска.
· Запрос с итогами — производит математические вычисления и выдает результат.
Запросы-действия позволяют модифицировать данные в таблицах: удалять, обновлять, добавлять записи. К этой группе запросов относятся следующие.
· Запросы на создание таблицы создают таблицы на основании данных, содержащихся в результирующем множестве запроса.
·Запросы на добавление записей позволяют добавлять в таблицу записи, создаваемые запросом.
· Запросы на обновление изменяют значения существующих полей в соответствии с заданным критерием.
В Access можно создавать запросы при помощи Мастера запросов и с помощью Конструктора.
Для создания запросов при помощи Мастера имеются следующие мастера:
·Мастер создания простого запроса;
·Мастер создания перекрестного запроса;
·Мастер создания запросов на поиск повторяющихся записей;
·Мастер создания запросов на поиск записей без подчиненных записей.
При создании запроса с помощью Мастера производится пошаговое выполнение действий в диалоговом окне Мастера запросов.
При создании запросов в режиме Конструктора открывается специальный бланк, называемый бланком запросов по образцу. Этот бланк состоит из двух, областей. В верхней части отображаются структуры таблиц, к которым адресован запрос, а нижняя часть представляет собой таблицу описания запроса, которая имеет 5 основных строк. Количество столбцов в запросе определяется количеством выбранных полей, которые будут использованы в запросе.
Назначение строк в бланке Конструктора запросов:
·1-я строка Поле предназначена для ввода имени поля запроса и обозначения поля — источника данных или вычисляемого выражения;
· 2-я строка Имя таблицы предназначена для задания имени таблицы — источника данных;
· 3-я строка Сортировка предназначена для указания порядка сортировки в данном поле. Может принимать следующие значения: по возрастанию, по убыванию, отсутствует;
· 4-я строка Вывод на экран содержит флажок, указывающий на то, будет ли выводиться соответствующее значение поля;
· 5-я строка Условие отбора содержит критерий, по которому будет происходить отбор записей в результирующую таблицу.
Запросы могут быть созданы на основе одной или нескольких таблиц. Многотабличные запросы позволяют получить информацию из нескольких предварительно связанных между собой таблиц.
Пример создания запросов в MS Access:
Рис.2 Создание запросов
Создание запросов в режиме конструктора
Для создания запросов по образцу используется режим конструктора. После определения таблиц (или запросов), на основе которых будет создаваться новый запрос, он будет открыт в режиме конструктора. Окно конструктора запросов состоит из двух частей.
В верхней части окна находятся списки полей тex таблиц или запросов, на основе которых строится данный запрос, в нижней части окна располагается бланк запроса.
Каждая строка бланка запроса выполняет определенную функцию:
•строка Поле используется для выбора полей;
•строка Имя таблицы позволяет определить, какой таблице принадлежит поле;
•в строке Сортировка указывается тип сортировки записей;
•строка Вывод на экран позволяет задать те поля, которые должны быть выведены в динамической таблице;
•строка Условие отбора используется для ввода условия выбора данных.
Первым шагом построения запроса является выбор полей. Необходимые поля можно выбрать несколькими способами:
•перенести мышью поле из списка полей в верхней части окна конструктора в нужный столбец бланка запроса;
•выбрать нужное поле двойным щелчком мыши в списке полей соответствующей таблицы (при этом оно будет помещено в следующий свободный столбец бланка запроса);
•выбрать нужное поле из раскрывающегося списка строки Поле.
Иногда требуется включить в запрос все поля исходной таблицы. Для этого необходимо сделать двойной щелчок мышыо по строке заголовка соответствующего списка полей, выделяя таким образом сразу все поля, и перенести их одновременно в бланк запроса. При этом каждое поле будет помещено в отдельный столбец. Можно воспользоваться другим способом. В начале каждого списка полей, приведенных в верхней половине окна, находится символ *, который означает «все поля».
У метода переноса * есть одно существенное достоинство. Если в структуре исходной таблицы производятся какие-либо изменения, например, добавляется новое поле, запрос будет автоматически изменен (при использовании первого способа запрос выбирает только те поля, которые были перенесены в бланк запроса. Однако если необходимо определить условие отбора, придется дополнительно добавить отдельные поля в бланк запроса, а чтобы они дважды не включались в выберу снять для соответствующих полей флажки Вывод на экран.
При выполнении запроса в качестве заголовков столбца динамической таблицы используются имена выбранных полей. Для переименования поля в результирующей динамической таблице необходимо установить текстовый курсор перед именем поля в строке Поле бланка запроса и ввести новое имя с двоеточием. В результате получится следующая конструкция: Новое имя: Старое имя поля.
Обычно Microsoft Access выводит записи в том порядке, в каком они выбираются из базы данных. Можно изменить последовательность вывода данных, определив ее порядок в строке Сортировка. При сортировке по нескольким полям порядок обработки полей определяется их положением в бланке запроса: сначала сортируются значения в крайнем левом поле и далее слева направо.
По умолчанию Microsoft Access выводит все поля, включенные в бланк запроса. Если поле используется только для определения условия выбора данных, для него необходимо снять флажок в строке Вывод на экран, щелкнув мышью в соответствующей ячейке.
Выражение, которое указывает, какие записи необходимо включить в динамическую таблицу при выполнении запроса вводится в строку Условие отбора для поля, по которому это условие необходимо проверить. Для задания условий отбора можно использовать операторы меньше (<), меньше или равно (<=), больше (>), больше или равно (>=), не равно (<>), равно (=), Like (выбор по маске), Between (между), In (в интервале), And (и), Or (или) и другие, а также имена объектов, константы и функции.
Завершение ввода условия выполняется нажатием клавиши Enter или просто переходом к другой ячейке бланка запроса с помощью клавиш управления курсором или мыши. Мicrosoft Access проводит синтаксический анализ заданного выражения. Например, если было введено значение текстового поля то это выражение будет представлено в кавычках. Если выражение не содержит никакого оператора, Microsoft Access будет исходить из того, что подразумевается оператор = или Like.
Допускается использование нескольких условий отбора, которые можно задать как для разных полей, так и для одного поля. Для создания сложных условий выбора данных используются логические операторы And и Or. Если условия отбора связаны оператором And, запись выбирается только в случае выполнения всех условий. Если же условия отбора связаны оператором Or, запись выбирается при выполнении хотя бы одного из всех условий. При определении нескольких условий отбора, связанных оператором And, для различных полей необходимо просто задать условие в строке Условие отбора для каждого из полей, образующих критерий выбора данных. Если же при определении нескольких условий поместить их в различные строки — строку Условие отбора и строку или — Microsoft Acces будет использовать Or-связь. В результате условия, расположенные в одной строке, связываются оператором And, в разных строках — оператором Or.
Вычисления в запросе
Запрос на выборку можно использовать не только для того, чтобы выбирать из таблиц базы данных содержащуюся в них информацию, но также чтобы производить вычисления и отображать результаты вычислений в динамической таблице. Сдедует иметь в виду, что результаты вычислений не сохраняются в таблицах базы данных. При выполнении запроса вычисления выполняются всякий раз заново, поэтому результаты всегда отражают текущее состояние базы данных.
Для выполнения вычислений в запросе необходимо в бланке запроса создать новое вычисляемое поле. Для этого следует в пустую ячейку строки Поле ввести вычисляемое выражение, в котором могут использоваться имена полей таблиц, константы и функции, связанные с помощью арифметических операторов. Для изменения порядка вычислений и группировки данных в выражениях используются круглые скобки, а имена полей таблицы должны быть заключены в квадратные скобки. Если в запросе используется несколько таблиц, во избежание ошибок следует указывать полное имя поля, помещая перед именем поля имя таблицы. В этом случае для разделения имен объектов используется !. Таким образом, запись полного имени поля таблицы выглядит следующим образом: [Имя таблицы]![Имя поля]. Имя вычисляемого поля выводится перед выражением и отделяется от него двоеточием. Например,
Выражение1: [Цена]*[Количество], где Цена и Количество — имена полей.
Имя вычисляемого поля — Выражение1 — становится заголовком столбца в таблице с результатами выполнения запроса. Это имя можно изменить.
Для вычисляемых полей допускается сортировка, задание условий отбора и расчет итоговых значений, как и для любых других полей.
Параметрические запросы
При создании параметрического запроса прежде всею формируется обычный запрос на выборку. В ячейку строки условие отбора для заданного поля вводится необходимый оператор и имя параметра, заключенное в квадратные скобки. Это имя выводится в диалоговом окне при выполнении запроса, поэтому в качестве имени параметра удобно использовать какую-либо содержательную фразу или приглашение на ввод данных. В одном запросе можно установить несколько параметров, однако каждый параметр должен иметь уникально содержательное имя.
Дополнительно, выполнив команду Запрос / Параметры, в диалоговом окне Параметры запроса можно перечислить имена всех параметров, используемых в запросе, и для каждого параметра определить тип данных. Следует иметь в виду, что текст, введенный в качестве имени параметра в бланке запрос должен в точности соответствовать тексту, введенному в диалоговое окно Параметры запроса при определении типа данных параметров.
Перекрестный запрос
Перекрестный запрос позволяет представить данные в виде таблицы, в которой отображаются результаты вычислений (сумма, количество записей, среднее значение и т.п.), выполненных по данным из какого-либо поля таблицы. Результаты вычислений группируются по двум наборам данных, один из которых располагается в левом столбце таблицы, выступая в качестве заголовков строк, а второй — в верхней строке, образуя заголовки столбцов. Таким образом, при создании перекрестного запроса главная задача — определить роль и местоположение каждого поля таблицы.
Пои создании перекрестного запроса в режиме конструктора необходимо указать поля, значения которых будут заголовками столбцов и строк, а также поле, значения которого следует использовать в вычислениях. Для этого по команде Запрос / Перекрестный в бланк запроса добавляются строки Групповая операция и Перекрестная таблица. Строка Перекрестная таблица используется для определения роли поля в перекрестном запросе (Заголовки строк, Заголовки столбцов, Значение). Строка Групповая операция позволяет указать, какие именно вычисления необходимо произвести в перекрестном запросе.
Запрос на изменение
Запросом на изменение называют запрос, который за одну операцию изменяет или перемещает несколько записей. Существует четыре типа запросов на изменение.
•На удаление записи. Запрос на удаление удаляет группу записей из одной или нескольких таблиц. Например, запрос на удаление позволяет удалить записи о товарах, поставки которых прекращены или на которые нет заказов. С помощью запроса на удаление можно удалять только всю запись, а не отдельные поля внутри нее.
• На обновление записи. Запрос на обновление вносит общие изменения в группу записей одной или нескольких таблиц. Например, на 10 процентов поднимаются цены на все молочные продукты или на 5 процентов увеличивается зарплата сотрудников определенной категории. Запрос на обновление записей позволяет изменять данные в существующих таблицах.
• На добавление записей. Запрос на добавление добавляет группу записей из одной или нескольких таблиц в конец одной или нескольких таблиц. Например, появилось несколько новых клиентов, а также база данных, содержащая сведения о них. Чтобы не вводить все данные вручную, их можно добавить в таблицу «Клиенты».
• На создание таблицы. Запрос на создание таблицы создает новую таблицу на основе всех или части данных из одной или нескольких таблиц. Запрос на создание таблицы полезен при создании таблицы для экспорта в другие базы данных Microsoft Access или при создания архивной таблицы, содержащей старые записи
Запрос на создание таблицы
Запрос на создание таблицы используется для сохранения результата запроса. Этот запрос основан на запросе на выборку, но в отличие от него сохраняет таблицу с результатами запроса. Необходимость в запросе на создание таблицы возникает при построении запроса на обновление полей таблицы с использованием операций группировки данных. В этом случае кроме обновляемой таблицы требуется таблица — источник данных.
При открытии запроса будут выданы предупреждения о создании таблицы и о количестве добавляемых записей. При последующих открытиях — выдается предупреждение об удалении старой таблицы Число студентов.
Запрос на обновление
Для обновления данных в полях базовых таблиц может быть использован Запрос на обновление. Изменения вносятся в группу записей, отбираемых с помощью указанных пользователем условий отбора. Значения для изменений в полях определяются в бланке запроса в строке Обновление.
Первоначально Запрос на обновление создается как Запрос на выборку, а затем в окне конструктора запросов превращается в запрос на обновление с помощью кнопки Вид запроса (Обновление) на панели инструментов или команды меню Запрос / Обновление. После выполнения этой команды в бланке запроса появляется строка Обновление.
Для отбора обновляемых записей надо включить в бланк запроса поля, требующие обновления, а также поля, по которым задаются условия отбора. Условия отбора записываются так же, как при создании запроса на выборку.
Для обновляемого поля в строку Обновление надо ввести значение или выражение, определяющее новое значение поля. Выражение можно создать с помощью построителя выражений.
После выполнения команды Запрос / Запуск или нажатия соответствующей кнопки открывается диалоговое окно с сообщением о числе обновляемых записей и вопросом о продолжении операции обновления.
Заметим, если в схеме данных установлен параметр Обеспечение целостности данных и Каскадное обновление связанных полей, то при обновлении ключевых полей результат зависит от взаимосвязей обновляемой таблицы с другими таблицами.
Запрос на добавление
С помощью запроса на добавление производится добавление записей из таблицы запроса в другую таблицу. Поэтому надо позаботиться, чтобы в запросе были сформированы записи с полями, соответствующими полям в другой таблице. Структура записи таблицы запроса может не полностью совпадать со структурой записи таблицы, в которую добавляются записи. В записи запроса может быть меньше полей, если на поля в таблице, куда добавляются записи, не наложено требование по обязательности их заполнения. Допускается несоответствие типов полей, если возможно преобразование типа данных одного поля в тип данных другого поля.
Первоначально запрос на добавление создается как запрос на выборку из одной или нескольких взаимосвязанных таблицах. Затем в окне конструктора запросов он превращается в запрос на добавление с помощью кнопки Вид запроса (Добавление) на панели инструментов или команды меню Запрос / Добавление. При этом открывается диалоговое окно Добавление.
В этом окне в поле Имя таблицы вводится или выбирается имя таблицы, в которую надо добавить записи.
После выполнения этой команды в бланке запроса появляется строка Добавление.
Для формирования добавляемых записей надо включить в бланк запроса поля, соответствующие определенным полям таблицы, в которую будет производиться добавление. Кроме того, в бланк запроса могут быть включены поля, по которым задаются условия отбора. Условия отбора вносятся в ячейки строки Условие отбора. Если в таблице, куда добавляются записи, есть ключ, ключевые поля должны быть обязательно внесены в бланк запроса.
Для указания в строке Добавление имен полей таблицы получателя, в которые будут добавляться значения из соответствующих полей таблицы запроса, надо в каждой ячейке открыть список и выбрать нужное имя.
Для предварительного просмотра записей, которые планируется добавить в таблицу, надо нажать кнопку Представление запроса на панели инструментов. Возврат в режим конструктора запросов производится по этой же кнопке.
Для добавления записей надо нажать кнопку Запуск на панели инструментов. Открывается диалоговое окно с сообщением о числе обновляемых записей и вопросом о продолжении операции обновления.
Те записи, добавление которых приведет к появлению совпадающих или пустых значений в ключевом поле, не будут добавлены. Записи не добавляются и в случае, если невозможно преобразование типа данных в добавляемых полях или не выполняются условия на значения.