Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ACCESS-2010-часть1

.pdf
Скачиваний:
91
Добавлен:
20.02.2016
Размер:
2 Мб
Скачать

30

2.КОНСТРУИРОВАНИЕ ЗАПРОСОВ

Вэтом разделе Вы освоите конструирование

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

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

перекрестного запроса

запросов на внесение изменений в базу данных

Запрос это задание на извлечение данных из таблиц БД, на выполнение вычислений над данными БД, на внесение изменений в БД.

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

СУБД Access позволяет создавать запросы трех типов: запросы на выборку,перекрестныезапросы,запросынавнесениеизмененийвБД.

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

Результатом запроса всегда является таблица.

3.1.Запросы на выборку

Запрос на выборку является наиболее часто используемым типом запроса. Он дает возможность:

31

включать в результирующую таблицу поля из одной или нескольких таблиц в нужном порядке;

выбирать записи, удовлетворяющие различным условиям отбора;

осуществлять вычисления над полями БД (создавать вычисляемые поля);

группировать записи и находить для групп записей, для всех записей итоговые значения по некоторым полям с помощью статистических функций: Sum – сумма значений поля, Avg – среднее значений поля, Max

– максимальное из значений поля, Min – минимальное из значений поля,

Count – число значений поля и др.

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

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

Литерал – это фактическое значение в виде числа, текстовой строки, даты, например, 100, "Минск", #1-янв-2010#.

Константа – это не изменяющееся значение, например,Yes, No, True, False, Null.

Функция – это небольшая программа, которая всегда возвращает значение (число или строку символов), являющееся результатом расчетов или выполнения других операций. К функции обращаются по имени, за которым в круглых скобках указывают ее аргументы. Имеются и безаргументные функции, например, Date(). В Access определено множество

категорий функций – статистические, математические, даты/время,

32

текстовые, финансовые и др.

Идентификатор – это ссылка на поле, элемент управления (будет рассмотрен в разделе 3 текущей темы), свойство. Например, идентификатор [ЦЕНА] представляет собой ссылкуна поле.

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

Арифметическиеоператоры: + (сложение), – (вычитание), * (умножение), / (деление), % (процент), ^ (возведение в степень) и др.

Операторы сравнения: = (равно), > (больше), < (меньше), >= (больше

или равноЛогические), <= (м ньшеоператоры:или равно),AND<> (не равно(логическое). умножение), OR (логическое сложение), NOT (логическое отрицание).

Текстовый оператор: & (слияние текстовых значений).

Например, следующее выражение позволяет вывести в запросе сумму значений полей «Стоимость заказа» и «Стоимость доставки»:

= [Стоимость_заказа]+[Стоимость_доставки]

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

Задание 2.1. Выбрать из БД БАНК сведения о счетах, у которых остаток больше 1000000 руб. Результирующая таблица запроса должна иметь следующую структуру:

|НС|ОСТ|НФ|НК|

Запрос сохранить с именем КРУПНЫЕ СЧЕТА. Выполнение задания

В окне базы данных БАНК перейдите на вкладку Создание и в группе Запросы нажмите кнопку [Конструктор запросов].

33

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

Добавление таблицы, как на рис. 2.1

Рис. 2.1. Окно Конструктора запросов с окном Добавление таблицы В окне Добавление таблицы выберите источник данных для запроса –

выделите таблицу СЧЕТ (из ее полей будут извлекаться данные) и нажмите [Добавить], а затем [Закрыть]. Появится окно Конструктора запросов, как на рис. 2.2.

Рис. 2.2. Окно Конструктора запроса

34

Оно разделено на две части: в верхней части отображается список полей таблицы СЧЕТ, а в нижней – бланк запроса.

Затем выполните следующее:

перетащите поле НС из списка полей таблицы СЧЕТ в первую клетку строки Поле, а затем поочередно перетащите остальные поля, входящие в результирующую таблицу запроса (ОСТ, НФ, НК), в последующие клетки этой строки. В результате поля автоматически помечаются как

выводящиеся на экран при просмотре в дальнейшем результата запроса;

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

для поля ОСТ в строке "Условие отбора" наберите выражение типа сравнения >1000000;

выполните запрос щелчком по кнопке [Выполнить];

Результат запроса представляется в окне запроса, как на рис. 2.3.

Рис. 2.3. Результат выполнения запроса

Примечание. Если необходимо внести изменения в задание на извлечение данных после просмотра результата запроса, то следует на вкладке Главная в группе Режимы раскрыть

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

сохраните запрос с именем КРУПНЫЕ СЧЕТА, закрыв окно запроса.

Задание 2.2. Выбрать из БД БАНК сведения о двух счетах с наибольшим остатком. Результирующая таблица запроса должна иметь следующую структуру:

|НС|ОСТ|НФ|

Запрос сохранить с именем КРУПНЕЙШИЕ СЧЕТА.

35

Выполнение задания Откройте окно Конструктора запроса, добавив в окне Добавление

таблицы таблицу СЧЕТ, и выполните следующие действия:

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

задайте сортировку по убыванию значений поля ОСТ, для чего щелкните в строке Сортировка для этого поля и из раскрывающегося списка выберите

по убыванию;

введите значение 2 в поле раскрывающегося списка [Набор значений] в группе Настройка запроса;

выполните запрос и проанализируйте его результат;

сохраните запрос с именем КРУПНЕЙШИЕ СЧЕТА.

Задание 2.3. Выбрать из БД БАНК сведения о счетах с капитализацией процентов. Результирующая таблица запроса должна иметь следующую структуру:

|НС|ТИП|ДАТА|КАП|НФ|НК|

Запрос сохранить с именем СЧЕТА С КАПИТАЛИЗАЦИЕЙ. Выполнение задания

Откройте окно Конструктора запроса, добавив в окне Добавление таблицы таблицу СЧЕТ, и выполните следующие действия:

задайте поля, входящие в результирующую таблицу запроса, в строке Поле. Для этого из списка полей таблицы СЧЕТ перетащите в строку Поле все поля – дважды щелкните по заголовку списка, ухватите мышью выделенные поля и перетащите их в первую клетку строки Поле. Затем для поля ОСТ в строке "Вывод на экран" снимите флажок;

наберите Да в строке "Условие отбора" для поля КАП;

выполните запрос и проанализируйте его результат;

сохраните запрос с именем СЧЕТА С КАПИТАЛИЗАЦИЕЙ.

36

Задание 2.4. Выбрать из БД БАНК сведения о клиентах, чьи фамилии начинаются с буквы Л. Результирующая таблица запроса должна иметь следующую структуру:

|НК|ФИО_К|АДР_К|

Запрос сохранить с именем ФАМИЛИИ НА Л. Выполнение задания

Откройте окно Конструктора запроса, добавив в окне Добавление таблицы таблицу КЛИЕНТ, и выполните следующие действия:

задайте поля, входящие в результирующую таблицу запроса, в строке Поле;

наберите Л* в строке "Условие отбора" для поля ФИО_К;

выполните запрос и проанализируйте его результат;

сохраните запрос с именем ФАМИЛИИ НА Л.

Задание 2.5. Выбрать из БД БАНК сведения о менеджерах, управляющих филиалами, чей стаж не менее 9 лет и не более 25. Результирующая таблица запроса должна иметь следующую структуру:

|НМ|СТАЖ|НФ|

Запрос сохранить с именем СТАЖ.

Выполнение задания Откройте окно Конструктора запроса, добавив в окне Добавление

таблицы таблицы МЕНЕДЖЕР и ФИЛИАЛ (источники данных для запроса), и выполните следующие действия:

задайте поля, входящие в результирующую таблицу запроса, в строке Поле;

наберите логическое выражение >=9 and <=25 в строке "Условие отбора" для поля СТАЖ;

выполните запрос и проанализируйте его результат;

37

сохраните запрос с именем СТАЖ.

Задание 2.6. Выбрать из БД БАНК сведения о счетах, открытых с 01.01.13 по 30.06.13. Результирующая таблица запроса должна иметь следующую структуру:

|НС|ТИП|ДАТА|НФ|НК|

В ней записи рассортировать по возрастанию даты открытия счета. Запрос сохранить с именем ДАТА ОТКРЫТИЯ.

Выполнение задания Откройте окно Конструктора запроса, добавив в окне Добавление

таблицы таблицу СЧЕТ, и выполните следующие действия:

задайте поля, входящие в результирующую таблицузапроса, в строке Поле;

задайте условие отбора счетов с помощью Построителя выражений. Для этого щелкните в строке "Условие отбора" для поля ДАТА и нажмите кнопку [Построитель] в группе Настройка запроса на вкладке

Конструктор. В появившемся окне Построитель выражений

сформируйте логическое выражение, как это показано на рис. 2.4, – выберите Операторы, выберите Сравнения, выберите двойным щелчком Between (между) и вместо слов "Выражение" наберите даты, после чего нажмите [ОК];

38

Рис. 2.4. Создание оператора Between в окне Построитель выражений

задайте сортировку по возрастанию для поля ДАТА;

выполните запрос и проанализируйте его результат;

сохраните запрос с именем ДАТА ОТКРЫТИЯ.

Задание 2.7. Выбрать из БД БАНК сведения о местонахождении филиала № 511 и № 513. Результирующая таблица запроса должна иметь следующую структуру:

|НФ|АДР_Ф|

Запрос сохранить с именем МЕСТОНАХОЖДЕНИЕ.

Выполнение задания Откройте окно Конструктора запроса, добавив в окне Добавление

таблицы таблицу ФИЛИАЛ, и выполните следующие действия:

задайте поля, входящие в результирующую таблицу запроса, в строке Поле;

39

для поля НФ в строке "Условие отбора" наберите 511, а в строке "или" –

513;

Примечание. Данное условие можно задать и логическим выражением – 511 or 513.

выполните запрос и проанализируйте его результат;

сохраните запрос с именем МЕСТОНАХОЖДЕНИЕ.

Задание 2.8. Выбрать из БД БАНК сведения о счетах, не являющихся картсчетами.

Результирующаятаблицазапросадолжнаиметьследующуюструктуру:

|НС|ТИП|ФИО_К|НФ|

Запрос сохранить с именем НЕ КАРТ-СЧЕТА.

Выполнение задания Откройте окно Конструктора запроса, добавив в окне Добавление

таблицы таблицы КЛИЕНТ и СЧЕТ, и выполните следующие действия:

задайте поля, входящие в результирующую таблицу запроса, в строке Поле;

наберите в строке "Условие отбора" для поля ТИП – not K;

Примечание. В условии отбора буква К набирается на русском регистре.

выполните запрос и проанализируйте его результат;

сохраните запрос с именем НЕ КАРТ-СЧЕТА.

Задание 2.9. Определить сумму вознаграждения клиентам, имеющим картсчета, в размере 0,5% от суммы остатка на счете. Результирующая таблица запроса должна иметь все поля таблицы СЧЕТ и вычисляемое поле ВОЗНАГРАЖДЕНИЕ.

Созданный запрос с вычисляемым полем сохранить с именем ВОЗНАГРАЖДЕНИЕ.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]