Отбор данных с помощью запросов
Лабораторная работа № 1
Знакомство с Access. Создание таблиц
База данных (БД) – упорядоченная совокупность данных, предназначен-
ных для хранения, накопления и обработки с помощью ЭВМ. Для создания и
ведения баз данных (их обновления, обеспечения доступа по запросам и выдачи
данных по ним пользователю) используется набор языковых и программных средств, называемых системой управления базами данных (СУБД)1.
Объекты базы данных Access
К объектам базы данных Access относятся:
1. Таблицы – предназначены для упорядоченного хранения данных.
2. Запросы – предназначены для поиска, извлечения данных и выполне-
ния вычислений.
3. Формы – предназначены для удобного просмотра, изменения и добав-
ления данных в таблицах.
4. Отчеты – используются для анализа и печати данных.
5. Страницы доступа к данным – предназначены для просмотра, ввода,
обновления и анализа данных через сеть или из любого места компьютера.
6. Макросы – используются для выполнения часто встречающегося на-
бора макрокоманд, осуществляющих обработку данных.
7. Модули – предназначены для описания инструкций и процедур на
языке VBA.
Основным объектом базы данных является таблица, которая состоит из
записей (строк) и полей (столбцов). На пересечении записи и поля образуется
ячейка, в которой содержатся данные.
Каждому полю таблицы присваивается уникальное имя, которое не может
содержать более 64 символов. В каждом поле содержатся данные одного типа.
1Кошелев В.Е. Access 2003. Практическое руководство. М., 2005. С. 16. 5
Типы данных
Тип | Описание |
Текстовый | Используется для хранения символьных или числовых данных, не требующих вычислений. В свойстве Размер поля задается мак-симальное количество символов, которые могут быть введены в данное поле. По умолчанию размер устанавливается в 50 знаков. Максимальное количество символов, которые могут содержаться в текстовом поле, – 255 |
Поле МЕМО | Предназначено для ввода текстовой информации, по объему пре-вышающей 255 символов; может содержать до 65 536 символов |
Числовой | Предназначен для хранения числовых данных, используемых в математических расчетах. На вкладках Общие и Подстановка можно установить свойства числового поля, среди которых Раз-мерполя, Формат поля, Число десятичных знаков |
Дата/Время | Используется для представления даты и времени. Выбор кон-кретного формата даты или времени устанавливается в свойстве Формат даты |
Денежный | Предназначен для хранения данных, точность представления ко-торых колеблется от 1 до 4 знаков после запятой. Целая часть может содержать до 15 десятичных знаков |
Счетчик | Предназначен для автоматической вставки уникальных последо-вательных (увеличивающихся на 1) или случайных чисел в каче-стве номера новой записи. Номер, присвоенный записи, не может быть удален или изменен. Поля с этим типом данных использу-ются в качестве ключевых полей таблицы |
Логический | Предназначен для хранения одного из двух значений, интерпре-тируемых как «Да / Нет», «Истина / Ложь», «Вкл. / Выкл.» |
Поле объекта OLE | Содержит данные, созданные в других программах, которые ис-пользуют протокол OLE. Это могут быть, например, документы Word, электронные таблицы Excel, рисунки, звуковые и видеоза-писи и др. Объекты OLE связываются с базой данных Access или внедряются в нее. Сортировать, группировать и индексировать поля объектов OLE нельзя |
Гиперссылка | Специальный тип, предназначенный для хранения гиперссылок |
Мастер подстановок | Предназначен для автоматического определения поля. С его по-мощью будет создано поле со списком, из которого можно выби-рать данные, содержащиеся в другой таблице или в наборе по-стоянных значений |
Создание базы данных
1. Запустите Microsoft Access 2007.
2. Нажмите на кнопку .
3. Задайте имя новой базы данных – «Записная книжка.accdb».
4. На вкладке ленты Создание в панели инструментов Таблицы нажмите
на кнопку Конструктор таблиц.
5. Введите имена полей и укажите типы данных, к которым они относятся.
Имя поля | Тип данных |
№ п/п | Счетчик |
Фамилия | Текстовый |
Имя | Текстовый |
Адрес | Текстовый |
Индекс | Числовой |
Телефон | Текстовый |
Хобби | Текстовый |
Эл. почта | Гиперссылка |
6. Выйдите из режима Конструктора, предварительно сохранив таблицу
под именем «Друзья»; ключевые поля не задавайте.
7. Откройте таблицу «Друзья» двойным щелчком мыши и заполните в ней 10 строк.
8. Добавьте поля «Отчество» и «Дата рождения», для этого:
1) установите курсор на поле, перед которым нужно вставить новый столбец;
2) выполните команду: вкладка ленты Режим таблицы ® панель инст-рументов Поля и столбцы ® Вставить;
3) щелкнув два раза на Поле1, переименуйте его в «Отчество», а По-ле2 – «Дата рождения».
9. Перейдите в режим Конструктора командой: вкладка ленты Глав-ная ® Режимы ® Конструктор.
10. Для поля «Дата рождения» установите тип данных Дата / время; в
свойствах поля выберите Краткий формат даты. 7
11. Отформатируйте таблицу следующим образом:
4) цвет сетки – темно-красный;
5) цвет фона – голубой;
6) цвет текста – темно-красный, размер – 12 пт, начертание – курсив.
12. Переименуйте поле «Хобби» в «Увлечения».
13. Удалите запись под номером 8.
14. Измените размер ячеек так, чтобы были видны все данные. Для этого
достаточно два раза щелкнуть левой кнопкой мыши на границе полей.
15. Расположите поля в следующем порядке: «№», «Фамилия», «Имя»,
«Отчество», «Телефон», «Дата рождения», «Увлечения», «Адрес», «Индекс»,
«Фото», «Эл_почта».
16. Заполните пустые ячейки таблицы.
17. В режиме Конструктора добавьте поле «Семейное положение», в ко-
тором будет содержаться фиксированный набор значений – замужем, не заму-
жем, женат, не женат. Для создания раскрывающегося списка будем использо-
вать Мастер подстановок:
7) установите тип данных Мастер подстановок;
8) в появившемся диалоговом окне выберите строку «Будет введен фик-
сированный набор значений» и нажмите кнопку Далее;
9) число столбцов – 1;
10)введите данные списка – замужем, не замужем, женат, не женат;
11)нажмите кнопку Готово.
18. С помощью раскрывающегося списка заполните новый столбец. По-
скольку таблица получилась широкая, то при заполнении данного столбца воз-
никают некоторые неудобства: не видно фамилии человека, для которого за-
полняется поле «Семейное положение». Чтобы фамилия была постоянно видна
при заполнении таблицы, необходимо воспользоваться командой Закрепить
столбцы из контекстного меню поля «Фамилия».
19. Покажите работу преподавателю.
Контрольные вопросы
1. Что называется базой данных (БД)?
2. Что такое система управления базами данных (СУБД)?
3. Чем отличается Microsoft Excel от Microsoft Access?
4. Какие объекты базы данных Microsoft Access вы знаете?
5. Какой объект в базе данных является основным?
6. Что называется полями и записями в БД?
7. Какие типы данных вы знаете?
8. Как можно переименовать поле?
9. Как можно создать поле с раскрывающимся списком?
10. С каким расширением сохраняется файл БД Access?
Лабораторная работа № 2
Создание связей между таблицами
1. Запустите Microsoft Access 2007.
2. Создадим базу данных «Фирма». Сотрудники данной организации ра-
ботают с клиентами и выполняют их заказы.
Если все сведения поместить в одной таблице, то она станет очень не-
удобной для работы. В ней начнутся повторы данных. Всякий раз, когда со-
трудник Иванов будет работать с какой-либо фирмой, придется прописывать
данные о сотруднике и клиенте заново, в результате чего можно допустить
множество ошибок. Чтобы уменьшить число ошибок, можно исходную таблицу
разбить на несколько таблиц и установить связи между ними. Это будет более
рационально, чем прежде.
Таким образом, необходимо создать 3 таблицы: Сотрудники, Клиенты и
Заказы.
Сотрудники
Имя поля | Тип данных |
Код сотрудника | Счетчик |
Фамилия | Текстовый |
Имя | Текстовый |
Отчество | Текстовый |
Должность | Текстовый |
Телефон | Текстовый |
Адрес | Текстовый |
Дата рождения | Дата/Время |
Заработная плата | Денежный |
Фото | Объект OLE |
Эл_почта | Гиперссылка |
Клиенты
Имя поля | Тип данных |
Код клиента | Счетчик |
Название компании | Текстовый |
Адрес | Текстовый |
Номер телефона | Текстовый |
Факс | Числовой |
Адрес электронной почты | Гиперссылка |
Заметки | Поле МЕМО |
Заказы
Имя поля | Тип данных |
Код заказа | Счетчик |
Код клиента | Числовой |
Код сотрудника | Числовой |
Дата размещения | Дата/Время |
Дата исполнения | Дата/Время |
Сумма | Денежный |
Отметка о выполнении | Логический |
3. Отдельные таблицы, содержащие информацию по определенной теме,
необходимо связать в единую структуру базы данных. Для связывания таблиц
следует задать ключевые поля. Ключ состоит из одного или нескольких полей,
значения которых однозначно определяют каждую запись в таблице. Наиболее
подходящим в качестве ключевого поля является «Счетчик», так как значения
в данном поле являются уникальными (т. е. исключают повторы).
4. Откройте таблицу Сотрудники в режиме Конструктора.
5. Нажмите правой кнопкой мыши на поле Код сотрудника и в появив-
шемся контекстном меню выберите команду Ключевое поле. Если в таблице не-
обходимо установить несколько ключевых полей, то выделить их можно, удер-
живая клавишу Ctrl.
6. Для таблицы Клиенты установите ключевое поле Код клиента, а для
таблицы Заказы – Код заказа.
7. Таблица Заказы содержит поля Код сотрудника и Код клиента. При
их заполнении могут возникнуть некоторые трудности, так как не всегда удает-
ся запомнить все предприятия, с которыми работает фирма, и всех сотрудников
с номером кода. Для удобства можно создать раскрывающиеся списки с помо-
щью Мастера подстановок.
8. Откройте таблицу Заказы в режиме Конструктора.
9. Для поля Код сотрудника выберите тип данных Мастер подстановок.
10. В появившемся окне выберите команду «Объект «столбец подста-
новки» будет использовать значения из таблицы или запроса» и щелкните на
кнопке Далее.
11. В списке таблиц выберите таблицу Сотрудники и щелкните на кнопке
Далее.
12. В списке Доступные поля выберите поле Код сотрудника и щелкните
на кнопке со стрелкой, чтобы ввести поле в список Выбранные поля. Таким же
образом добавьте поля Фамилия и Имя и щелкните на кнопке Далее.
13. Выберите порядок сортировки списка по полю Фамилия.
14. В следующем диалоговом окне задайте необходимую ширину столб-
цов раскрывающегося списка.
15. Установите флажок Скрыть ключевой столбе» и нажмите кнопку
Далее.
16. На последнем шаге Мастера подстановок замените при необходимо-
сти надпись для поля подстановок и щелкните на кнопке Готово.
17. Аналогичным образом создайте раскрывающийся список для поля
Код клиента.
18. После создания ключевых полей можно приступить к созданию свя-
зей. Существует несколько типов отношений между таблицами:
12)при отношении «один-к-одному» каждой записи ключевого поля в
первой таблице соответствует только одна запись в связанном поле другой таб-
лицы, и наоборот. Отношения такого типа используются не очень часто. Ино-
гда их можно использовать для разделения таблиц, содержащих много полей,
для отделения части таблицы по соображениям безопасности;
13)при отношении «один-ко-многим» каждой записи в первой таблице
соответствует несколько записей во второй, но запись во второй таблице не
может иметь более одной связанной записи в первой таблице;
14)при отношении «многие-ко-многим» одной записи в первой таблице
могут соответствовать несколько записей во второй таблице, а одной записи во
второй таблице могут соответствовать несколько записей в первой.
19. Закройте все открытые таблицы, так как создавать или изменять связи
между открытыми таблицами нельзя.
20. Выполните команду: вкладка ленты Работа с базами данных ®
кнопка .
21. Если ранее никаких связей между таблицами базы не было, то при от-
крытии окна Схема данных одновременно открывается окно Добавление табли-
цы, в котором выберите таблицы Сотрудники, Клиенты и Заказы.
22. Если связи между таблицами уже были заданы, то для добавления в
схему данных новой таблицы щелкните правой кнопкой мыши на схеме данных
и в контекстном меню выберите пункт Добавить таблицу.
23. Установите связь между таблицами Сотрудники и Заказы, для этого
выберите поле Код сотрудника в таблице Сотрудники и перенесите его на со-
ответствующее поле в таблице Заказы.
24. После перетаскивания откроется диалоговое окно Изменение связей
(рис. 1), в котором включите флажок Обеспечение условия целостности. Это
позволит предотвратить случаи удаления записей из одной таблицы, при кото-
рых связанные с ними данные других таблиц останутся без связи.
Рис. 1. Создание связи между таблицами
25. Флажки Каскадное обновление связанных полей и Каскадное удаление
связанных записей обеспечивают одновременное обновление или удаление дан-
ных во всех подчиненных таблицах при их изменении в главной таблице.
26. Параметры связи можно изменить, нажав на кнопку Объединение.
27. После установления всех необходимых параметров нажмите кнопку
ОК.
28. Связь между таблицами Клиенты и Заказы установите самостоятельно.
29. В результате должна получиться схема данных, представленная на
рис. 2.
Рис. 2. Схема данных
В приведенном примере используются связи «один-ко-многим». На схеме
данных они отображаются в виде соединительных линий со специальными
значками около таблиц. Связь «один-ко-многим» помечается «1» вблизи глав-
ной таблицы (имеющей первичный ключ) и «¥» вблизи подчиненной таблицы
(имеющей внешний ключ). Связь «один-к-одному» помечается двумя «1» (оба
поля таблиц имеют первичные ключи). Неопределенная связь не имеет никаких
знаков. Если установлено объединение, то его направление отмечается стрел-
кой на конце соединительной линии (ни одно из объединенных полей не явля-
ется ключевым и не имеет уникального индекса).
30. В таблицу Сотрудники внесите данные о семи работниках.
31. В таблицу Клиенты внесите данные о десяти предприятиях, с кото-
рыми работает данная фирма.
32. В таблице Заказы оформите несколько заявок, поступивших на фирму.
33. Покажите работу преподавателю.
Контрольные вопросы
1. С помощью чего можно создавать таблицы?
2. Что такое ключевое поле?
3. Как установить несколько ключевых полей?
4. Как установить связи между таблицами?
5. Какие существуют отношения между таблицами?
6. Что означают на схеме данных «1» и «¥»?
7. Зачем нужен Мастер подстановок?
Лабораторная работа № 3
Отбор данных с помощью запросов
Запросы являются основным средством просмотра, отбора, изменения и
анализа информации, которая содержится в одной или нескольких таблицах ба-
зы данных.
Существуют различные виды запросов, но наиболее распространенными
являются запросы на выборку, с них и начнем наше знакомство.
1. Откройте базу данных «Фирма», созданную ранее.
2. Выполните команду: вкладка ленты Создание ® Мастер запросов ®
Простой запрос.
3. В появившемся диалоговом окне (рис. 3) укажите таблицу Сотрудни-
ки и выберите поля Фамилия, Имя, Телефон. Нажмите кнопку Далее.
Рис. 3. Создание простого запроса
4. Введите имя запроса – Телефоны – и нажмите кнопку Готово. Перед
вами появится запрос, в котором можно просмотреть телефоны сотрудников.
5. Следующий запрос попробуйте создать с помощью Конструктора, для
этого выполните команду: вкладка ленты Создание ® Конструктор запросов.
6. В диалоговом окне Добавление таблиц выберите таблицу Клиенты и
щелкните на кнопке Добавить, а затем – на кнопке Закрыть.
7. Чтобы перенести нужные поля в бланк запроса, необходимо по ним
дважды щелкнуть левой кнопкой мыши (рис. 4).
Рис. 4. Создание запроса в режиме Конструктора
8. Чтобы отсортировать записи в поле Название компании в алфавитном
порядке, необходимо в раскрывающемся списке строки Сортировка выбрать
пункт по возрастанию.
9. Сохраните запрос с именем «Адреса клиентов».
10. Самостоятельно создайте запрос «Дни рождения», в котором можно
будет просмотреть дни рождения сотрудников.
11. Допустим, мы хотим узнать, у кого из сотрудников день рождения в
текущем месяце, например в апреле. Для этого откройте запрос в режиме Кон-
структора.
12. В строке Условие отбора для поля «Дата рождения» введите значе-
ние *.04.*. В данной записи * означают, что дата и год рождения могут быть
любыми, а месяц 4-м (т. е. апрель). После этого окно запроса должно выглядеть
так, как оно представлено на рис. 5.
Рис. 5. Создание запроса
13. Закройте Конструктор и просмотрите полученный результат. Если в
запросе Дни рождения нет ни одной записи, значит, в таблице Сотрудники нет
ни одного человека, родившегося в апреле. Добавьте в таблицу Сотрудники не-
сколько человек, родившихся в апреле, и посмотрите, как изменится запрос. За-
просы автоматически обновляются при каждом открытии.
14. Если нам нужно узнать, кто из сотрудников родился в мае, то придет-
ся создать новый запрос или изменить условие в существующем запросе Дни
рождения. Данная процедура является неудобной и занимает много времени.
Если приходится часто выполнять запрос, но каждый раз с новыми значениями
условий используют запрос с параметром. При запуске такого запроса на экран
выводится диалоговое окно для ввода значения в качестве условия отбора. Что-
бы создать запрос с параметром, пользователю необходимо ввести текст сооб-
щения в строке Условие отбора бланка запроса (рис. 6).
Рис. 6. Создание запроса с параметром
15. Запись Like[Введите дату] означает, что при открытии запроса поя-
вится диалоговое окно (рис. 7) с текстом «Введите дату» и полем для ввода
условия отбора. Если ввести условие *.04.*, то в запросе появится список со-
трудников, родившихся в апреле. Запустите запрос еще раз и введите значение
*.05.*, посмотрите, как изменился запрос.
Рис. 7. Окно для ввода условия отбора
16. Измените запрос «Телефоны» так, чтобы при его запуске выводилось
диалоговое окно с сообщением «Введите фамилию». Поскольку в запросе нуж-
но вывести конкретную фамилию, в условии отбора слово Like писать не надо.
17. Измените запрос «Телефоны» так, чтобы при его запуске запрашива-
лись не только фамилия, но и имя сотрудника.
18. Самостоятельно создайте запрос «Выполненные заказы», содержащий
следующие сведения: фамилия и имя сотрудника, название компании, с кото-
рой он работает, отметка о выполнении и сумма заказа. Данные запроса возь-
мите из нескольких таблиц.
19. В условии отбора для логического поля Отметка о выполнении вве-
дите Да, чтобы в запросе отображались только выполненные заказы.
20. Сделайте так, чтобы столбец Отметка о выполнении не выводился на
экран.
21. Создайте запрос Сумма заказа, в котором будут отображаться заказы
на сумму более 50 000 руб.
22. Измените запрос, чтобы сумма заказа была от 20 000 до 50 000 руб.
Для данных запросов в условии отбора можно использовать операторы сравне-
ния >, <, =, >=, <=, < > и логические операторы And, Or, Not и др.
23. Иногда в запросах требуется произвести некоторые вычисления, на-
пример посчитать подоходный налог 13 % для каждой сделки. Для этого от-
кройте запрос Сумма заказа в режиме Конструктора.
24. В пустом столбце бланка запроса щелкните правой кнопкой мыши на
ячейке Поле и в появившемся контекстном меню выберите команду Постро-
ить. Перед вами появится окно Построитель выражений (рис. 8), который
состоит из трех областей: поля выражения, кнопок операторов и элементов
выражения. Сверху располагается поле выражения, в котором оно и создается.
Вводимые в это поле элементы выбираются в двух других областях окна По-
строителя.
25. В левом списке откройте папку Запросы и выделите запрос Сумма за-
каза. В среднем списке выделите поле Сумма и нажмите кнопку Вставить.
Идентификатор этого поля появится в поле выражения Построителя.
26. Щелкните на кнопке * и введите 0,13 (см. рис. 8). Таким образом, мы
посчитаем подоходный налог 13 %.
Рис. 8. Построитель выражений
27. Нажмите кнопку ОК, после чего в ячейке свойства Поле появится зна-
чение «Выражение1: [Сумма]*0,13».
28. Замените Выражение1 на Налог и закройте Конструктор.
29. Откройте запрос и посмотрите, что у вас получилось.
30. Используя Построитель выражений, добавьте в запрос Сумма заказа
поле Прибыль, в котором будет вычисляться доход от заказа (т. е. сумма минус
налог).
31. Создайте запрос Менеджеры, с помощью которого в таблице Со-
трудники найдите всех менеджеров фирмы.
32. Покажите работу преподавателю.
Контрольные вопросы
1. Для чего предназначены запросы?
2. Какие виды запросов вы знаете?
3. С помощью чего можно создавать запросы?
4. Для чего используют запрос с параметром?
5. Как можно сделать вычисления в запросах?
6. Что означает запись в условии запроса « =50»?
7. Можно ли создавать запросы на основе нескольких таблиц?
Лабораторная работа № 4