Работа с базой данных: для чего предназначены запросы
Содержание:
- Построение запроса
- Свойства таблиц и полей в Access
- БД из трех таблиц
- Объединение таблиц в запросы
- Чтобы создать общий запрос:
- ПАРАМЕТРИЧЕСКИЕ ЗАПРОСЫ
- Создание таблицы базы данных
- Создание запросов на добавление данных
- Сохранение, добавление, удаление
- Добавление и удаление записей
- Запросы на изменение
- Логические операции
- Запрос с параметром
- Заполнение таблицы
- Какие бывают запросы
- 2.4. Microsoft Access 2007
- Отношения между таблицами в Access
Построение запроса
Любой запрос имеет строгую иерархию построения, которая не может быть нарушена. Может произойти ошибка. Конструкция будет рассказана на основе простого запроса из трех компонентов. Сначала идут SELECT, FROM и Where. Операторы можно вводить как в верхнем, так и в нижнем регистре, это не влияет на выполнение. Но по правилам хорошего тона все операторы пишутся с большой буквы и с обязательными условиями, названиями таблиц и т.д. Они пишутся строчными буквами. И так легче ориентироваться при просмотре кода. Возвращаясь к коду, следует отдельно сказать, что за что отвечает.
При работе в разных средах разработки запрос обычно строится одинаково. Итак, вы столкнулись с вопросом «что такое запросы доступа» или в другой среде разработки, и можете быть уверены, что ответы, приведенные в этой статье, подойдут для всех.
Свойства таблиц и полей в Access
У полей и таблиц есть свойства, позволяющие управлять их работой и характеристиками:
- Это свойства таблицы.
- Это свойства поля.
В БД Access под свойствами таблицы понимают атрибуты, которые определяют её работу и внешний вид. Свойства таблицы задают в «Конструкторе» на странице свойств таблицы. Допустим, вы можете задать свойство «Режим по умолчанию», если хотите указать, как она должна по умолчанию отображаться.
Свойство поля применимо к конкретному полю в таблице, определяя его характеристики либо какой-нибудь поведенческий аспект. Некоторые свойства можно задать в режим таблицы Access. Кроме того, можно настроить любые свойства в «Конструкторе», используя область «Свойства поля».
БД из трех таблиц
Сначала необходимо спроектировать структуру базы данных. Например, БД «Учеба».
В ней будет 3 таблицы с полями (полужирным начертанием выделены ключевые поля):
1. «Список курсантов» — №, фамилия, имя, день рождения, пол, улица, дом, кв, группа.
2. «Группы» — номер группы, название группы, преподаватель.
3. «Успеваемость» — код, фамилия, имя, любые 6 предметов.
Ключевые поля можно сделать тип счетчик или числовой.
Откройте новую базу данных Microsoft Access
Сохраните ее в своей папке с именем «Учеба».
Таблицы в ней создадим в режиме Конструктор.
Таблицы заполните произвольными 20 строками в режиме таблицы.
Создадим схему базы данных для данных таблиц во вкладке Работа с базами данных.
Чтобы создать схему данных, надо поочередно выбрать таблицы и протянуть связи левой кнопкой мыши от одной таблицы к другой. В открывшемся окне нажать Ок, поставив галочки в полях таблички.
Таблицы «Группы» и «Список учеников» связать связью «один-ко-многим», а таблицы «Список учеников» и «Успеваемость» — связью «один-к-одному». Таблицы «Группы» и «Успеваемость» напрямую не связаны.
Задание.
Запрос выполняется на вкладке Создание. Выполнить запрос для выделения учащихся (их группу и преподавателей), у которых одновременно экзаменационный балл по химии меньше 75 и больше 50, а по информатике балл меньше 80 и больше 60. Предоставь результат для проверки.
Объединение таблиц в запросы
Последнее, что вам нужно учитывать при разработке запроса, — это то, как вы связываете или присоединяетесь к столам, с которыми работаете. Когда вы добавляете две таблицы в запрос Access, это то, что вы увидите в области « Связывание объектов» :
Строка, соединяющая две таблицы, называется линией соединения . Посмотрите, как линия соединения на самом деле является стрелкой? Это связано с тем, что он указывает порядок, в котором запрос просматривает данные из двух таблиц. На изображении выше, стрелка указывает от налево на право , это означает , что запрос будет смотреть на данные в левой таблице первой, то только данные в правой таблице, относится к записям это уже видели в левой таблице.
Ваши таблицы не всегда будут соединены таким образом, иногда Access к ним присоединятся право на левый. В любом случае вам может потребоваться изменить направление соединения, чтобы убедиться, что ваш запрос содержит правильную информацию. Направление объединения может повлиять на информацию, которую получает ваш запрос.
Чтобы понять, что это значит, рассмотрите вопрос, который мы разрабатываем. По нашему запросу нам нужно увидеть клиентов, которые разместили заказы, поэтому мы включили таблицу Customers и таблицу Orders . Давайте рассмотрим некоторые данные, содержащиеся в этих таблицах.
Что вы замечаете, когда смотрите эти списки? Каждый заказ в таблице « Заказы» связан с кем-то в таблице « Клиенты» — клиентом, который разместил этот заказ. Однако, когда вы смотрите таблицу Customers, вы увидите, что клиенты, разместившие несколько заказов, связаны более чем с одним заказом, а те, кто никогда не размещал заказ, не привязаны к никаким заказам. Как вы можете видеть, даже когда две таблицы связаны, возможно иметь записи в одной таблице, которые не имеют отношения к какой-либо записи в другой таблице.
Итак, что происходит, когда Access пытается запустить наш запрос с текущим соединением слева направо ? Во-первых, он извлекает каждую запись из таблицы влево: таблица наших клиентов.
Затем он извлекает каждую запись из правой таблицы, которая имеет отношение к записи Access, уже взятой из левой таблицы.
Поскольку наше соединение началось с таблицы Customers , наш запрос будет включать записи для всех наших клиентов, включая тех, кто никогда не размещал заказы. Это больше информации, чем мы хотим! Мы только хотим , чтобы увидеть записи для клиентов , которые разместили заказы .
К счастью, мы можем исправить эту проблему, изменив направление линии соединения. Если мы присоединяемся к таблицам справа налево , Access сначала получит все заказы из правой таблицы, которая является нашей таблицей Orders :
Затем Access будет смотреть на левую таблицу и извлекать только записи клиентов, которые связаны с ордером справа.
Теперь у нас есть именно та информация, которую мы хотим: все клиенты, которые разместили заказ, и только те клиенты. Как вы можете видеть, нам нужно было присоединиться к нашим таблицам в правильном направлении, чтобы получить нужную нам информацию.
Теперь, когда мы понимаем, какое направление соединения нам нужно использовать, мы готовы построить наш запрос!
В нашем запросе, мы должны использовать право — налево Join, но правильное направление присоединиться к таблицам в запросах будет зависеть от того, что информация , которую вы хотите увидеть и где хранится эта информация. Когда вы добавляете таблицы в запрос, Access автоматически присоединяется к таблицам для вас, но часто не присоединяет их в правильном направлении
Вот почему важно всегда пересматривать соединения между вашими таблицами перед созданием запроса
Чтобы создать общий запрос:
- Создайте или откройте запрос, который хотите использовать в качестве итогового запроса . В нашем примере мы хотим найти общее количество, которое мы продали в каждом из наших пунктов меню, поэтому мы будем использовать запрос, показывающий нам все пункты меню, которые мы продали. Если вы хотите следовать в нашей базе данных, откройте запрос пунктов меню.
- На вкладке « Дизайн запроса» найдите группу «Показать / Скрыть», затем выберите команду «Итого».
- Строка будет добавлена в таблицу в сетке проектирования , причем все значения в этой строке будут установлены в Group By. Выберите ячейку в строке « Всего:» поля, для которого вы хотите выполнить вычисление, и нажмите стрелку раскрывающегося списка, которая появляется.
- Выберите расчет, который вы хотите выполнить в этом поле. В нашем примере мы хотим добавить количество продуктов, которые мы продали, поэтому мы выберем опцию Sum.
- Когда вы удовлетворены своим дизайном запроса, выберите команду «Выполнить» на вкладке « Дизайн запросов », чтобы запустить запрос.
- Результаты запроса будут отображаться в представлении Datasheet запроса, которое выглядит как таблица. Если вы хотите, сохраните запрос, нажав команду «Сохранить» на панели быстрого доступа. Когда появится запрос на его имя, введите нужное имя и нажмите «ОК» .
Новые статьи
- Проектирование собственной базы данных в Access — 21/08/2018 15:16
- Форматирование форм в Access — 21/08/2018 15:11
- Создание форм в Access — 21/08/2018 15:05
- Изменение таблиц в Access — 21/08/2018 14:58
- Дополнительные параметры отчета в Access — 21/08/2018 14:48
- Создание отчетов в Access — 21/08/2018 14:42
Предыдущие статьи
- Проектирование запроса в Access — 21/08/2018 04:49
- Сортировка и фильтрация записей в Access — 21/08/2018 04:37
- Работа с формами в Access — 21/08/2018 04:25
- MS Access — Работа с таблицами, создание, удаление, настройка внешнего вида — 20/04/2018 17:18
- MS Access — Управление базами данных и объектами — 30/03/2018 16:18
- Начало работы в Access. Знакомство с Access 2010 — 10/02/2018 18:24
- MS Access: Введение в объекты — Таблицы, формы, запросы и отчеты — 07/02/2018 08:32
- MS Access: Что такое база данных? Отличие Access от Excel. — 03/02/2018 18:18
ПАРАМЕТРИЧЕСКИЕ ЗАПРОСЫ
В некоторых случаях вам может
потребоваться получить данные по отдельным группам, не выводя на экран остальные.
При этом вы заранее не знаете, какие итоговые данные вам могут понадобиться в
данный момент. В этом случае, использование конкретных критериев отбора в
бланке запроса, оказывается нецелесообразным из-за затрат времени.
Access для решения этой задачи предлагает вместо того, чтобы
в строку «Условие
отбора» вводить конкретное
значение, ввести в нее текст, заключенный в квадратные скобки [].
То, что будет находиться внутри этих
скобок, Access будет воспринимать как имя параметра и запрашивать
его в специальном окне. Весьма разумно,
в скобки помещать осмысленное слово или фразу, с тем, чтобы потом не ломать
голову над тем, что от нас требует Access.
· Измените предыдущий запрос так, чтобы Access задавал вопрос при каждом его выполнении, например,
такой: «Введите название подразделения».
Создание таблицы базы данных
Создание таблицы базы данных состоит из двух этапов.
На первом этапе определяется ее структура: состав полей, их имена, тип данных каждого поля, размер поля, ключи, индексы таблицы и другие свойства полей.
На втором этапе производится создание записей таблицы и заполнение их данными.
1 Этап: Создание структуры таблицы
Access предоставляет несколько способов создания таблицы:
- Режим таблицы — создание таблицы в Режиме таблицы;
- Конструктор — создание таблицы с помощью Конструктора таблиц;
- Мастер таблиц — создание таблицы с помощью Мастера таблиц;
- Импорт таблиц — создание таблицы путем импортирования данных из внешнего файла или другой базы данных;
- Связь с таблицами — присоединение внешнего файла или таблицы другой базы данных.
Наиболее полно использовать все возможности системы позволяет Конструктор таблиц, с помощью которого можно в диалоговом режиме определить структуру таблицы и установить параметры всех ее элементов.
Начните создание таблицы ГРУППА с определения ее структуры в режиме Конструктора таблиц.
- В окне Новая таблица выберите строку Конструктор.
Создание запросов на добавление данных
Поэтому сначала создается запрос на выборку данных, в результат которого включаются те поля, которые должны составлять добавляемые записи, а также поля, в которых устанавливаются критерии отбора записей.
В качестве примера мы рассмотрим запрос, который будет выбирать из базы данных все заказы за 1996 год и переносить их в другую таблицу так, чтобы таблица «Заказы» (Orders) содержала только актуальные данные. Для этого сначала создадим таблицу, которая будет хранить устаревшие данные:
- Раскройте список таблиц в окне базы данных и выделите таблицу «Заказы» (Orders).
- Скопируйте таблицу в буфер обмена, нажав комбинацию клавиш CTRL + C.
- Вставьте таблицу из буфера обмена, нажав комбинацию клавиш CTRL + V. Появляется диалоговое окно Вставка таблицы (Paste Table As).
- В группе Параметры вставки (Paste Options) выберите переключатель Только структура (Structure Only).
- В поле имя таблицы (Table Name) введите строку: Заказы (архив). Нажмите кнопку ОК или клавишу Enter.
В списке появляется новая таблица, пока пустая, т. к. мы скопировали только структуру таблицы «Заказы» (Orders). Теперь создадим запрос на добавление, который позволит перенести в новую таблицу данные из таблицы «Заказы».
Раскройте список таблиц в окне базы данных и выделите в нем таблицу «Заказы».
Щелкните левой кнопкой мыши по стрелке на кнопке Новый объект (New Object) инструментальной панели и выберите из раскрывшегося списка элемент Запрос (Query). В диалоговом окне Новый запрос (New Query) выберите значение Конструктор (Design View). Появляется окно Конструктора запроса с таблицей «Заказы» в верхней части.
Сначала создайте запрос на выборку нужных записей. Перетащите из списка полей таблицы «Заказы» все поля в строку бланка запроса Поле (Field).
В строке Условие отбора (Criteria) столбца «ДатаРазмещения» введите выражение
Between 101.01.961 And 131.12.961
Запустите запрос на выборку, чтобы проверить, правильно ли отобраны записи. Оказались отобранными 152 записи.
Выберите команду Запрос → Добавление (Query → Append) или щелкните левой кнопкой мыши по стрелке на кнопке Тип запроса (Query Type) и выберите из списка элемент Добавление (Append Query). Появляется диалоговое окно Добавление (Append), аналогичное диалоговому окну Создание таблицы (Make Table) (рис. 2).
В поле Имя таблицы (Table Name) необходимо выбрать из списка имя таблицы, в которую будут добавляться записи. В данном случае по умолчанию в нем указана таблица «Заказы (архив)», которую мы только что создали. Нажмите кнопку ОК. (Если бы таблица, в которую нужно добавить записи, находилась в другой базе данных, необходимо было бы выбрать переключатель В другой базе данных (Another Database) и затем в поле Имя файла (File Name) указать имя файла MDB, который содержит требуемую таблицу.)
Рис. 2. Диалоговое окно Добавление
В бланке запроса на добавление появляется дополнительная строка Добавление (Append To), содержащая названия полей таблицы, в которую добавляются записи (рис. 3). В данном случае названия полей запроса и названия полей таблицы совпадают, поэтому по умолчанию вся эта строка заполнена. Если имена полей не совпадают, необходимо выбрать из раскрывающегося списка в строке Добавление (Append To) имя поля результирующей таблицы, соответствующего полю в исходной таблице.
Нажмите кнопку Запуск (Run), чтобы выполнить запрос. Прежде чем новые записи будут добавлены в таблицу, Access выдает сообщение о числе записей, которые предполагается добавить. Вы можете нажать кнопку Да (Yes), и только после этого записи будут добавлены. Если вы нажмете кнопку Нет (No), вставка записей будет отменена.
Рис. 3. Бланк запроса на добавление
Сохраните запрос в базе данных, присвоив ему имя Копирование заказов
Обратите внимание на значок в списке запросов, соответствующий запросу на добавление. Как и в любом запросе на изменение, он содержит восклицательный знак, но отличается от значка запроса на создание таблицы.
Сохранение, добавление, удаление
В Microsoft Access изменения сохраняются автоматически при следующих действиях:
- Переход к следующей записи
- Закрытие режима таблицы или формы
Добавление и удаление записей
Для добавления данных в новую запись:
- Перейдите на пустое поле новой записи
- Введите новую группу с количеством студентов и проходным баллом, нажимая TabилиEnter для перехода к следующему полю
Для удаления записей:
- Выделите записи для удаления, щелкнув курсором на серой кнопке слева от первой удаляемой записи и переместив указатель вдоль требуемых записей.
- Нажмите Del или выберите команду Правка|Удалить записи
Примечание:
Нельзя удалить данные из блокированного поля, вычисляемого поля или поля типа счетчик.
Запросы на изменение
Часто возникает необходимость внести изменения в уже существующие записи таблицы, для чего предназначены запросы на изменение данных. По аналогии с предыдущими операциями, эта может выполняться как над всеми строками, так и только над теми, что соответствуют критериям отбора.
Сейчас в таблице «Студенты» есть две записи с пустыми полями «Факультет» и «Курс» — недавно добавленные строки. Давайте сделаем в них изменения и внесем нужные данные в эти столбцы.
Студент Семенов поступил на первый курс юридического факультета. В Конструкторе запросов выбираем тип команд «Обновление» и добавляем нужные данные и условие изменения записей. Нам нужно изменить два поля, поэтому вносим данные для изменения в двух столбцах параметров запроса – поле «Факультет» таблицы «Студенты» должно принять значение «Юридический», поле «Курс» этой же таблицы – значение «1». В третьем столбце вносим условие, по которому отбирать данные для изменения. Фамилия студента таблицы «Студенты» должна быть «Семенов».
В режиме SQL видим:
Выполняем операцию и получаем результат.
Логические операции
Логические операции «И», «ИЛИ»
Условия отбора, заданные в одной строке, связываются по умолчанию с помощью логической операции и, заданные в разных строках — с помощью логической операции или. Эти операции могут быть также заданы явно в выражении условия отбора с помощью операторов and и or соответственно.
Вычисляемые поля
В запросе над полями могут производиться вычисления. Результат вычисления образует вычисляемое поле в таблице запроса. При каждом выполнении запроса производится вычисление с использованием текущих значений полей.
Помимо имен полей, в выражениях вычисляемых полей могут использоваться литералы и встроенные функции. В результате обработки выражения может получаться только одно значение.
Выражение вводится в бланк запроса в пустое поле строки Поле. После нажатия клавиши или перемещения курсора в другое поле строки, перед выражением в этом поле строки добавляется имя поля Выражeние N. N — целое число, увеличивающееся на единицу для каждого нового создаваемого вычисляемого поля в запросе. Имя вычисляемого поля, стоящее перед выражением, отделяется от него двоеточием. Например:
Выражение!: * где Цена и Количество — имена полей.
Имя вычисляемого поля — выражение1 становится заголовком столбца в таблице с результатами выполнения запроса. Это имя можно изменить.
Для вычисляемых полей, как и для любых других, допускается сортировка, задание условий отбора и расчет итоговых значений.
Встроенные функции
В Access и VBA определено примерно 150 встроенных функций, которые можно использовать в вычисляемых полях и условиях отбора. Перечислим некоторые сгруппированные по назначению функции.
- Функции даты и времени. Используются при обработке дат и времени в полях и литералах. Возвращают дату и время полностью или частично (год, месяц, день), например, функция Date формирует текущую дату, функция Month выделяет месяц из значения поля, содержащего дату.
- Функции обработки текста. Используются при работе с символьными строками.
- Функции преобразования типа данных. Предоставляют возможность пользователю задавать тип данных для числовых значений, что позволяет избежать подбора наиболее подходящего типа данных системой.
- Математические и тригонометрические функции. Выполняют операции над числовыми значениями, которые невозможно выполнить с помощью стандартных арифметических операторов.
- Финансовые функции. Подобно функциям Excel, служат для расчета процента возврата по инвестициям, амортизационных отчислений, годовой ренты и т. п.
- Статистические функции. Используются при работе над полями подмножества записей для вычисления среднего значения, суммы, минимального, максимального значения.
Для записи выражения может быть использован построитель выражений, который вызывается кнопкой Построить панели инструментов.
Присвоение пользовательских имен вычисляемым полям
Пользователь имеет возможность присвоить новое имя вычисляемому полю, используя один из следующих способов:
- Изменение имени поля в запросе. В режиме конструктора запроса в бланке запроса вместо Выражением введите новое имя.
- Изменение подписи поля в свойствах поля. Установите курсор на вычисляемое поле в бланке запроса и откройте окно Свойства поля, щелкнув правой кнопкой мыши и выбрав в контекстном меню пункт Свойства. В окне Свойства поля на вкладке Общие введите нужный текст подписи в строку Подпись поля.
Запрос с параметром
Хотите узнать какие 35 инструментов нужно знать, чтобы научиться создавать базы данных в Аксесс?
Бывает, что в неизменной формуле запроса меняется переменная (дата, процент увеличения, надбавка и т. д.). Вместо того, чтобы каждый раз переписывать меняющееся число в одной и той же формуле, предложим программе каждый раз выводить диалоговое окно для введения конкретной цифры, даты или другой переменной.
Для поля, которое предполагается использовать как параметр, введите в ячейку строки «Условие отбора» выражение с текстом приглашения, заключенным в квадратные скобки.
Например, нам часто нужны сведения по сотрудникам, фамилия которых начинается с определённой буквы. Можно сделать около 30 запросов (для почти всех букв русского алфавита), чтобы получать требуемые данные, но это займёт много времени для создания запросов, загромоздит базу данных и вызовет путаницу. Вместо этого создадим один запрос для формирования списка сотрудников, который будет нас спрашивать, с какой буквы начинающиеся фамилии мы хотим видеть. В поле «Условие отбора» введём: Like & «*». На самом деле, если введём букву «С», условие будет читаться Access как Like «С*». Знак амперсанда «&» указывает на необходимость сцепления введённой буквы с остальными символами искомой ячейки, так как «*» обозначает любое количество символов после «С».
Например, выражение Between And запросит ввести начальную и конечную даты и выдаст все записи, содержащиеся в этом диапазоне (программа распознает разные форматы, например: 01.01.2010 или 01,01,2010 или 01/01/2010). Но для этого в режиме конструктора через меню Запрос – Параметры (можно вызвать через контекстное меню) надо вызвать диалоговое окно «Параметры запроса». В столбце «Параметр» указать правильно название, например , а в столбце «Тип данных» указать требуемый тип, в нашем случае «Дата/время». Как правило, указываются параметры для числовых и полей дата/время.
Ещё пример: Like «. » & & «. ». Программа попросит ввести номер месяца года и выдаст все записи, относящиеся к этому месяцу. Если в параметре ввести знак звёздочки «*», то будут выбраны дни рождений за все месяцы.
Запрос может не работать, если формат даты в условии задан 00.00.0000, а в настройках панели управления установлен 00/00/0000. Тогда надо вместо точек добавить ещё по одному вопросу.
Заполнение таблицы
Введём в специальную таблицу только следующие данные
Поле |
Тип данных |
Описание |
№ |
Счетчик |
|
Фамилия |
Текстовый |
|
Имя |
Текстовый |
|
Дата |
Дата / время |
Дата рождения |
Пол (м) |
Логический |
Пол мужской ? |
Улица |
Текстовый |
|
Дом |
Числовой |
|
Квартира |
Числовой |
|
Учебная группа |
Текстовый |
|
Группа здоровья |
Текстовый |
Группа здоровья по физкультуре |
Увлечения |
Текстовый |
|
Глаза |
Текстовый |
Цвет глаз |
В ячейках левого столбца появившейся таблицы вводим имена полей. В соседней правой ячейке вводим тип данных. По умолчанию он задается так Текстовый. Любой другой выбирается с помощью ниспадающего меню.
Например, вводя в четвёртой строке таблицы имя поля Дата, установим тип данных Дата/время. В раскрывающемся списке Свойства поля установить курсор в наборном поле Формат поля. Во вновь раскрывающемся списке Формат поля установить Краткий формат даты.
Напоминание. Переход от ячейки к ячейке осуществляется одним из следующих способов: мышью; нажатием на клавишу Enter; клавишей Tab.
Сохраните таблицу, щелкнув на ней правой клавишей мыши — Закрыть.
В появившемся окне введите имя таблицы «Список_учеников» и щелкните на кнопке ОК. Появится запрос на создание ключевого поля – уникального поля записи. По ключевому полю можно однозначно идентифицировать запись– его значение не повторяется у разных записей. Ключевым сделаем атрибут таблицы №. Для этого установим курсор на имя этого поля и щёлкнем по кнопке − Ключевое поле. Это поле позднее будем использовать для связи записей из разных таблиц. При заполнении данной таблицы данными значения счётчика № будут формироваться самостоятельно (в поле № для каждой записи будут появляться числа – номера записей).
Заполните базу данных — не менее 20 произвольных значений.
Какие бывают запросы
Виды команд зависят от того, для чего предназначены запросы и что за действия они выполняют. Основных типов операций два:
- на выборку;
- на действие.
Второй тип включает в себя команды, выполняющие изменения в БД: вставка, замена и удаление полей или строк. Все операции также делят на такие типы:
- по образцу (QBE – Query by example);
- SQL (Structured Query Language).
Первый вид использует специальный «Конструктор запросов». Такой мастер создания команд есть в СУБД Access. Он позволяет создавать запросы пользователям без специальных знаний.
SQL-запрос формирует программист, используя специальные инструкции.
2.4. Microsoft Access 2007
2.4.5. Создание запросов и поиск информации в базе данных
В СУБД Access 2007 можно создавать queries для отображения требуемых полей из записей одной или нескольких таблиц.
В СУБД Access 2007 применяются различные типы запросов: на выборку, на обновление, на добавление, на удаление, перекрестный query, выполнение вычислений, создание таблиц. Наиболее распространенным является query на выборку. Применяются два типа запросов: query по образцу (QBE) и query на основе структурированного языка запросов (SQL).
Запросы на выборку используются для отбора требуемой пользователю информации, содержащейся в нескольких таблицах. Они создаются только для связанных таблиц. Queries могут основываться как на нескольких таблицах, так и существующих запросах. СУБД Access 2007 включает такие средства создания запросов, как Мастер и Конструктор.
Кроме того, в СУБД Access 2007 существует множество средств для поиска и отображения информации, которая хранится в базе данных. Данные в таблицах можно отсортировать на основе любого поля или комбинации полей. Для извлечения из базы данных необходимых записей можно отфильтровать таблицу, применив средства фильтрации.
На скриншоте (рисунок 1) средства сортировки и фильтрации выделены скругленным прямоугольником красного цвета.
Рис. 1.
Рассмотрим создание запроса на выборку с помощью Конструктора
Для создания нового пустого запроса в режиме конструктора надо щелкнуть на пиктограмме Конструктор запросов (рисунок 2).
Рис. 2.
Откроется активное окно диалога Добавление таблицы (рисунок 3) на фоне неактивного окна «Запрос1». В этом окне можно выбрать таблицы и queries для создания новых запросов.
Рис. 3.
В окне Добавление таблицы следует выбрать несколько таблиц из представленного списка таблиц, на основе которых будет проводиться выбор данных, и щелкнуть на кнопке Добавить. После этого закрыть окно Добавление таблицы, а окно «Запрос1» станет активным (рисунок 4).
Рис. 4.
Окно Конструктора состоит из двух частей – верхней и нижней. В верхней части окна размещается схема данных запроса, которая содержит список связанных таблиц. В нижней части окна находится Бланк построения запроса QBE, в котором каждая строка выполняет определенную функцию.
Переместим имена полей с таблиц-источников в Бланк. Из таблицы Группы студентов переместим поле Название в первое поле Бланка, из таблицы Студенты переместим поле Фамилии во второе поле, а из таблицы Успеваемость переместим поле Оценка в третье поле и из таблицы Дисциплины переместим поле Название в четвертое поле Бланка запросов.
При необходимости можно задать принцип сортировки (по возрастанию или по убыванию) результатов запроса. В строке «Вывод на экран» автоматически устанавливается флажок просмотра информации.
Условия ограниченного поиска или критерий поиска информации вводится в строке «Условия» отбора и строке «Или». Например, введем критерий поиска — «5/A» в строке «Условия» для поля Оценка. В этом случае в результате выполнения запроса на экране будут отображаться все фамилии студентов, которые получили оценку 5/A (рисунок. 5).
Рис. 5.
Далее надо закрыть окно запроса Запрос1, появится окно диалога Сохранить, ответить — Да и ввести имя запроса, например «Успеваемость студентов». Для запуска запроса дважды щелкнем на query «Успеваемость студентов», откроется таблица с результатами выполненного запроса (рис. 6).
Рис. 6.
Далее создаем параметрический query или query с параметрами. Создаем этот query также как и предыдущий, в режиме конструктора, но только в строке Условия отбора для поля Фамилия введем условие отбора в виде приглашения в квадратных скобках, например . В этом случае в результате выполнения запроса на экране будет отображаться фамилия студента и все дисциплины, по которым он получил оценку.
Закрыть окно запроса на выборку. На вопрос о сохранении изменения ответить — Да и ввести имя запроса, например «Параметрический query». Запустим Параметрический query, дважды щелкнув на нем. В открывшемся на экране окне диалога «Введите значение параметра» надо ввести фамилию студента, информацию об успеваемости которого необходимо получить (рис. 8).
Рис. 7.
Затем надо щелкнуть на кнопке ОК, откроется таблица с результатами выполненного запроса (рис. 8).
Рис. 8.
В некоторых случаях для создания запросов можно использовать Мастер запросов. После создания запросов на выборку информации из БД Access 2007 можно приступать к формированию форм.
Далее >>> Раздел: 2.4.6. Создание форм для ввода данных в таблицы базы данных Access 2007
Отношения между таблицами в Access
Хотя в каждой таблице хранится информация по отдельному объекту, в БД Access все таблицы обычно между собой связаны. Ниже приведены примеры таблиц в базе данных. Допустим, у нас есть таблица клиентов, которая содержит данные о клиентах и их адреса. Также есть таблица продаваемых товаров с ценами и изображениями товаров. И, разумеется, таблица заказов, необходимая нам, чтобы отслеживать покупки клиентов.
Так как наши данные по различным темам хранятся в отдельных таблицах, их надо связать — это позволит комбинировать данные из различных таблиц. Для этого нам и нужны связи — логические отношения между 2-мя таблицами, основанные на их общих полях.