5.2.7. Изменение имени поля в запросе
Поле запроса можно переименовать, чтобы точнее описать его содержимое. Обычно эта операция производится при определении нового вычисляемого поля, а также при расчетах различных итоговых значений по данным существующего поля. В таких случаях Access по умолчанию использует имена типа «Выражение N» или «Sum_Количество», которые можно легко заменить более содержательными именами.
Чтобы переименовать поле, включенное в запрос, нужно установить указатель слева от первой буквы имени этого поля и ввести новое имя, а затем двоеточие. Например, для замены старого имени поля Дата рождения на новое имя Год рождения нужно ввести в строку Поле соответствующего столбца бланка запроса выражение Год рождения: Дата рождения.
Для изменения имени вычисляемого или итогового поля нужно просто заменить расположенное левее двоеточия старое имя на новое имя.
Другим способом изменения имени поля является указание нового имени в свойстве Подпись данного поля. При изменении имени поля Access покажет новое имя как заголовок столбца запроса в режиме таблицы. Новое имя будет также использовано в любой форме (отчете), созданной на основе этого запроса.
5.2.8. Отображение/скрытие поля в результатах запроса
В бланк запроса можно добавить поле, используемое для задания условия отбора или порядка сортировки, без отображения данных из этого поля в результатах запроса. Для этого нужно установить флажки в строке «Вывод на экран» бланка для тех полей, которые требуется отображать, и снять флажки для неотображаемых полей. Последние поля не будут включены в результирующий динамический набор.
5.2.9. Изменение ширины столбца в бланке запроса
Перемещайте указатель к границе области выделения столбца, ширину которого нужно изменить, до тех пор, пока указатель не примет вид двусторонней стрелки. Затем переместите границу столбца в нужном направлении.
Чтобы быстро установить оптимальную ширину столбца (по размеру данных), достаточно установить указатель на правую границу изменяемого столбца и дважды щелкнуть мышью. Если было выделено несколько столбцов, то после выполнения этой операции для каждого из них будет установлена оптимальная ширина.
5.2.10. Сортировка результатов запроса
Обычно результаты запроса появляются на экране в том же порядке, в котором записи находились в базе данных. Для удобства просмотра их можно отсортировать по алфавиту или в числовом порядке в зависимости от типа поля сортировки.
Чтобы выбрать порядок сортировки, установите указатель мыши в ячейку Сортировка под полем, значения в котором нужно отсортировать, щелкните мышью и раскройте появившийся список. Вы можете выбрать из этого списка тип сортировки «По возрастанию» (0 – 9, А – Я) или «По убыванию» (9 – 0, Я – А).
Сортировку можно задать сразу для нескольких полей. В этом случае порядок сортировки определяется их положением в бланке запроса.
Как переименовать запрос в access
Создание и изменение запроса с помощью Конструктора запросов
Для изменения уже существующих запросов и для создания новых запросов используется Конструктор запросов. Для того чтобы открыть запрос в режиме Конструктора, выделите в списке один из существующих запросов, например только что созданный запрос «Сотрудники Запрос», и нажмите кнопку Конструктор (Design) на панели инструментов окна База данных (Database).
Появляется окно Конструктора запросов (рис. 4.5). В верхней части окна отображается таблица (или несколько таблиц, если запрос многотабличный) в том виде, в каком таблицы отображаются в окне Схема данных (Relationship). Таблицы — источники данных для запроса, мы будем называть базовыми таблицами запроса. В нижней части окна находится бланк запроса — таблица, ячейки которой используются для определения запроса. В бланке отображаются все столбцы, включенные в результирующее множество запроса.
Для того чтобы просматривать полностью бланк запроса и все исходные таблицы, используют линейки прокрутки.
В области панелей инструментов Access отображается панель инструментов Конструктор запросов (Queries Design). Эта панель представлена на рис. 4.6, а в табл. 4.1 приведено описание кнопок этой панели инструментов и соответствующие им команды меню.
Рис. 4.5. Запрос «Сотрудники Запрос» в режиме Конструктора запросов
Рис. 4.6. Панель инструментов Конструктор запросов
Таблица 4.1. Описание кнопок на панели инструментов Конструктор запросов
С использованием кнопок панели инструментов вы будете знакомиться по мере изучения работы с запросами, как в данной главе, так и в гл. 8.
А теперь рассмотрим, как создать новый запрос с помощью Конструктора запросов. Для этого необходимо:
- В окне базы данных на панели объектов выбрать ярлык Запросы (Queries).
- В списке запросов выбрать ярлык Создание запроса в режиме конструктора (Create query in Design view) или нажать кнопку Создать (New), в появившемся окне Новый запрос (New Query) выбрать Конструктор (Design view) и нажать на кнопку ОК.
- В окне Добавление таблицы (Show Table) (см. рис. 4.5) выбрать одну или несколько таблиц или запросов для построения нового запроса и нажать кнопку Добавить (Add). Для удобства выбора таблиц и запросов в окне существуют следующие вкладки: Таблицы (Tables), на которой отображается список таблиц; Запросы (Queries), на которой отображается список запросов; Таблицы и запросы (Both), на которой отображается список таблиц и запросов вместе.
Рис. 4.7. Окно Добавление таблицы Конструктора запросов
Рис. 4.8. Запрос по нескольким связанным таблицам
Иногда Конструктор устанавливает лишние связи, основываясь только на именах и типах полей. Это может привести к некорректным результатам запроса, поэтому нужно обязательно проверять, как отображаются связи между таблицами в окне Конструктора запросов, и удалить вручную лишние связи. Для этого выделите лишнюю связь, щелкнув по ней левой кнопкой мыши, и нажмите клавишу . Работа со связями в окне Конструктора запросов выполняется точно так же, как в окне Схема данных (Relationship) (см. разд. «Связывание таблиц на схеме данных»гл. 2).
Примеры разных способов включения полей в результат запроса в режиме Конструктора запросов приведены на рис. 4.9—4.11.
Рис. 4.9. Пример отбора полей для нового запроса в режиме Конструктора
Рис. 4.10. Вид окна Конструктора при выборе всех полей из таблицы
Чтобы добавить в запрос еще одну таблицу или другой запрос, необходимо:
-
Нажать кнопку Добавить таблицу (Show Table) на панели инструментов или выполнить команду меню Запрос, Добавить таблицу (Query, Show Table).
Рис. 4.11. Выбор полей запроса из раскрывающегося списка
Если нужная таблица находится в другой базе данных или другом приложении, необходимо сначала присоединить эту таблицу к текущей базе данных.
Добавить таблицу или еще один запрос в окно Конструктора запросов можно также путем перетаскивания мышью названия таблицы или запроса из окна базы данных.
Чтобы удалить базовую таблицу из запроса, необходимо выделить ее, щелкнув на любом месте в списке ее полей, и нажать клавишу .
Чтобы удалить поле из запроса, выделите нужный столбец в бланке запроса, а затем нажмите клавишу . Чтобы выделить столбец, пользуйтесь областью выделения столбцов — узкой серой полоской над столбцами в бланке запроса. Когда вы подводите указатель мыши к этой области, он преобразуется в жирную стрелку, направленную вниз.
Поля в таблице, являющейся результатом запроса, отображаются в том порядке, в котором они следуют в бланке запроса. Если требуется изменить порядок их следования, переставьте соответствующим образом столбцы в бланке запроса. Делается это стандартным способом, т. е. сначала выделяется нужный столбец или несколько столбцов, а затем они перетаскиваются мышью на новое место. При этом отпускать кнопку мыши нужно тогда, когда указатель мыши окажется перед тем столбцом, который делжен быть справа от вставляемого столбца. После вставки все столбцы, расположенные справа от указателя, сдвигаются вправо. Если вы перемещаете столбцы в конец запроса, то отпускайте кнопку мыши, когда указатель окажется перед первым свободным столбцом.
В режиме Конструктора запросов можно изменять имена полей запроса. Чтобы переименовать поле, необходимо установить курсор в бланке запроса перед первой буквой его имени и ввести новое имя и символ двоеточия. Пример запроса с измененными именами полей приведен на рис. 4.12. Изменение имени поля в бланке запроса приводит к изменению заголовка столбца при просмотре запроса в режиме таблицы. Кроме того, если на основе запроса создать новый объект, например форму или отчет, в новом объекте будет использовано новое имя поля. Имя поля базовой таблицы при этом не изменяется. Это имя также не изменяется в тех формах и отчетах, которые были созданы на основе запроса до изменения имени поля. Имена полей в запросах должны соответствовать соглашениям об именах Microsoft Access.
Рис. 4.12. Изменение названия поля в запросе
Чтобы использовать новое имя поля только в заголовках столбцов в режиме таблицы или как подпись полей в формах и отчетах, следует задать для этого поля свойство Подпись (Caption), а не переименовывать поле в бланке. (Об установке свойств поля см. разд. «Настройка свойств полей в запросе и свойств самого запроса»гл. 8)
Ширина столбцов в бланке запроса также может меняться. Осуществляется это простым перетаскиванием мышью границы столбца или двойным щелчком мыши по линии границы, как это делается в таблице Excel.
Изменение ширины столбцов в окне Конструктора запросов или в окне расширенного фильтра не влияет на ширину столбцов запроса в режиме Таблицы или объекта, для которого применен фильтр.
В строке Условие отбора (Criteria) и в строке или (Or) указываются условия отбора записей. Такими условиями могут быть логические выражения. Например, (>30), (=’Иванов’), (=10) и т. п. (0 создании выражений в условиях запроса см. разд. «Использование выражений в запросах» ниже в этой главе.)
Условия, находящиеся в одной строке, но в разных столбцах бланка, объединяются по логическому оператору And (И). Если нужно объединить условия отбора по логическому оператору Or (ИЛИ), разместите эти условия в разных строках бланка запроса. Пример использования нескольких условий отбора приведен на рис. 4.13.
Рис. 4.13. Задание критериев отбора записей в запросе
Если критерий отбора очень сложный, можно вставлять дополнительные строки условий. Для этого необходимо:
- Выделить строку, которая должна оказаться под вставляемой строкой. Для этого нужно подвести указатель мыши к левой границе строки (он должен превратиться в жирную стрелку, указывающую вправо) и щелкнуть левой кнопкой мыши.
- Выполнить команду Вставка, Строки (Insert, Rows) или нажать клавишу
Добавление в запрос полей из таблиц. Переименование, перемещение и удаление полей в конструкторе запросов
Типы запросов в СУБД MS Access. Способы создания запросов в СУБД MS Access.
Система управления базами данных (СУБД) — это программный продукт, предназначенный для создания баз данных, своевременного обновления хранящихся в них зонных и выдачи необходимой пользователю информации в виде форм, запросов, отчетов, диаграмм и почтовых наклеек.
Запрос —это требование на отбор данных, хранящихся в таблицах на выполнение определенных действии с данными. Запрос позволяет создать набор из записей, находящихся в разных таблицах, и использовать его как источник данных для формы или отчета. Кроме того, запрос дает возможность вносить изменения в саму БД.
Запросы предназначены для просмотра, анализа и изменения информации хранящейся в БД.
Способы создания запросов в СУБД MS Access.Access позволяет создавать запросы в Режиме конструктора (самостоятельно) и с помощью программ- мастеров.
В Access имеется 4 мастера запросов:
- простой запрос —позволяет лишь выводить нужную часть полей из источника запроса и при необходимости подводить Итог;
- перекрестный запрос — позволяет компактно представить данные в формате подобно формату электронных таблиц
- повторяющиеся записи — позволяет найти записи с повторяющимися значениями полей и в том числе полностью
- записи без подчиненных —позволяет найти записи в одной таблице не имеющие подчиненных записей в другой таблице
При необходимости запрос, созданный в Режиме мастера, можно отредактировать в Режиме конструктора.
Создание запроса с помощью конструктора. Окно конструктора запросов.
Запрос —это требование на отбор данных, хранящихся в таблицах на выполнение определенных действии с данными. Запрос позволяет создать набор из записей, находящихся в разных таблицах, и использовать его как источник данных для формы или отчета. Кроме того, запрос дает возможность вносить изменения в саму БД.
Для создания запроса в окне базы данных перейдите к списку запросов. Нажмите кнопку Создать. Появится диалоговое окно «Новый запрос», из опций которого нужно выбрать пункт «Конструктор» и нажать OK. В появившемся диалоговом окне (Рис. 2.11) следует выбрать таблицы, из которых будут отобраны данные.
После добавления необходимых таблиц следует нажать на кнопку Закрыть. Появится окно конструирования запроса
Окно конструктора запросов разделяется на три области: область схемы, область сетки и область SQL.
Область схемы. Отображает таблицы, представления а также определяемые пользователем функции, по которым выполняется запрос. В каждом окне, представляющем таблицу, представление или встроенную функцию, отображаются все доступные столбцы данных, а также значки, показывающие, как каждый столбец используется в запросе. Объединения отображаются как линии между окнами объектов.
Область сетки. Содержит сетку, аналогичную электронной таблице, в которой задаются параметры запроса, такие как имена отображаемых столбцов, условия отбора строк и группировки записей и т.д.
Область SQL. Отображает запрос в виде инструкции SQL. Пользователь имеет возможность редактировать инструкцию SQL, созданную с помощью конструктора запросов, или самостоятельно ввести инструкцию SQL. Эта область используется также для ввода инструкций SQL, которые невозможно создать с помощью области схемы или сетки, как в случае запроса на объединение.
При создании запроса допускается использование любой из трех областей: Чтобы задать отображение столбцы, можно выбрать его в области схемы, ввести в области сетки или включить в инструкцию SQL в области SQL. Области схемы, сетки и SQL синхронизируются; изменения, внесенные в одной области, автоматически отражаются в других.
Бланк запроса по образцу
Бланк запроса по образцу представлен в виде таблицы в нижней панели окна запроса. До формирования запроса эта таблица пуста.
Каждый столбец бланка относится к одному полю, с которым нужно работать в запросе. Поля могут использоваться для включения их в результат выполнения запроса, для задания сортировки по ним, а также для задания условий отбора записей.
Добавление в запрос полей из таблиц. Переименование, перемещение и удаление полей в конструкторе запросов.
При заполнении бланка запроса необходимо:
в строку Поле включить имена полей, используемых в запросе;
в строке Вывод на экран отметить поля, которые должны быть включены в результирующую таблицу;
в строке Условие отбора задать условия отбора записей;
в строке Сортировка выбрать порядок сортировки записей результата.
Поля бланка запроса
Каждый столбец бланка запроса соответствует одному из полей таблиц, на которых строится запрос. Кроме того, здесь может размещаться вычисляемое поле, значение которого вычисляется на основе значений других полей.
Для включения нужных полей из таблиц в соответствующие столбцы запроса можно воспользоваться следующими приемами:
в первой строке бланка запроса Поле щелчком мыши вызвать появление кнопки списка и выбрать из списка нужное поле. Список содержит все поля таблиц, представленных в бланке запроса;
перетащить нужное поле из списка полей таблицы в схеме данных запроса в первую строку бланка запроса.
В списке полей каждой таблицы на первом месте стоит символ *, который означает «все поля таблицы». Этот пункт выбирается, если в запрос включаются все поля.
Чтобы переименовать поле в режиме Конструктора таблиц, необходимо:
Щелкнуть левой кнопкой мыши в столбце Имя поля (Field Name) на имени поля, подлежащего переименованию.
Ввести новое имя поля или отредактировать старое имя.
Нажать клавишу или переместить указатель текущей записи на любую другую запись.
Чтобы вставить поле в режиме Конструктора таблиц, необходимо сначала выделить строку, перед которой необходимо вставить поле. Для этого нужно щелкнуть левой кнопкой мыши в области выделения. После этого вставить новое поле можно одним из трех способов:
нажать кнопку Добавить строки (Insert Rows) на панели инструментов Конструктор таблиц (Table Design);
выбрать в главном меню команду Вставка (Insert) и из раскрывающегося меню выбрать команду Строки (Rows);
щелкнуть правой кнопкой мыши на выделенной записи и из контекстного меню выбрать команду Добавить строки (Insert Rows).
Затем в полученную пустую строку нужно ввести имя нового поля, тип и описание.
Чтобы вставить сразу несколько строк, необходимо выделить требуемое количество существующих строк, перед которыми нужно вставить новые, а затем выполнить команду вставки строк в соответствии с приведенной выше процедурой.
Чтобы удалить поле в режиме Конструктора таблиц, выделите строку (строки) описания поля (полей), которую необходимо удалить. Затем используйте любой из трех вариантов удаления выделенной строки (строк):
выбрать из главного меню команду Правка (Edit) и из раскрывающегося меню — команду Удалить (Delete) или Удалить строки (Delete Rows);
нажать на клавишу ;
щелкнуть правой кнопкой мыши на выделенной строке (строках) и из контекстного меню выбрать команду Удалить строки (Delete Rows).
При удалении полей, в которых содержатся или могут содержаться данные, Microsoft Access потребует подтверждения на удаление данного поля.
Изменение запроса
Запрос, сохраненный в базе данных Microsoft Access 2007, можно изменять. У вас есть возможность корректировать имя запроса, править его текст в формате SQL, а также редактировать запрос в конструкторе запросов. Ниже представлены несколько наиболее распространенных действий, производимых над запросами.
Переименовать запрос можно, выполнив следующие команды.
1. Откройте запрос, сохраненный в базе данных Microsoft Access 2007.
2. Правой кнопкой мыши щелкните на имени запроса в области переходов и в появившемся контекстном меню выберите команду Переименовать .
3. Теперь переименуйте имя запроса и затем нажмите клавишу Enter .
Правка запроса в конструкторе
Используя бланк запроса в режиме конструктора, модифицировать существующий запрос можно следующими способами.
• Удалить таблицу из запроса можно, если выделить ее в запросе и нажать клавишу Delete .
• Удалить поле таблицы можно, выделив желаемый столбец с помощью области выделения столбцов (серая полоска над столбцами) и затем нажав клавишу Delete .
• Изменить порядок следования полей можно следующим образом: выделите поле или несколько полей и, удерживая нажатой кнопку мыши, перетащите их на нужное место, затем отпустите кнопку мыши.
• Условия отбора записей из базовой таблицы указываются в строках Условие отбора и Или . Данными условиями могут являться любые логические выражения. Существуют условия, которые находятся в одной строке, но в разных столбцах бланка, такие условия объединяются по логическому оператору AND (И). Чтобы объединить условия по логическому оператору OR (ИЛИ), нужно объединить данные условия в разных строках бланка запроса.
Строка Сортировка помогает установить порядок сортировки записей в запросе. Для поля, записи которого вы хотите сортировать, выберите из списка порядок сортировки: По убыванию или По возрастанию . Если в запросе вам нужно отсортировать записи по нескольким полям, разместите эти поля слева направо.
Если вы хотите изменить имена полей запроса, то это можно сделать в режиме конструктора. Чтобы переименовать поле, вам нужно в бланке запроса установить текстовый курсор перед первой буквой его имени, после чего ввести новое имя, а также символ двоеточия. Если вы измените имя поля в бланке запроса, в отчете оно также изменится.
В бланке запросов вы также можете изменить ширину столбцов. Это можно сделать, перетаскивая границу столбца или два раза щелкнув кнопкой мыши на линии границы. Причем данное изменение производится только в бланке запросов.
Теперь рассмотрим вышесказанное на примере. Выполните следующие действия, чтобы модифицировать запрос с помощью конструктора.
1. Откройте базу данных, которая содержит нужный запрос.
2. Выбранный запрос откроется в режиме таблицы, если вы щелкнете кнопкой мыши на имени запроса в области переходов.
3. Перейдите на вкладку Главная и в группе Режимы щелкните кнопкой мыши на стрелке под кнопкой Режимы . После этого появится меню, в котором нужно выбрать команду Конструктор (рис. 5.13).
Рис. 5.13. Меню для выбора режима
4. На экране появится бланк запроса.
Теперь осталось изменить запрос. Вы можете выполнить любые действия.
• Добавить в бланк запроса как минимум одно поле таблицы, нажав при этом в строке Поле свободную ячейку. Раскрыв список полей таблицы, выберите необходимое имя поля. Данную операцию следует повторить для всех полей таблицы, которые вы желали бы добавить в бланк запроса.
• В результате набора данных при необходимости скрыть или отобразить значение поля таблицы (флажок в строке Вывод на экран необходимо снять или установить соответственно). Значение поля не отображается, если флажок под названием поля в бланке запроса снят.
• Сортировку данных поля таблицы можно выполнить следующим образом: щелкните кнопкой мыши на ячейке строки Сортировка под названием необходимого вам поля, раскройте список сортировок, после чего выберите нужный вариант: по возрастанию , по убыванию , отсутствует .
• Задать условие для нужных полей таблицы. Для этого в ячейках строки Условие введите требуемые значения. Используя строки без подписи или строку Или , можно создать для одного поля таблицы друг друга исключающие условия.
5. Например, модифицируйте запрос с именем Клиенты Запрос . В этом запросе отображались поля Имена , Телефоны , Адреса таблицы Клиенты . Модифицируйте его, добавляя колонку Рейтинг и выполняя сортировку строк по последнему.
6. В строке Поле щелкните кнопкой мыши на незаполненной ячейке после названия Адрес , выберите в списке название Рейтинг .
7. Снимите флажок Вывод на экран для поля Рейтинг .
8. Щелкните кнопкой мыши на параметре Сортировка поля Рейтинг . На экране появится список доступных вариантов сортировки. Выберите вариант По возрастанию , бланк запроса изменится (рис. 5.14).
Рис. 5.14. Измененный бланк запроса
9. Для сохранения запроса нажмите кнопку Сохранить . Чтобы увидеть сохраненное, щелкните кнопкой мыши на вкладке Конструктор , а затем нажмите кнопку Выполнить . Отобразится измененный запрос (рис. 5.15).
Рис. 5.15. Измененный запрос
Далее будет рассмотрено изменение исходного запроса способом правки запроса в SQL-редакторе.
Данный текст является ознакомительным фрагментом.
Запросы на изменение с помощью инструкций SQL
Запросы на изменение записей в таблицах с помощью SQL
Запросы на изменение используются для добавления (INSERT INTO), удаления (DELETE) и обновления (UPDATE) записей в таблицах.
Команда INSERT INTO
Команда INSERT INTO может быть использована для добавления одной или нескольких записей в конец таблицы.
Синтаксис команды INSERT INTO имеет следующий вид:
INSERT INTO Название_Таблицы [(Название_Полей)] VALUES (Значения_данных);
Создадим запрос на изменение записи в таблице «Группы» базы данных sql_training_st.mdb.
Например, поместим в таблицу «Группы» запись, содержащую данные (1, БФ-16а, 1, 1) в соответствующие столбцы (КодГруппы, Название, Курс, Семестр).
Для этого запрос в формате:
INSERT INTO Группы (КодГруппы, Название, Курс, Семестр) VALUES (1, БФ-16а, 1, 1);
введем на бланке запроса, выполнив команду «Конструктор запросов» на вкладке «Создание», в режиме «Режим SQL» из меню Вид.
Сохраняем запрос с именем «Добав_1_записи». В результате в «Области переходов» появится несвязанный объект — «Добав_1_записи» (Рис.1.).
После сохранения запроса необходимо выполнить этот запрос, щелкая на пиктограмме «Выполнить». В результате выполнения команды «Добав_1_записи» в пустой таблице появится первая запись (Рис. 2.)
Команда UPDATE
Команда UPDATE предназначена для изменения уже существующих записей в столбцах таблицы, что позволяет обновлять значения в заданных столбцах таблицы.
Синтаксис команды UPDATE имеет следующий вид:
UPDATE Название_Таблицы SET Название_Столбца = Новое_Значение WHERE Условие_Отбора;
В предложении SET указываются имена столбцов, данные в которых надо изменить. Оператор WHERE не является обязательным, но при его помощи можно указать только на те строки столбцов (таблиц), которые необходимо обновить.
Создадим запрос на изменение записи в таблице «Группы» базы данных sql_training_st.mdb.
Например, изменим уже существующую запись для первого ключевого поля id в столбце «Название» таблицы «Группы».
Запрос в формате:
UPDATE Группы SET Название =’БФ-16б’ WHERE > создаем на бланке запроса, выполнив команду «Конструктор запросов» на вкладке «Создание», в режиме «Режим SQL» из меню Вид.
Сохраняем запрос с именем «Изменение_записи_1». В результате в «Области переходов» появится объект — «Изменение_записи_1» (Рис. 3.).
После сохранения запроса необходимо выполнить этот запрос, щелкая на пиктограмме «Выполнить». В результате выполнения команды «Изменение_записи_1» появится окно диалога, в котором необходимо ввести значение параметра с БФ-16а на БФ-16б (Рис. 4.).
Команда DELETE
Команда DELETE предназначена для удаления записей из таблицы.
Формат запроса на удаление записей:
DELETE FROM Название_Таблицы WHERE Условие_Отбора;
Создадим запрос на изменение записи в таблице «Группы» базы данных sql_training_st.mdb.
Например, удалим существующую запись для первого ключевого поля id во всех столбцах (полях) таблицы «Группы».
Для этого запрос в формате:
DELETE FROM Группы WHERE > создаем на бланке запроса, выполнив команду «Конструктор запросов» на вкладке «Создание», в режиме «Режим SQL» из меню Вид.
Сохраняем запрос с именем «Удаление_записи_1». В результате в «Области переходов» появится объект — «Удаление_записи_1» (Рис. 5.).
После сохранения запроса необходимо выполнить этот запрос, щелкая на пиктограмме «Выполнить». В результате выполнения команды «Удаление_записи_1» появится окно диалога, в котором необходимо ввести значение параметра будет удалены данные во всех полях, т.е. удалена запись (Рис. 6.).
Следует отметить, что для удаления данных в конкретных полях таблицы целесообразно воспользоваться командой UPDATE и заменить значения в требуемых полях на Null. Если необходимо удалить таблицу в целом, то следует использовать оператор DROP TABLE (синтаксис оператора: DROP TABLE Название_Таблицы;).
Восстановим первую запись в таблице «Группы», выполнив команду «Добав_1_записи», в результате восстановим первую запись (Рис. 7.).
Как самостоятельно составлять запросы в Microsoft Access
Начинающим разработчикам приложений под Microsoft сервер необходимо знать, как делать запросы в Access. Microsoft Access – самая популярная программа для работы с базами данных в Windows. Основной причиной успеха программы является интерактивный интерфейс.
Запросы или команды предоставляют возможность извлекать и фильтровать информацию, вычислять итоги, а также обновлять, перемещать и удалять записи в большом количестве. Освоение команд Microsoft Access улучшит способность программистов управлять данными и упростит разработку приложений.
Визуальное представление таблиц и графических связей между ними делает запросы Microsoft Access чрезвычайно простыми в использовании. Приятный пользовательский интерфейс по-прежнему позволяет выполнять очень мощный и расширенный анализ. Весь механизм смоделирован на системах SQL и может переключаться между графическим дизайном и синтаксисом SQL.
Разработчики сами делают выбор: использовать готовый конструктор или писать код на SQL. Но стоит помнить, что знание многих функций Microsoft Access позволяет быстро выполнять расширенную обработку данных без программирования.
Виды запросов
Microsoft Access поддерживает множество типов. Описание главных категорий:
- Select позволяет получать записи или сводки (итоги).
- Создание таблиц. Аналогично к Select, но результаты помещаются в таблицу, которая создается автоматически.
- Добавление. Аналогично первым двум, но результаты добавляются в существующую таблицу.
- Update изменяет (обновляет) данные в записях.
- Delete.
Команда Select является наиболее распространенной и может использоваться для просмотра и выбора данных для форм, отчетов, элементов управления и других операций. Другие типы создают или изменяют данные и вместе называются запросами действий.
Запросы на примере Select
Для создания команды с помощью конструктора следует выполнить такие действия:
- Перейти во вкладку «Создать» и нажать на кнопку «Конструктор запросов».
- Выбрать тип.

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

- Применить сортировку и изменить порядок полей. Как только ячейки помещены в сетку QBE (нижняя часть экрана), можно изменить их последовательность.
Для этого нужно щелкнуть на столбец и перетащить его в нужное место. Чтобы отсортировать результаты, достаточно выбрать критерий в меню «Сортировка».
- Изменить название. Данные могут храниться под названиями, которые нелегко понять пользователям. Используя выражения, можно изменить имя, которое видит пользователь. Например, имя «Поле 1» можно изменить на «ID Клиента», поместив новое имя с последующим двоеточием и исходным именем в ячейку поля QBE: «ID Клиента: [Поле 1]».

- Установить свойства. В правой части экрана есть окно свойств. Для отображения свойств запроса нужно временно отключить флажок в «Вывод на экран».

- У каждой области также есть свойства, которые можно установить. Для отображения свойств, нужно вернуть флажок и нажать на требуемое поле. В зависимости от типа данных доступны разные свойства. Наиболее важные свойства для числовых типов и типа даты. В свойствах можно указать, как ячейки будут форматироваться при выполнении.

- Просмотреть результаты и эквивалент SQL. Когда запрос завершен, можно просмотреть его результаты, переключившись из режима конструктора в «Режим таблицы». Также можно просмотреть в виде кода SQL. Таким образом, можно редактировать синтаксис SQL напрямую, просматривать результаты и переключаться в режим конструктора.

- Нажать кнопку «Выполнить» и просмотреть результат.
Настройка условий и их типы
Нижняя часть сетки QBE состоит из нескольких строк для условий. Эти дополнительные строки необходимы для того, чтобы указать, какие записи будут получены.
Чтобы еще больше сузить область, можно ввести критерии для нескольких полей одновременно. При вводе критериев в одной строке выполняется операция «И» между полями. То есть извлекаются строки, которые соответствуют критериям в поле 1 и в поле 2 и т. д. Если условия размещены в разных строках, выполняется операция «ИЛИ».
- самым простым условием является точное соответствие. Стоит ввести желаемую величину в разделе «Условие отбора»;
- <>, <, >, BETWEEN, AND. Можно получить записи, в которых значение поле не равно определенной величине, используя символ «<>». Точно так же используются знаки >, <, >= или <= для диапазонов. Чтобы выбрать записи с величиной между двумя значениями, используются операторы BETWEEN и AND;
- нулевые ячейки. Чтобы выбрать записи со значениями Null, нужно ввести Null. Но важно помнить, что для текстовых полей строки нулевой длины («») не являются пустыми;
- OR и IN. Чтобы выбрать записи, в которых поле может иметь одно из нескольких величин, следует использовать оператор OR. Можно написать: «1000 OR 2000». В качестве альтернативы команда IN выполняет ту же функцию: «IN (1000, 2000)». Второй синтаксис проще использовать, если существует много значений.
Поиск по шаблону. Иногда нужно найти конкретную букву или цифру. В сочетании с командой LIKE подстановочные знаки позволяют указывать такие условия. Наиболее часто используемые знаки: «?» – один символ; «*» – любое количество символов, «#» – однозначный символ, «[..]» – список символов, «[! ..]» – нет в списке символов.
Использование параметров
Часто невозможно заранее узнать условия. В таких случаях, когда критерии фильтра неизвестны до времени выполнения, можно использовать переменную (параметр). Когда выполняются команды, пользователю предлагается ввести значение каждого параметра.
Переменные также могут быть назначены программным путем. Использование параметров чрезвычайно эффективно и преобразует статические «жестко запрограммированные» команды в гибкие, динамические.
Переменные можно очень легко добавить. Вместо того чтобы вводить условия, целесообразно ввести в скобках просьбу, которую пользователь должен видеть при запуске команды. Значение, которое вводит пользователь, заменяет параметр в запросе.
В следующем примере переменная [Enter State Name:] является критерием в поле [State], а [Enter Minimum Age:] является параметром в поле [Age]. Когда этот запрос выполняется, пользователю предлагается указать желаемое состояние и минимальный возраст, и извлекаются записи, соответствующие этим критериям.
Параметры работают при условии, что определение переменной не конфликтует с именем поля в таблицах.
Чтобы лучше определить параметр, имеет смысл указать его в списке переменных. Это необязательный шаг, но для этого есть веские причины. Для этого достаточно щелкнуть правой кнопкой мыши на верхнюю часть сетки и выбрать «Параметры». Эта форма позволяет перечислить каждое имя параметра и его тип.
Путем явного определения пользователи вынуждены вводить значения, соответствующие типу. Хотя это не так важно для текстовых полей, но это значимо для числовых типов данных и полей даты. Определение сводит к минимуму ошибки при вводе данных.
8 Запросы
8 .1 Создание простого запроса с помощью Мастера запросов
Чтобы создать запрос с помощью Мастера запросов, необходимо:
1. В окне базы данных на панели объектов выбрать ярлык Запросы (Queries).
2. В списке запросов дважды щелкнуть левой кнопкой мыши на ярлыке Создание запроса с помощью мастера (Create query by using wizard) или нажать на кнопку Создать (New) в окне базы данных и в появившемся диалоговом окне Новый запрос (New Query) выбрать Простой запрос (Simple Query Wizard) и нажать на кнопку ОК (рис. 8.1).
3. В появившемся окне Создание простых запросов (Simple Query Wizard) (рис. 8.2) в поле со списком Таблицы и запросы (Tables/Queries) выбрать таблицу или запрос, которые будут служить источником данных для создаваемого запроса.
4. С помощью стрелок вправо и влево переместить из списка Доступные поля (Available Fields) в список Выбранные поля (Selected Fields) те поля, которые необходимы в конструируемом запросе. При этом порядок полей в запросе будет соответствовать порядку полей в списке Выбранные поля (Selected Fields). Если нужно включить в запрос все поля, можно воспользоваться кнопкой с двумя стрелками вправо.
Рисунок 8.1 — Окно создания нового запроса
Рисунок 8.2 — Первое диалоговое окно Мастера простых запросов
5. Нажать кнопку Далее (Next).
6. Следующее диалоговое окно будет последним. В нем нужно ввести имя создаваемого запроса (рис. 8.3) в поле Задайте имя запроса (What title do you want to your query?) и выбрать дальнейшие действия: Открыть запрос для просмотра данных (Open the query to view information) или Изменить макет запроса (Modify the query design).
7. При необходимости можно установить флажок Вывести справку по работе с запросом? (Display Help on working with the query) для вывода справочной информации по работе с запросами.
8. Нажать на кнопку Готово (Finish).
Рисунок 8.3 — Окно Мастера простых запросов на втором шаге
8 .2 Создание и изменение запроса с помощью Конструктора запросов
Создание нового запроса с помощью Конструктора запросов. Для этого необходимо:
1. В окне базы данных на панели объектов выбрать ярлык Запросы (Queries).
2. В списке запросов выбрать ярлык Создание запроса в режиме конструктора (Create query in Design view) или нажать кнопку Создать (New), в появившемся окне Новый запрос (New Query) выбрать Конструктор (Design view) и нажать на кнопку ОК.
3. В окне Добавление таблицы (Show Table) (см. рис. 8.4) выбрать одну или несколько таблиц или запросов для построения нового запроса и нажать кнопку Добавить (Add). Для удобства выбора таблиц и запросов в окне существуют следующие вкладки: Таблицы (Tables), на которой отображается список таблиц; Запросы (Queries), на которой отображается список запросов; Таблицы и запросы (Both), на которой отображается список таблиц и запросов вместе.
Рисунок 8.4 — Окно Добавление таблицы Конструктора запросов
4. После добавления всех необходимых таблиц нажать кнопку Закрыть (Close) в окне Добавление таблицы (Show Table). Все выбранные таблицы оказываются помещенными на верхней панели окна Конструктора запросов. Если таблицы связаны между собой, т. е. связи присутствуют явно на схеме данных, то эти связи также отображаются (рис. 8.5). Если связи на схеме данных не установлены, то Конструктор запросов автоматически устанавливает связи между таблицами, если они содержат поля, которые имеют одинаковые имена и согласованные типы.
Рисунок 8.5 — Запрос по нескольким связанным таблицам
5. Затем нужно указать, какие поля из базовых таблиц будут отображаться в запросе. Включать в запрос можно поля из любой таблицы.
Способов включения полей в запрос существует несколько:
· Выделите нужное поле в таблице-источнике (можно выделить несколько полей, пользуясь клавишами <Shift> и <Ctrl>). Если требуется включить в запрос все поля базовой таблицы, выделите поле, обозначенное звездочкой (*). Дважды щелкните левой кнопкой мыши на выделенном поле. При этом в бланке запроса появится столбец, соответствующий выбранному полю. Затем аналогично добавьте другие поля. Столбцы в бланке запроса при этом заполняются слева направо.
· Можно подвести указатель мыши к выделенному полю (одному из выделенных полей), нажать на левую кнопку мыши и перетащить поле (поля) в нужное место бланка запроса (указатель мыши при этом должен принять вид трех прямоугольников). Последний способ позволяет помещать поля в любое место бланка запроса.
· И наконец, вместо перетаскивания полей в бланк запроса из таблицы можно просто использовать раскрывающийся список полей в строке Поле (Field) бланка запроса
Чтобы добавить в запрос еще одну таблицу или другой запрос, необходимо:
1. Нажать кнопку Добавить таблицу (Show Table) на панели инструментов или выполнить команду меню Запрос, Добавить таблицу (Query, Show Table).
2. В окне Добавление таблицы (Show Table) выбрать вкладку, содержащую требуемые объекты.
3. Замечание
4. Если нужная таблица находится в другой базе данных или другом приложении, необходимо сначала присоединить эту таблицу к текущей базе данных.
5. Выбрать имя объекта, добавляемого в запрос.
6. Нажать кнопку Добавить (Add), а затем кнопку Закрыть (Close).
Чтобы удалить базовую таблицу из запроса , необходимо выделить ее, щелкнув на любом месте в списке ее полей, и нажать клавишу <Delete>.
Чтобы удалить поле из запроса , выделите нужный столбец в бланке запроса, а затем нажмите клавишу <Delete>.
Чтобы выделить столбец , пользуйтесь областью выделения столбцов — узкой серой полоской над столбцами в бланке запроса. Когда вы подводите указатель мыши к этой области, он преобразуется в жирную стрелку, направленную вниз.
Поля в таблице, являющейся результатом запроса, отображаются в том порядке, в котором они следуют в бланке запроса. Если требуется изменить порядок их следования, переставьте соответствующим образом столбцы в бланке запроса. Делается это стандартным способом, т. е. сначала выделяется нужный столбец или несколько столбцов, а затем они перетаскиваются мышью на новое место. При этом отпускать кнопку мыши нужно тогда, когда указатель мыши окажется перед тем столбцом, который делжен быть справа от вставляемого столбца. После вставки все столбцы, расположенные справа от указателя, сдвигаются вправо.
В режиме Конструктора запросов можно изменять имена полей запроса. Чтобы переименовать поле, необходимо установить курсор в бланке запроса перед первой буквой его имени и ввести новое имя и символ двоеточия. Пример запроса с измененными именами полей приведен на рис. 8.6. Изменение имени поля в бланке запроса приводит к изменению заголовка столбца при просмотре запроса в режиме таблицы. Кроме того, если на основе запроса создать новый объект, например форму или отчет, в новом объекте будет использовано новое имя поля. Имя поля базовой таблицы при этом не изменяется. Это имя также не изменяется в тех формах и отчетах, которые были созданы на основе запроса до изменения имени поля. Имена полей в запросах должны соответствовать соглашениям об именах Microsoft Access.
Рисунок 8.6 — Изменение названия поля в запросе
В строке Условие отбора (Criteria) и в строке или (Or) указываются условия отбора записей. Такими условиями могут быть логические выражения. Например, (>30), (=’Иванов’), (=10) и т. п.
Условия, находящиеся в одной строке, но в разных столбцах бланка, объединяются по логическому оператору And (И). Если нужно объединить условия отбора по логическому оператору Or (ИЛИ), разместите эти условия в разных строках бланка запроса. Пример использования нескольких условий отбора приведен на рис. 8.7.
Рисунок 8.7 — Задание критериев отбора записей в запросе
Если критерий отбора очень сложный, можно вставлять дополнительные строки условий. Для этого необходимо:
1. Выделить строку, которая должна оказаться под вставляемой строкой. Для этого нужно подвести указатель мыши к левой границе строки (он должен превратиться в жирную стрелку, указывающую вправо) и щелкнуть левой кнопкой мыши.
2. Выполнить команду Вставка, Строки (Insert, Rows) или нажать клавишу <Ins>. Новая пустая строка вставляется над выбранной. В нее можно вносить условия отбора.
Для удаления строки условий отбора:
1. Щелкните левой кнопкой мыши в любом месте строки.
2. Выполните команду Правка, Удалить строки (Edit, Delete Rows).
Чтобы установить порядок сортировки записей в запросе, используйте строку Сортировка (Sort). Для каждого поля, по которому должны сортироваться записи, выберите из списка соответствующий порядок сортировки: по возрастанию (Ascending) или по убыванию (Descending). По умолчанию во всех полях запроса устанавливается значение (отсутствует) (Not sorted). Пример использования поля со списком Сортировка (Sort) приведен на рис. 8.8.
Если нужно отсортировать записи в запросе по нескольким полям, разместите их в бланке запроса таким образом, чтобы они были упорядочены слева направо — именно в таком порядке будет выполняться сортировка.
Можно легко удалить поле из результирующей таблицы запроса, если просто сбросить флажок Вывод на экран (Show) в этом столбце бланка запроса. По умолчанию этот флажок установлен для всех полей запроса. Ситуация, когда поле не должно отображаться в результате запроса, возникает обычно, когда оно включается в бланк запроса только для того, чтобы указать условие отбора или сортировки записей. Пример такого запроса приведен на рис. 8.9. В запрос включены все поля таблицы "Товары" (Products) (это задано в первом столбце бланка запроса), а поля "КодТипа" и "Марка" включены только для того, чтобы указать порядок сортировки. Поэтому флажок Вывод на экран (Show) у этих полей сброшен. В противном случае эти поля вывелись бы дважды.
Рисунок 8.8 — Установка порядка сортировки записей в запросе
Рисунок 8.9 — Запрос в режиме Конструктора
После формирования бланка запроса его можно сохранить, нажав на кнопку Сохранить (Save) на панели инструментов или выполнив команду меню Файл, Сохранить (File, Save). При этом появляется диалоговое окно, в котором нужно ввести имя сохраняемого запроса (рис. 8.10). Запрос можно сохранить и закрыв его.
Результаты выполнения запроса можно увидеть, переключившись в режим Таблицы (Datasheet View) с помощью кнопки Вид (View) или нажав кнопку Запуск (Run) на панели инструментов.
Рисунок 8.10 — Диалоговое окно Сохранение
Результат выполнения запроса, созданного в режиме Конструктора, приведен на рис. 8.11.
Рисунок 8.11 — Результат выполнения запроса, созданного в режиме Конструктора