Практическое занятие № 5. Тема: Закрепление навыков по работе с базой данными Аппаратное и программное обеспечение: компьютер с установленной операционной системой Wista, пакет MS Office 2007, Access. Цель работы: закрепить навыки по основам работы с базами данных. Ход занятия: ВНИМАНИЕ!!! если при создании базы данных у вас по панелями инструментов появляется Предупреждение системы безопасности Часть содержимого базы данных отключена, нажмите на кнопку Параметры левой кнопкой мыши и в появившемся окне выберите Включить это содержимое, ОК. Запустите программу Access. Нажмите Новая база данных.Задайте имя базы Своя_фамилия. Сохраните в своей папке. Нажмите Создать. У вас откроется новая таблица в Режиме таблицы, помещая курсор в поле Добавить поле и нажимая клавишу Enter или клавиши управления курсором, после введения соответствующего текста, заполните таблицу по образцу. (Следите за изменением поля Код (заполняется автоматически), чтобы было как в таблице лучше заполнять по столбцам) Таблица 1 Образец однотабличной базы данных Сохраните таблицу под именем Студенты и закройте ее. Запросы к таблице На панели Создание выберите Мастер запросов , в открывшемся окне выберите Простой запрос нажмите OK. Появится диалоговое окно Создание простых запросов. В поле Таблицы и Запросы выберите строку Таблица: Студенты. В поле Доступные поля укажите последовательно Фамилия и Балл. С помощью значка > скопируйте эти поля в Выбранные поля и нажмите Далее, Далее. В новом окне выберите кнопку Изменить макет запроса, нажмите Готово. В строке Условие отбора поля Балл запишите условие >12 (знаки < и > набираются с английской раскладки клавиатуры). Сохраните и закройте запрос. Переименуйте имя запроса (по созданному запросу щелкните правой кнопкой мыши и 1 выберите Переименовать). Задайте имя Запрос Балл. Выполните двойной щелчок на вновь созданном запросе. Убедитесь, что получен нужный результат — фамилии и баллы студентов, соответствующих запросу. Таблица 2 Результат выполнения запроса Фамилия Балл Абрамов 13 Калинина 14 Игошина 13 Используя описанный алгоритм (Создать, Мастер запросов, Простой запрос, Выбрать таблицу: Студенты, Изменить макет запроса…), сформируйте 4 новых запроса к таблице Студенты: выведите Фамилии и имена студентов, проживающих в Красном Яре (имя запроса – Запрос Красный Яр); Фамилии студентов, специализирующихся по Начальным классам (Запрос Начальные классы); Если в данных имеется вариативная часть текстовой строки, например Фамилия на А, в запросе используется специальный знак *, который заменяет любое количество любых символов, то есть условием отбора будет: А* Имена и баллы студентов, чьи фамилии начинаются на букву А – А* (Запрос имя на А); Имена студентов, проживающих в Жирновске и специализирующихся по Физической культуре (Запрос Жирновск Физра). Просмотрите сформированные Вами запросы и убедитесь в их правильности. Типы данных Создайте новую таблицу с помощью Конструктора – Панель инструментов Создание / Конструктор таблиц. Заполните структуру таблицы, как показано на рисунке 1. Столбец Имя поля набирается вручную, Тип данных – выбирается из предложенных. Рис.1 Проектирование базы данных в режиме Конструктора 2 Сохраните созданную структуру под именем Сотрудники. На вопрос «Ключевые поля не заданы. Создать сейчас?» ответьте отрицательно. Выполните двойной щелчок на вновь созданной Таблице Сотрудники. Заполните её по образцу. Таблица 3 Образец заполнения таблицы Код Фамилия Дата найма Зарплата Телефон Семейное Кол-во (дом) положение детей 1 Иванов 12.01.07 5500р. 32-17-22 1 2 Петров 11.05.08 6000р. 12-34-89 0 3 Аникина 30.12.07 4500р. 48-45-39 2 4 Самойлова 15.09.08 10000р. нет 1 5 Арапов 08.01.08 10500р. 25-12-99 1 6 Долгих 15.01.07 6000р. нет 2 Создайте к таблице простые запросы (задайте запросам соответствующие имена): Фамилии сотрудников, не состоящих в браке (в условии отбора указываете Нет); Фамилии сотрудников, состоящих в браке (Да) и имеющих более 1 ребенка (>1); Фамилии сотрудников, состоящих в браке или имеющих 1 ребенка (одно условие набираете в строке Условие отбора, второе в строке Или); Фамилии сотрудников, зарплата которых более 5000 р., но не превышает 10000 р. – >=5000 AND <10000; Все данные о сотрудниках, фамилия которых начинается на букву «А» и заканчивается на букву «в» - A*в; Все записи о сотрудниках, принятых в 2008 году - *.*.08. Все записи о сотрудниках, не имеющих телефона (нет). Запросы на изменение исходной таблицы Запрос на удаление группы записей Пусть из таблицы Студенты необходимо удалить записи о тех, кто проживает в Линево. Для этого сначала сформируйте простой запрос, создающий набор записей, подлежащих удалению из таблицы (условие отбора – Линево). В поле Доступное поле указываются последовательно все поля таблицы Студенты. Запрос назовите Запрос удаление Линево. Откройте этот запрос в режиме Конструктора (правой кнопкой мыши щелкните по Запросу и выберите Конструктор); выберите Тип запроса - Удаление. Закройте, сохраните и запустите запрос. Ответьте утвердительно на сообщения системы об изменении исходной таблицы и удалении двух записей. 3 Рис. 2 Типы запросов Обратитесь к исходной таблице Студенты и убедитесь, что произошли необходимые изменения. Запрос на обновление записей Эти запросы являются удобным средством для внесения глобальных изменений в таблицы. Например, изменился телефонный код города и нужно изменить телефонные номера всех сотрудников. Пусть в таблице Студенты нужно во всех записях увеличить количество баллов на 2. Запрос на обновление записей создается следующим образом. Сначала создайте простой запрос к таблице Студенты, содержащий только поле Балл. Запрос назовите Запрос изменение Балл. Откройте этот запрос в режиме Конструктора и выберите в Тип запроса - Обновление. В бланк запроса добавится новая строка — Обновление (см. рисунок). В ячейку строки Обновление для поля Балл внесите выражение [Балл]+2. Закройте, сохраните и запустите запрос. Обратитесь к исходной таблице Студенты и убедитесь, что произошли необходимые изменения. Рис. 3 Заполнения поля Обновление Запрос на добавление записей Создайте новую таблицу Таблица2 в режиме Конструктора, которая будет содержать только 2 поля: Фамилия и Балл. Внесите в таблицу произвольно несколько записей (напишите себя и двух-трёх товарищей). Чтобы добавить эти записи в таблицу Студенты, нужно сформировать простой запрос к Таблице2, включив в него поля Фамилия и Балл (если по случайности в Таблице2 имеются другие поля, например Код, их включать в запрос не надо). Запрос назовите Запрос добавление студентов. Откройте полученный запрос в режиме Конструктора и выберите из верхнего меню Запрос пункт Добавление. В открывшемся диалоговом окне укажите таблицу Студенты, в которую вы хотите добавить записи. 4 Закройте, сохраните и запустите запрос. Обратитесь к исходной таблице и убедитесь, что произошли необходимые изменения. Access. Вычисляемые поля в запросах Вычисляемые поля содержат данные, полученные в результате расчетов, проведенных с использованием значений из других полей. Создайте новую таблицу в режиме Конструктора. Для оценок по предметам выберите тип данных – числовой. Таблицу назовите Успеваемость. Таблица 4 Образец заполнения таблицы Код Фамилия Математика Физика Русский язык 1 Сергеев 5 5 5 2 Петров 3 4 4 3 Савельев 4 4 4 4 Добрынин 5 4 3 На основании этой таблицы создайте простой запрос, содержащий все поля. (Запрос назовите Запрос Общий балл) Откройте его в режиме Конструктора, для вычисления общего балла вызовите Построитель выражений, щёлкнув правой кнопкой мыши в области имени свободного поля (после поля Русский язык). Рис. 4 Вызов Построителя выражений Впишите в появившемся окне имя будущего поля Общий балл: и составьте формулу, как на рисунке, поочередно щёлкая мышкой по имеющимся полям. Нажмите ОК. Рис. 5 Конструирование формулы 5 Запрос с полученной формулой будет выглядеть так. Рис. 6. Вид запроса на вычисления Закройте, сохраните и запустите запрос. Проверьте результат. Таблица 5 Результат вычисления общего балла Код Фамилия Математика Физика Русский язык 1 Сергеев 5 5 5 2 Петров 3 4 4 3 Савельев 4 4 4 4 Добрынин 5 4 3 Общий балл 15 11 12 12 Откройте таблицу Успеваемость в режиме Конструктора и внесите поле Дата рождения (тип – Дата/Время) . Заполните его любыми датами рождения. Создайте по аналогии с предыдущим запрос (Запрос Дата рождения, включает три поля: Код, Фамилия, Дата рождения), в котором вычислите возраст студентов по формуле Возраст: (Date() - [Дата рождения]) / 365 Здесь оператор Date() дает текущую дату компьютера. У Вас должно получиться нечто подобное. Таблица 6 Результат вычисления возраста Но поскольку возраст не принято вычислять до 8-го знака после запятой, выполним деление нацело. Для этого в формуле вместо знака деления / надо использовать \ . Сделайте это. Убедитесь, что пересчёт произошёл. По результатам вычислений можно получить итоговые значения. Пусть, к примеру, нужно вычислить среднее значение общего балла по группе. Для этого сформируйте запрос к тому запросу, в котором высчитывается общий балл. При создании запроса к запросу укажите на втором шаге, что отчет Итоговый, 6 нажмите на кнопку Итоги, поставьте галочку против функции Avg, (что означает средний). Вы получите следующий результат. Запрос назовите Запрос общий балл. Таблица 7 Результат вычисления среднего значения общего балла Avg _ Общий Балл 12,5 Создание связи (один к одному) Таблица 8 Образец №1 для создания связи Код Табельный номер Фамилия Должность 1сотр 101 Петров Ассистент 2удни 102 Ильин Доцент 3 103 Васильева Заведующая 4 ка 104 Семенова Лаборант кафедрой Таблица 9 Образец №2 для создания связи Табельный Зарплата 101 2000р. номер 102 4000р. 103 3200р. 104 1500р. Создайте в режиме Конструктора две таблицы. Чтобы было возможно установление связи между таблицами, необходимо в каждой таблице указать ключевое поле, по которому в дальнейшем будет устанавливаться связь. Для этого откройте по очереди каждую таблицу в режиме Конструктора и отметьте в каждой таблице поле Табельный номер в качестве ключевого с помощью из панели Конструктора. Кнопки Ключевое поле Установите между таблицами связь по полю Табельный номер. Для этого на панели Работа с базами данных нажмите Схема данных, откроется диалоговое окно Добавление таблицы, в нем последовательно двойным щелчком мыши выберите первую и вторую таблицы, закройте окно Добавление таблицы. Перетащите мышью поле Табельный номер из первой таблицы во вторую. Установите флажок Обеспечение целостности данных; Установите флажок Каскадное обновление связанных полей; Установите флажок Каскадное удаление связанны записей; Щелкните по кнопке Создать. Откройте первую связанную таблицу. Щелкните по значку структуры + в любой строке. Попробуйте внести изменения в открывшуюся запись. Проверьте, как это изменение отразится на данных во второй таблице. 7 Создание форм Формы предназначены для ввода и отображения данных. Форма является альтернативным по отношению к таблице видом представления информации (отдельная карточка для каждой записи). Быстрое создание формы На вкладке Таблицы выделите таблицу Студенты. На панели Создание нажмите Форма. Сохраните полученную форму. Форму назовите Личная карточка. Внесите в таблицу через созданную карточку несколько новых записей. Создание формы с помощью мастера Выберите в качестве источника данных таблицу Студенты (выделите ее). На панели Создание, в группе Формы нажмите кнопку Другие формы. Выберите пункт Мастер форм. Следуйте указаниям мастера построения форм, выбирая нужные варианты (перенесите все поля Далее, внешний вид – в один столбец Далее, стиль – любой Далее. После этого можно приступать к вводу или просмотру данных с помощью формы. Дополните свою базу данных двумя новыми записями. Вставка в форму графического объекта Графические объекты добавляются в форму стандартным методом Windows, основанным на копировании через буфер обмена. Откройте форму в режиме Конструктора, На панели Конструктор в группе Элементы управления выберите Рисунок, Щелкните левой кнопкой мыши рядом со словом Студенты, установите путь к файлам графики, если это не установлено по умолчанию, выберите подходящий рисунок. При необходимости уменьшите его размер. Вставка в форму надписи Откройте форму в режиме конструктора; выберите элемент управления Подпись. Укажите место в форме, где вы хотите создать надпись. Наберите текст надписи (любой). При необходимости измените цвет и размер шрифта. Форма с вкладками Создайте новую форму в режиме конструктора Создание/Конструктор форм. На панели элементов щелкните на элементе Вкладка. В форме укажите место, где хотите поместить левый верхний угол вкладки, и, не отпуская кнопку мыши, переведите указатель туда, где должен располагаться правый нижний угол. Разместите на каждой вкладке нужные элементы управления, например, на первую закладку поместите одно из полей: выведите список полей, нажав кнопку Добавить поля; перенесите одно из полей с помощью мыши на вкладку. Измените название вкладки в соответствие с назначением. На вторую вкладку поместите картинку. Закройте и сохраните форму, назовите Форма. 8