Создание простого запроса на выборку. Запросы на выборку в Access Основные этапы создания запроса на выборку

Цель работы: Изучение приемов конструирования и использования запросов на выборку данных.

Перед выполнением лабораторной работы необходимо изучить следующие разделы:

Типы запросов;

Создание запросов в режиме конструктора;

Правила записи условий отбора данных;

Применение встроенных функций;

Создание вычисляемых полей;

Использование форм ввода-вывода данных;

Создание перекрестных и активных запросов.

Задание 1. Создание простого запроса .

1. Откройте базу данных Институт .

2. Щелкните в окне База данных по объекту Запросы.

3. В окне Запросы щелкните по кнопке Создать.

4. В окне Новый запрос выберите Конструктор и нажмите кнопку Ok.

5. В окне Добавить таблицу добавьте все четыре таблицы и закройте окно.

6. Отрегулируйте размеры и расположение окон с таблицами на схеме данных.

7. Перетащите соответствующие названия полей (наименование факультета, N группы, наименование специальности, N зачетной книжки, ФИО) из окон таблиц в бланк запроса, расположенный под схемой данных, соблюдая заданный их порядок. Используйте для каждого поля, которое должно содержаться в выборке, один столбец бланка.

8. Просмотрите выборку, выполнив команду ВИД/Режим таблицы или щелкнув по кнопке инструментальной панели Вид.

9. Вернитесь в режим конструктора запросов в случае, если выборка содержит ошибки, и откорректируйте запрос.

10. Закройте запрос. Появится диалоговое окно, в котором необходимо подтвердить необходимость его сохранения. Присвойте запросу имя Выборка1.

Задание 2. Создайте простой запрос для выборки сведений из базы данных, включающий те же поля, что и предыдущий запрос, но содержащий сведения только о студентах, обучающихся на коммерческой основе. Такой запрос называется запросом по условию .

1. В окне База данных скопируйте запрос Выборка1 путем перетаскивания значка запроса при нажатой клавиши Ctrl.

2. Переименуйте запрос, дав ему имя Выборка по коммерческим. Для этого щелкните по имени запроса правой клавишей мыши и выберите в контекстном меню пункт Переименовать.

3. Откройте запрос в режиме конструктора. Добавьте в запрос поле Коммерческий.

4. Введите в строку Условие отбора поля Коммерческий значение Да.

5. Отмените вывод на экран при выполнении запроса значения поля Коммерческий. Для этого выключите флажок вывода на экран для этого поля.

6. Просмотрите выборку, щелкнув по кнопке Запуск на инструментальной панели.

7. Закройте запрос с сохранением макета запроса.

Задание 3. Создайте запрос на выборку, с помощью которого найдите фамилию и номер зачетной книжки самого молодого студента в одной из групп.


1. В окне База данных щелкните по кнопке Создать и выберите вариант Конструктор.

2. В окне Добавление таблицы выберите таблицу Студент. Вставьте в бланк запроса все поля этой таблицы. Для этого выделите сначала все поля на схеме данных с использованием клавиши Shift, а затем перетащите в первую строку бланка описания запроса.

3. Введите в строку Условие отбора поля Дата рождения формульное выражение в соответствии с заданием. Используйте инструментальное средство Access Построитель выражений. Для этого установите курсор в соответствующую ячейку таблицы описания запроса и щелкните по кнопке инструментальной панели Построить.

4. В окне Построитель выражений введите имя функции DMax. Для этого раскройте список Функции в левом подокне построителя и выберите Встроенные функции. Далее в среднем подокне выберите категорию функций По подмножеству, а в правом подокне – функцию DMax(). Соответствующая функция появится в главном окне построителя с обозначением ее аргументов.

5. Удалите первый аргумент функции и вставьте вместо него имя поля Дата рождения либо непосредственным вводом с клавиатуры, либо путем раскрытия щелчком мышки списка Таблицы в левом подокне, а затем, выбрав таблицу Студент, а в ней – поле. В последнем случае нужно удалить неиспользуемую часть строки Выражение. Далее введите значения остальных аргументов функции, таким образом, чтобы функция приняла следующий окончательный вид: DMax("[Дата рождения]";"Студент";"=851")

6. Для записи функции в ячейку таблицы описания запроса щелкните по кнопке Ok. Закройте запрос сохранением макета и присвойте ему имя Выборка самого молодого студента. Просмотрите результат выполнения запроса двойным щелчком мыши по его имени в окне базы данных.

7. Продемонстрируйте результат работы преподавателю.

Задание 4. Создайте запрос для подсчета количества коммерческих студентов в каждой группе.

1. Создайте новый запрос с использованием таблиц Факультет, Группа, Студент.

3. Установите в качестве условия выборки для 3-го столбца – значение Да.

4. Установите для 1-го и 2-го столбцов бланка сортировку по возрастанию.

5. Отключите вывод на экран данных 3-го столбца.

6. Введите в 4-ый столбец поле Коммерческий и замените название столбца на Количество коммерческих. Для этого ячейка с названием поля должна содержать: Количество коммерческих: Коммерческий (новое и старое названия столбца разделены символом «двоеточие»)

7. Щелкнув по кнопке инструментальной панели Групповые операции, добавьте в бланк строку Групповая операция и выберите из списка для 4-го столбца операцию Count.

8. Просмотрите выборку с подсчетом итогов, щелкнув по кнопке инструментальной панели Запуск, либо выполнив команду ЗАПРОС/Запуск.

9. Вернитесь в режим конструктора запросов, щелкнув по кнопке Вид инструментальной панели.

10. Сохраните запрос, присвоив ему имя Подсчет коммерческих по группам.

Задание 5. Составьте запрос, позволяющий увидеть выборку, отражающую количество коммерческих студентов по каждому факультету и каждой группе. Заголовки столбцов должны соответствовать названиям факультетов, заголовки строк – номерам групп. Выборка должна содержать также итоговый столбец с общим количеством коммерческих студентов на каждом факультете. Такой вид выборки может быть реализован перекрестным запросом. Для применения подобного запроса желательно иметь в базе данных сведения по 5-6 группам студентов, обучающихся на 3-х факультетах.

1. Создайте с помощью конструктора новый запрос с использованием таблиц Факультет, Группа, Студент.

2. Введите в 1-ый столбец бланка запроса поле Наименование факультета, во 2-ой столбец – поле N группы, в 3-ий столбец – поле Коммерческий.

3. Выполните команду ЗАПРОС/Перекрестный, либо щелкните по кнопке инструментальной панели Тип запроса и выберите из списка Перекрестный.

4. Выберите значения в строке бланка Перекрестная таблица, развернув список в ячейках: для 1-го столбца Заголовки строк, для 2-го столбца – Заголовки столбцов, для 3-го столбца – Значение.

5. Выберите функцию Count для групповой операции в 3-м столбце.

6. Просмотрите перекрестную выборку, щелкнув по кнопке Запуск.

7. Для создания итогового столбца снова перейдите в режим конструктора и вставьте в бланк запроса еще одно поле Коммерческий. Введите перед названием этого поля название столбца Итого: В строке Групповая операция выберите Count, а в строке Перекрестная таблица – Заголовки строк.

8. В режиме таблицы уменьшите ширину столбцов таблицы-выборки. Для этого выделите столбцы с данными по группам и выполните команду ФОРМАТ/Ширина столбцов/По ширине данных.

9. Просмотрите отредактированную выборку и сохраните запрос, присвоив ему имя Количество коммерческих по группам и факультетам.

10. Примерный вид перекрестной выборки представлен на рис.1.

Рис.1. - Перекрестная выборка количества коммерческих студентов по группам и факультетам.

Задание 6. Составьте запрос для вывода списков групп, причем номер группы должен запрашиваться в процессе выполнения запроса. Такой запрос называется запросом с параметром . Параметром является Номер группы. Значение параметра вводится в диалоговом окне. Для создания запроса необходимо ввести в ячейку с условием текст условия отбора в квадратных скобках.

1. Создайте с помощью конструктора новый запрос с использованием одной таблицы Студент.

2. Введите в 1-ую строку бланка запроса все поля таблицы.

3. Введите в ячейку строки Условие отбора для поля N группы текст: [Введите номер группы]

4. Запустите запрос, и в появившееся диалоговое окно введите номер одной из групп. Просмотрите выборку. Сохраните запрос, присвоив ему имя Запрос с параметром.

5. Продемонстрируйте результат работы преподавателю.

Тема: Создание межтабличных связей. Создание запроса на выборку, с параметром и итогового запроса.

Открыть созданную в предыдущей лабораторной работе базу данных Деканат ТФ .

Создание межтабличных связей

В окне базы данных выбрать объект Таблицы . Щелкнуть по кнопке «Схема данных » на панели инструментов или выполнить команду «Сервис »  «Схема данных », используя командное меню. На экране появится окно «Схема данных » и окно «Добавление таблицы » (рис. 18).

Рис. 18. Диалоговое окно «Схема данных» и диалоговое окно «Добавление таблицы»

В окне «Добавление таблицы » на закладке «Таблицы » перечислены все таблицы базы данных. Для создания связей между таблицами их нужно переместить из окна «Добавление таблицы » в окно «Схема данных ». Для переноса таблицы ее надо выделить щелчком мыши и щелкнуть по кнопке «Добавить ». После переноса нужных таблиц закрыть окно «Добавление таблицы ».

Перенести все таблицы в окно «Схема данных ». Изменить размер окон таблиц, чтобы был виден весь текст (рис. 19).

Чтобы создать связь между таблицами Студенты и Оценки в соответствии со Схемой данных надо подвести курсор мыши к полю Код студента в таблице Студенты и при нажатой клавише мыши перетащить это поле на поле Код студента в таблице Оценки , а затем отпустить кнопку мыши. Откроется окно «Изменение связей » (рис. 20).

Установить флажок в свойстве «Обеспечение целостности данных », щелкнув по нему. Установить флажки в свойствах «Каскадное обновление связанных полей » и «Каскадное удаление связанных полей ». Это позволит редактировать записи только в таблице Студенты , а в таблице Оценки эти действия со связанными записями будут выполняться автоматически.

Для создания связи щелкнуть по кнопке «Создать ».

Рис. 19. Внешний вид схемы данных базы данных «Деканат ТФ » до наложения связей

Рис. 20. Диалоговое окно задания параметров связи между полями таблиц

Аналогично в соответствии со Схемой данных создаются связи между остальными таблицами (рис. 21).

Рис. 21. Схема данных базы данных «Деканат ТФ »

При закрытии окна схемы данных ответить Да на вопрос о сохранении макета.

Созданные связи между таблицами базы данных могут быть изменены.

Для изменения связей нужно вызвать окно «Схема данных ». После этого установить курсор мыши на связь, которую нужно изменить и щелкнуть правой клавишей мыши. Появится контекстное меню (рис.22):

Рис. 22. Контекстное меню связи

Если выбрать команду «Удалить », то после подтверждения связь будет удалена. Если нужно изменить связь, выбрать команду «Изменить связь ». После этого в появившемся окне «Изменение связей » (в его верхней части) выбрать поля в таблицах, которые нужно связать и щелкнуть по кнопке «Создать ».

Запросы

Для отбора или поиска данных из одной или нескольких таблиц используются запросы. С помощью запросов можно просматривать, анализировать и изменять данные из нескольких таблиц. Они также используются в качестве источника данных для форм и отчётов. Запросы позволяют вычислять итоговые значения и выводить их в компактном формате, а также выполнять вычисления над группами записей.

Мы будем разрабатывать запросы в режиме Конструктора .

В Access можно создавать следующие типы запросов:

    Запрос на выборку . Является наиболее часто используемым типом запроса. Запросы этого типа возвращают данные из одной или нескольких таблиц и отображают их в виде таблицы. Запросы на выборку можно также использовать для группировки записей и вычисления сумм, средних значений, подсчета записей и нахождения других типов итоговых значений. Для изменения условий отбора надо изменять запрос.

    Запрос с параметрами . Это запрос, при выполнении отображающий в собственном диалоговом окне приглашение ввести данные или значение, которое требуется вставить в поле. Эти данные или значение могут меняться при каждом обращении к запросу.

    Перекрестный запрос . Используется для расчетов и представления данных в структуре, облегчающей их анализ. Перекрестный запрос подсчитывает сумму, среднее, число значений или выполняет другие статистические расчеты, после чего результаты группируются в виде таблицы по двум наборам данных, один из которых определяет заголовки столбцов, а другой заголовки строк.

    Запрос на изменение . Это запрос, который за одну операцию изменяет или перемещает несколько записей. Существует четыре типа запросов на изменение:

1. На удаление записи. Этот запрос удаляет группу записей из одной или нескольких таблиц.

2. На обновление записи. Вносит общие изменения в группу записей одной или нескольких таблиц. Позволяет изменять данные в таблицах.

3. На добавление записей. Добавляет группу записей из одной или нескольких таблиц в конец одной или нескольких таблиц.

4. На создание таблицы. Создает новую таблицу на основе всех или части данных из одной или нескольких таблиц.

    Запросы SQL . Создаются при помощи инструкций языка SQL , используемого в БД .

В простейшем случае запрос реализует выбор из одной таблицы нужных полей, записей, соответствующих заданным условиям отбора, и просмотр результатов выполнения запроса.

Конструирование запросов на выборку с условиями отбора

Рассмотрим запросы на выборку в Access на примере получения информации из таблицы ТОВАР базы данных Поставка товаров .

Задача 1 . Пусть необходимо выбрать ряд характеристик товара по его наименованию.

  1. Для создания запроса в окне базы данных выберите вкладку ленты - Создание (Create) и в группе Запросы (Queries) нажмите кнопку Конструктор запросов (Query Design). Откроется пустое окно запроса на выборку в режиме конструктора - ЗапросN (QueryN) и диалоговое окно Добавление таблицы (Show Table) (рис. 4.2).
  2. В окне Добавление таблицы (Show Table) выберите таблицу ТОВАР и нажмите кнопку Добавить (Add). Выбранная таблица будет отображена в области схемы данных запроса. Закройте окно Добавление таблицы (Show Table), нажав кнопку Закрыть (Close).

В результате выполненных действий в окне конструктора запросов (рис. 4.1) в верхней панели появится схема данных запроса, которая включает выбранные для данного запроса таблицы. В данном случае одну таблицу ТОВАР. Таблица представлена списком полей. Первая строка в списке полей таблицы, отмеченная звездочкой (*), обозначает все множество полей таблицы. Нижняя панель является бланком запроса, который нужно заполнить.

Кроме того, на ленте появляется и автоматически активизируется новая вкладка (Query Tools | Design) (на рис. 4.3 представлена на часть этой вкладки), на которой цветом выделен тип созданного запроса - Выборка (Select). Таким образом, по умолчанию всегда создается запрос на выборку. Команды этой вкладки представляют инструментарий для выполнения необходимых действий при создании запроса. Эта вкладка открывается, когда в режиме конструктора создается новый запрос или редактируется существующий.

  1. Для удаления любой таблицы из схемы данных запроса установите на нее курсор мыши и нажмите клавишу . Для добавления ― нажмите кнопку Отобразить таблицу (Show Table) в группе Настройка запроса (Query Setup) на вкладке Работа с запросами | Конструктор (Query Tools | Design) или выполните команду Добавить таблицу (Show Table) в контекстном меню, вызываемом на схеме данных запроса.
  2. В окне конструктора (рис. 4.4) последовательно перетащите из списка полей таблицы ТОВАР поля НАИМ_ТОВ, ЦЕНА, НАЛИЧИЕ_ТОВ в столбцы бланка запроса в строку Поле (Field).
  3. Для включения нужных полей из таблицы в соответствующие столбцы запроса можно воспользоваться следующими приемами:
    • в первой строке бланка запроса Поле (Field) щелчком мыши вызвать появление кнопки списка и выбрать из списка нужное поле. Список содержит поля таблиц, представленных в схеме данных запроса;
    • дважды щелкнуть на имени поля таблицы в схеме данных запроса;
    • для включения всех полей таблицы можно перетащить или дважды щелкнуть на символе * (звездочка) в списке полей таблицы в схеме данных запроса.
  4. Если вы по ошибке перетащили в бланке запроса ненужное поле, удалите его. Для этого переместите курсор в область маркировки столбца сверху, где он примет вид черной стрелки, направленной вниз, и щелкните кнопкой мыши. Столбец выделится. Нажмите клавишу или выполните команду Удалить столбцы (Delete Columns) в группе Настройка запроса (Query Setup).
  5. В строке Вывод на экран (Show) отметьте поля, иначе они не будут включены в таблицу запроса.
  6. Запишите в строке Условия отбора (Criteria) наименование товара, как показа-но в бланке запроса на рис. 4.4. Так как выражение в условии отбора не содержит оператора, то по умолчанию используется оператор =. Используемое в выражении текстовое значение вводится в двойных кавычках, которые добавляются автоматически.
  7. Выполните запрос, щелкнув на кнопке Выполнить (Run) или на кнопке Режим (View) в группе Результаты (Results). На экране появится окно запроса в режиме таблицы с записью из таблицы ТОВАР, отвечающей заданным условиям отбора.

ЗАМЕЧАНИЕ
Окно запроса в режиме таблицы аналогично окну просмотра таблицы базы данных. Через некоторые таблицы запроса может производиться изменение данных базовой таблицы, лежащей в основе запроса. Запрос, просматриваемый в режиме таблицы, в отличие от таблицы базы данных Access 2010, не имеет столбца Щелкнуть для добавления (Click to Add), предназначенного для изменения структуры таблицы. В этом режиме на вкладке ленты Главная (Home) доступны те же кнопки, что и при открытии таблицы базы данных.

  1. Если при вводе сложного наименования товара вы допустили неточность, товар не будет найден в таблице. Использование операторов шаблона - звездочка (*) и вопросительный знак (?) (стандарт ANSI-89, используемый для запросов по умолчанию) или знак процента (%) и подчеркивания (_) (ANSI-92, рекомендуемый как стандарт для SQL Server), упрощает поиск нужных строк и позволяет избежать многих ошибок. Введите вместо полного имени товара Корпус* или Корпус%. Выполните запрос. Если в поле наименования товара одно значение начинается со слова «Корпус», результат выполнения запроса будет таким же, как в предыдущем случае. После выполнения запроса введенное выражение будет дополнено оператором Like «Корпус*». Этот оператор позволяет использовать символы шаблона при поиске в текстовых полях.
  2. Если необходимо найти несколько товаров, используйте оператор In. Он позволяет выполнить проверку на равенство любому значению из списка, который задается в круглых скобках. Запишите в строке условий отбора In («Корпуc MiniTower»;»HDD Maxtor 20GB»;»FDD 3,5″). В таблице запроса будет выведено три строки. В операторе In не допускается использование символов шаблона.
  3. Сохраните запрос, щелкнув на вкладке Файл (File) и выполнив команду Сохранить (Save). В окне Сохранение (Save As) введите имя запроса Пример1. Заметим, что имя запроса не должно совпадать не только с именами имеющихся запросов, но и с именами таблиц в базе данных.
  4. Закройте текущий запрос по команде контекстного меню Закрыть (Close) или нажав кнопку окна запроса Закрыть (Close).
  5. Выполните сохраненный запрос, выделив запрос в области навигации и выбрав в контекстном меню команду Открыть (Open).
  6. Для редактирования запроса выделите его в области навигации и выполните в контекстном меню команду Конструктор (Design View).

Задача 2. Пусть надо выбрать товары, цена которых не более 1000 руб., и НДС не более 10%, а также выбрать товары, цена которых более 2500 руб. Результат должен содержать наименование товара (НАИМ_ТОВ), его цену (ЦЕНА) и НДС (СТАВКА_НДС).

  1. Создайте новый запрос в режиме конструктора, добавьте таблицу ТОВАР. В окне конструктора (рис. 4.5) последовательно перетащите из списка полей таблицы ТОВАР в бланк запроса поля НАИМ_ТОВ, ЦЕНА, СТАВКА_НДС.
  2. Запишите Условия отбора (Criteria), как показано в бланке запроса на рис. 4.5. Между условиями, записанными в одной строке, выполняется логическая операция AND. Между условиями, записанными в разных строках, выполняется логическая операция OR.
  3. Выполните запрос, щелкните на кнопке Выполнить (Run) в группе Результаты (Results). На экране появится окно запроса в режиме таблицы с записями из таблицы ТОВАР, отвечающими заданным условиям отбора.
  4. Сохраните запрос, выполнив соответствующую команду в контекстном меню запроса, которое вызывается при установке курсора на заголовок запроса. Дайте ему имя Пример2 .

Задача 3 . Пусть надо выбрать все накладные за заданный период. Результат должен содержать номер накладной (НОМ_НАК), код склада (КОД_СК), дату отгрузки (ДАТА_ОТГР) и общую стоимость отгруженного товара (СУММА_НАКЛ).

  1. Создайте новый запрос в режиме конструктора, добавьте таблицу НАКЛАДНАЯ. В окне конструктора последовательно перетащите из списка полей таблицы НАКЛАДНАЯ в бланк запроса все необходимые поля.
  2. Для поля ДАТА_ОТГР в строке Условия отбора (Criteria) запишите Between #11.01.2008# And #31.03.2008#. Оператор Between задает интервал дат (в ANSI-92 вместо знака # используются одинарные кавычки ‘). Кроме того, этот оператор позволяет задать интервал для числового значения.

Для закрепления смотрим видеоурок:

Вычисляемые поля в запросах Access .

Сегодня мы начнем рассматривать такое приложение как — Microsoft Access 2003 , которое умеет создавать собственные базы данных (формат mdb ), а также создавать клиентские приложения к существующим базам на основе MS SQL Server. Темой сегодняшней статьи будет создание новых запросов из Access, имеется в виду, как простые запросы, так и различные функции, представления и процедуры. Под запросом здесь понимается объекты базы данных.

О Microsoft Access

Microsoft Access программный продукт компании Microsoft, являющейся реляционной СУБД. Имеет огромные возможности при организации базы данных, создания отдельного приложения, которое может взаимодействовать с множеством других СУБД. Наиболее часто встречающееся решение клиент-сервер, где в качестве клиента выступает приложение, написанное в Access (язык VBA, формы и многое другое ), а сервером является СУБД Microsoft SQL Server. Однако Access поддерживает и взаимодействие с другими СУБД, например, такими как: MySql или PostgreSQL. О Access можно разговаривать долго, но цель сегодняшней статьи именно создание запросов (объектов ) из Access.

Переходим к практике и начнем с простой базы mdb, т.е. как там создать эти самые запросы.

Создание запросов в Microsoft Access 2003 — база MDB

Для начала открываем базу, затем нажимаем на объекты «Запросы» и жмем кнопку «Создать» .

Примечание! Имеется в виду, что база у Вас уже есть.

И перед Вами откроется новое окно выбора типа запроса

Давайте рассмотрим каждый из этих типов запросов подробней.

Типы запросов в Access 2003 — база MDB

Конструктор – это создание запроса на основе конструктора, так сказать в графическом редакторе, но в нем можно перейти в режим sql и написать текст запроса как обычно. Сразу же после запуска у Вас откроется окно выбора нужных таблиц или уже существующих запросов, так как существующие запросы можно также использовать для выборки необходимых данных, это как будто «представление» .

Если не нравится это делать в графическом редакторе, то можете переключиться в режим SQL, для этого нажмите пункт меню «Вид» , затем «Режим SQL» .

Простой запрос – это, можно сказать, такой же конструктор, только немного другого вида и поменьше возможностей.

Перекрестный запрос – это так называемое транспонирование таблицы, другими словами, вывод данных, которые располагаются в колонках по горизонтали, т.е. каждое значение из одного столбца будет выведено по горизонтали в отдельной колонке. Это все делается с помощью мастера, поэтому проблем возникнуть не должно.

Повторяющееся записи – это как видно из названия поиск повторяющихся записей.

Записи без подчиненных – это поиск тех записей, которые отсутствуют в той или иной таблице.

С базами mdb достаточно, так как их редко используют на предприятиях, обычно используют следующую схему – пишут отдельный клиент, а все данные хранят на сервере с помощью СУБД в нашем случае — это MS SQL Server, а клиент Access (.adp).

Создание запросов в Microsoft Access 2003 — база MS SQL Server

Давайте рассмотрим создание новых запросов из клиента Access на базе MS SQL Server (подразумевается, что клиент adp и база данных на основе MS SQL Server у Вас уже есть ).

Примечание! Данная статья не подразумевает изучение sql, поэтому на момент прочтения этой статьи Вы уже должны понимать основы sql и понятие основных объектов в базе данных таких как: представление, функция, процедура. Если Вы совсем новичок в этом, то сначала, конечно же, рекомендуется освоить SQL, так как многие термины ниже Вам будут не понятны. Рекомендуемые статьи:

  • Что такое представления VIEWS в базах данных? И зачем они нужны?

Начало все такое же, открывает проект, затем нажимаем на объекты «Запросы» и жмем кнопку «Создать» .

И теперь подробней.

Типы запросов в Access 2003 — база MS SQL Server

Конструктор встроенной функции – это, можно сказать, обычное представление, только в нее можно передавать параметры, затем выполняются какие-то запросы на сервере, и возвращается таблица. Это своего рода функция, которая возвращает данные в виде таблицы. К ней обращаются следующим образом (если говорить об sql ):

SELECT * FROM my_test_tabl_func(par1, par2 ……)

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

Затем если Вы хотите добавить входящие параметры можете просто в условие ставить знак @ и название переменной, например, так:

SELECT * FROM table WHERE kod = @par

После на панели в свойствах функции

на вкладке «параметры функции» появится те параметры, которые Вы указали, причем передавать их нужно в том порядке, в котором они здесь указанны.

Конструктор представления – это создание обычного представления, в просто народе «Вьюха» .

Конструктор сохраненной процедуры – создание процедуры с помощью конструктора, принцип такой же, как и в вышеупомянутых функциях. Напомню процедура — это набор sql операторов, как на выборку, так и на изменение данных.

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

Ввод скалярной функции – это создание функции, которая возвращает значение. Создается с помощью текстового редактора.

Ввод табличной функции – это создание функции, которая вернет набор записей. Похожа на встроенную функцию.

Для того чтобы в клиенте access их можно было отличать, у них разные иконки, те самые которые Вы видите при создании того или иного объекта.

При создании всех этих объектов они сохраняются на сервере, и Вы их можете использовать не только из своего adp проекта, но и из других клиентов.

Конечно же, все эти объекты Вы можете создать и на сервере с помощью, например, Enterprise Manager (устарел, сейчас SQL Server Management Studio ), но мы сегодня рассматриваем возможность создания этих объектов из access клиента.

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

Если вам нужно выбрать определенные данные из одного или нескольких источников, можно воспользоваться запросом на выборку. Запрос на выборку позволяет получить только необходимые сведения, а также помогает объединять информацию из нескольких источников. В качестве источников данных для запросов на выборку можно использовать таблицы и другие такие же запросы. В этом разделе вкратце рассматриваются запросы на выборку и предлагаются пошаговые инструкции по их созданию с помощью Мастера запросов либо в Конструктор.

Если вы хотите узнать больше о принципах работы запросов на примере базы данных Northwind, ознакомьтесь со статьей Общие сведения о запросах .

В этой статье

Общие сведения

Когда возникает потребность в каких-то данных, редко бывает необходимо все содержимое одной таблицы. Например, если вам нужна информация из таблицы контактов, как правило, речь идет о конкретной записи или только о номере телефона. Иногда бывает необходимо объединить данные сразу из нескольких таблиц, например совместить информацию о клиентах со сведениями о заказчиках. Для выбора необходимых данных используются запросы на выборку.

Запрос на выборку - это объект базы данных, который показывает информацию в режим таблицы. Запрос не хранит данные, но содержит данные, которые хранятся в таблицах. В запросе можно отобразить данные из одной или нескольких таблиц, из других запросов или из двух сочетаний.

Преимущества запросов

Запрос позволяет выполнять перечисленные ниже задачи.

    Просматривать значения только из полей, которые вас интересуют. При открытии таблицы отображаются все поля. Вы можете сохранить запрос, который выдает лишь некоторые из них.

    Примечание: Запрос только возвращает данные, но не сохраняет их. При сохранении запроса вы не сохраняете копию соответствующих данных.

    Объединять данные из нескольких источников. В таблице обычно можно увидеть только те сведения, которые в ней хранятся. Запрос позволяет выбрать поля из разных источников и указать, как именно нужно объединить информацию.

    Использовать выражения в качестве полей. Например, в роли поля может выступить функция, возвращающая дату, а с помощью функции форматирования можно управлять форматом значений из полей в результатах запроса.

    Просматривать записи, которые отвечают указанным вами условиям. При открытии таблицы отображаются все записи. Вы можете сохранить запрос, который выдает лишь некоторые из них.

Основные этапы создания запроса на выборку

Вы можете создать запрос на выборку с помощью мастера или конструктора запросов. Некоторые элементы недоступны в мастере, однако их можно добавить позже из конструктора. Хотя это разные способы, основные этапы аналогичны.

    Выберите таблицы или запросы, которые хотите использовать в качестве источников данных.

    Укажите поля из источников данных, которые хотите включить в результаты.

    Также можно задать условия, которые ограничивают набор возвращаемых запросов записей.

Создав запрос на выборку, запустите его, чтобы посмотреть результаты. Чтобы выполнить запрос на выборку, откройте его в режиме таблицы. Сохранив запрос, вы сможете использовать его позже (например, в качестве источника данных для формы, отчета или другого запроса).

Создание запроса на выборку с помощью мастера запросов

Мастер позволяет автоматически создать запрос на выборку. При использовании мастера вы не полностью контролируете все детали процесса, однако таким способом запрос обычно создается быстрее. Кроме того, мастер иногда обнаруживает в запросе простые ошибки и предлагает выбрать другое действие.

Подготовка

Если вы используете поля из источников данных, которые не связаны между собой, мастер запросов предлагает создать между ними отношения. Он откроет окно отношений , однако если вы внесете какие-то изменения, то вам потребуется перезапустить мастер. Таким образом, перед запуском мастера имеет смысл сразу создать все отношения, которые потребуются вашему запросу.

Дополнительную информацию о создании отношений между таблицами можно найти в статье Руководство по связям между таблицами .

Использование мастера запросов

    На вкладке Создание в группе Запросы нажмите кнопку Мастер запросов .

    В диалоговом окне Новый запрос выберите пункт Простой запрос и нажмите кнопку ОК .

    Теперь добавьте поля. Вы можете добавить до 255 полей из 32 таблиц или запросов.

    Для каждого поля выполните два указанных ниже действия.


  1. Если вы не добавили ни одного числового поля (поля, содержащего числовые данные), перейдите к действию 9. При добавлении числового поля вам потребуется выбрать, что именно вернет запрос: подробности или итоговые данные.

    Выполните одно из указанных ниже действий.


  2. В диалоговом окне Итоги укажите необходимые поля и типы итоговых данных. В списке будут доступны только числовые поля.

    Для каждого числового поля выберите одну из перечисленных ниже функций.

    1. Sum - запрос вернет сумму всех значений, указанных в поле.

      Avg - запрос вернет среднее значение поля.

      Min - запрос вернет минимальное значение, указанное в поле.

      Max - запрос вернет максимальное значение, указанное в поле.


  3. Если вы хотите, чтобы в результатах запроса отобразилось число записей в источнике данных, установите соответствующий флажок Подсчет числа записей в (название источника данных) .

    Нажмите ОК , чтобы закрыть диалоговое окно Итоги .

    Если вы не добавили в запрос ни одного поля даты и времени, перейдите к действию 9. Если вы добавили в запрос поля даты и времени, мастер запросов предложит вам выбрать способ группировки значений даты. Предположим, вы добавили в запрос числовое поле ("Цена") и поле даты и времени ("Время_транзакции"), а затем в диалоговом окне Итоги указали, что хотите отобразить среднее значение по числовому полю "Цена". Поскольку вы добавили поле даты и времени, вы можете подсчитать итоговые величины для каждого уникального значения даты и времени, например для каждого месяца, квартала или года.


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

    На последней странице мастера задайте название запроса, укажите, хотите ли вы открыть или изменить его, и нажмите кнопку Готово .

    Если вы решили открыть запрос, он отобразит выбранные данные в режиме таблицы. Если вы решили изменить запрос, он откроется в режиме конструктора.

Создание запроса в режиме конструктора

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

Создание запроса

Действие 1. Добавьте источники данных

В режиме конструктора источники данных и поля добавляются на разных этапах, так как для добавления источников используется диалоговое окно Добавление таблицы . Однако вы всегда можете добавить дополнительные источники позже.

Автоматическое соединение

Если между добавляемыми источниками данных уже заданы отношения, они автоматически добавляются в запрос в качестве соединений. Соединения определяют, как именно следует объединять данные из связанных источников. Access также автоматически создает соединение между двумя таблицами, если они содержат поля с совместимыми типами данных и одно из них - первичный ключ.

Вы можете настроить соединения, добавленные приложением Access. Access выбирает тип создаваемого соединения на основе отношения, которое ему соответствует. Если Access создает соединение, но для него не определено отношение, Access добавляет внутреннее соединение.

Повторное использование одного источника данных

В некоторых случаях вы можете присоединиться к двум копиям одной и той же таблицы или запроса, которые называются самосоединение, и будут объединять записи из той же таблицы, если в Объединенных полях есть совпадающие значения. Например, предположим, что у вас есть таблица Employees, в которой поле "подчиняется" для записи каждого сотрудника отображает его идентификатор своего руководителя вместо имени. Вы можете использовать самосоединение для отображения имени руководителя в записи каждого сотрудника.

При добавлении источника данных во второй раз Access присвоит имени второго экземпляра окончание "_1". Например, при повторном добавлении таблицы "Сотрудники" ее второй экземпляр будет называться "Сотрудники_1".

Действие 2. Соедините связанные источники данных

Если источники данных, добавленные в запрос, уже имеют отношения, Access автоматически создает внутреннее соединение для каждой связи. Если используется целостность данных, Access также отображает "1" над линией соединения, чтобы показать, какая таблица находится на стороне "один" элемента отношение "один-ко-многим" и символ бесконечности (), чтобы показать, какая таблица находится на стороне "многие".

Если вы добавили в запрос другие запросы и не создали между ними отношения, Access не создает автоматических соединений ни между ними, ни между запросами и таблицами, которые не связаны между собой. Если Access не создает соединения при добавлении источников данных, как правило, их следует создать вручную. Источники данных, которые не соединены с другими источниками, могут привести к проблемам в результатах запроса.

Кроме того, можно сменить тип соединения с внутреннего на внешнее соединение, чтобы запрос включал больше записей.

Добавление соединения

Изменение соединения

После создания соединений можно добавить выводимые поля: они будут содержать данные, которые должны отображаться в результатах.

Действие 3. Добавьте выводимые поля

Вы можете легко добавить поле из любого источника данных, добавленного в действии 1.

    Для этого перетащите поле из источника в верхней области окна конструктора запросов вниз в строку Поле бланка запроса (в нижней части окна конструктора).

    При добавлении поля таким образом Access автоматически заполняет строку Таблица в таблице конструктора в соответствии с источником данных поля.

    Совет: Чтобы быстро добавить все поля в строку "Поле" бланка запроса, дважды щелкните имя таблицы или запроса в верхней области, чтобы выделить все поля в нем, а затем перетащите их все сразу вниз на бланк.

Использование выражения в качестве выводимого поля

Вы можете использовать выражение в качестве выводимого поля для вычислений или создания результатов запроса с помощью функции. В выражениях могут использоваться данные из любых источников запроса, а также функции, например Format или InStr, константы и арифметические операторы.

    В пустом столбце таблицы запроса щелкните строку Поле правой кнопкой мыши и выберите в контекстном меню пункт Масштаб .

    В поле Масштаб введите или вставьте необходимое выражение. Перед выражением введите имя, которое хотите использовать для результата выражения, а после него - двоеточие. Например, чтобы обозначить результат выражения как "Последнее обновление", введите перед ним фразу Последнее обновление: .

    Примечание: С помощью выражений можно выполнять самые разные задачи. Их подробное рассмотрение выходит за рамки этой статьи. Дополнительные сведения о создании выражений см. в статье Создание выражений .

Действие 4. Укажите условия

Это необязательно.

С помощью условий можно ограничить количество записей, которые возвращает запрос, выбирая только те из них, значения полей в которых отвечают заданным критериям.

Определение условий для выводимого поля

    В таблице конструктора запросов в строке Условие отбора поля, значения в котором вы хотите отфильтровать, введите выражение, которому должны удовлетворять значения в поле для включения в результат. Например, чтобы включить в запрос только записи, в которых в поле "Город" указано "Рязань", введите Рязань в строке Условие отбора под этим полем.

    Различные примеры выражений условий для запросов можно найти в статье Примеры условий запроса .

    Укажите альтернативные условия в строке или под строкой Условие отбора .

    Когда указаны альтернативные условия, запись включается в результаты запроса, если значение соответствующего поля удовлетворяет любому из указанных условий.

Условия для нескольких полей

Условия можно задать для нескольких полей. В этом случае для включения записи в результаты должны выполняться все условия в соответствующей строке Условия отбора либо Или .

Настройка условий на основе поля, которое не включается в вывод

Вы можете добавить в запрос поле, но не включать его значения в выводимые результаты. Это позволяет использовать содержимое поля для ограничения результатов, но при этом не отображать его.

    Добавьте поле в таблицу запроса.

    Снимите для него флажок в строке Показывать .

    Задайте условия, как для выводимого поля.

Действие 5. Рассчитайте итоговые значения

Этот этап является необязательным.

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

Для расчета итоговых значений в запросе используется строка Итого . По умолчанию строка Итого не отображается в режиме конструктора.

    Когда запрос открыт в конструкторе, на вкладке "Конструктор" в группе "Показать или скрыть" нажмите кнопку Итоги .

    Access отобразит строку Итого на бланке запроса.

    Для каждого необходимого поля в строке Итого выберите нужную функцию. Набор доступных функций зависит от типа данных в поле.

    Дополнительные сведения о функциях строки "Итого" в запросах см. в статье Суммирование или подсчет значений в таблице с помощью строки "Итого" .

Чтобы увидеть результаты запроса, на вкладке "Конструктор" нажмите кнопку Выполнить . Access отобразит результаты запроса в режиме таблицы.

Чтобы вернуться в режим конструктора и внести в запрос изменения, щелкните Главная > Вид > Конструктор .

Настраивайте поля, выражения или условия и повторно выполняйте запрос, пока он не будет возвращать нужные данные.

Создание запроса на выборку в веб-приложении Access

Чтобы сделать результаты запроса доступными в браузере, нужно добавить представление запроса на экране выбора таблиц. Чтобы добавить новое представление в заголовок на экране выбора таблиц, выполните указанные ниже действия.