
- •Приклад 1 Створення запиту на відображення окремих стовпців таблиці та збереження такої вибірки як окремої таблиці
- •3.2. Створимо запит до таблиці Закази, який вибиратиме записи про виконані замовлення протягом заданого періоду (запит Діапазон дати-параметричний).
- •Б) Оновлення даних
- •В) Операції з текстовими полями
- •1) Створимо запит Іменинники, який відображатиме записи співробітників фірми Борей, у яких у поточному місяці буде день народження
- •Прикл.7. Створення перехресного запиту
- •Завдання для самостійної роботи
ЛАБОРАТОРНА РОБОТА №5.
Тема: Створення запитів. Використання фільтрів
Мета: Навчитися створювати запити, використовувати фільтри
Прилади та обладнання: IBM PC, OC Windows NT.
Хід роботи:
Виконати приклади створення запитів
У базі даних "Борей" створено 21 запит різного типу, які можна використати для ознайомлення з можливостями створення запитів у програмі Access 2000. Відкривши запит у режимі конструктора, користувач побачить структуру створеного запиту.
Запропоновані нижче приклади розглядають способи створення нових запитів до таблиць навчальної бази даних "Борей", а також пояснюють деякі специфічні елементи структури уже існуючих запитів.
Для створення нових запитів доцільно створити копію файла бази даних "Борей", яка знаходиться у файлі Борей.mdb, оскільки в результаті виконання вправ можна порушити структури об'єктів та зв'язки між таблицями, а також цілісність даних.
Приклад 1 Створення запиту на відображення окремих стовпців таблиці та збереження такої вибірки як окремої таблиці
Створимо запит Телефони клієнтів на основі даних таблиці Клиєнти. який відображатиме лише назву клієнта, його телефон та факс.
Для створення такого запиту, скористаємось майстром простих запитів, у першому вікні майстра у полі Таблицы и запросы виберемо зі списку об'єктів елемент Таблица:" Клиєнти ", а серед усіх доступних полів виберемо Название, Телефон та Факс. У наступному вікні запиту змінимо назву запиту на Телефони клієнтів та задамо опцію, яка дозволить змінити макет запиту. Після цього відкриється вікно конструктора запиту (мал. 3.21).
Після цього виберемо у списку кнопки Тип запроса елемент Создание таблицы та введемо у діалоговому вікні Создание таблицы назву створюваної таблиці - Клієнти (телефони). Запустивши створений запит на виконання, програма повідомить про те, що в нову таблицю бази даних буде вміщено 91 запис.
Після закриття вікна конструктора запиту та підтвердження для збереження змін, на вкладці запитів БД з'явиться запит на утворення таблиці з відповідною піктограмою, а на вкладці таблиць - нова таблиця Клієнти (телефони), у якій знаходяться записи про всіх клієнтів, але відображено лише поля телефонів та факсів. У конструкторі таблиці можна змінити підписи полів.
Приклад 2-- Створення критеріїв пошуку для запитів на вибірку
2.1. Створимо запити до таблиці Товари, які вибиратимуть записи, що відповідають заданим критеріям:
а) товари певної категорії (наприклад, молочні продукти)- (запит Молочні продукти);
6) усі товари, крім заданої категорії (наприклад, крім молочних продуктів) -(запит Не молочні продукти):
в) товари, кількість яких на складі перевішує 100 одиниць (запит Більше 100):
г) товари, кількість яких вимірюється.е штуках (запит Штуки),
д) товари, ціна яких знаходиться в діапазоні 100-200 p. (запит діапазон цін).
Пояснення до виконання запитів 2.1.:
а) Інформацію про категорії товарів знаходимо у таблиці Типи - молочним продуктам відповідає цифра 4.
У таблиці Товари ідентифікатор типу знаходиться у полі Тип, якому у структурі таблиці відповідає поле КодТипа. Це є поле підстановок даних полів КодТипа та Категория таблиці Типи: на вкладці Подстановка у рядку властивостей Источник строк (мал. 3.22) знаходиться вираз, який вказує на те, що дані поля беруться з полів таблиці Типи; цю інформацію також можна отримати у вікні Инструкция SQL: построитель запросов, яке відкриється після натискання кнопки побудовувача виразів рядка Источник строк.
Для створення запиту скористаємось конструктором, у вікно якого помістимо всі поля таблиці Товари. Оскільки умова для відбору даних накладається на поле, яке є ідентифікатором типу (КодТипа), це поле потрібно додатково помістити на бланк запиту, знявши опцію для його виведення на екран та ввівши критерію відбору - цифру 4 (код типу для молочних продуктів). Додатково можна задати сортування за алфавітом для поля назв товарів Марка (також знявши параметр відображення на екрані для цього поля).
Після виконання запиту, на екрані з'явиться динамічна таблиця, у якій будуть знаходитись відсортовані за алфавітом 10 записів молочних продуктів. |
У цій таблиці поля Марка та Тип також відображені на екрані, хоча на бланку конструктора запиту для цих полів відповідна опція не була задана. Це пояснюється тим, що у першому стовпчику бланку у рядку Поле стоїть вираз Товары*, а це означає, що у результаті виконання запиту повинні відображатися усі поля таблиці.
Якщо, наприклад, потрібно було б не відображати якесь поле (У нашому випадку - КодТипа), тоді треба було перенести кожне поле таблиці окремо на бланк конструктора запиту (кожне поле при цьому займало би окремий стовпчик бланку), та зняти опцію на відображення конкретного поля.
Збережіть запит під назвою Молочні продукти.
б) Якщо у вибірку повинні ввійти усі записи, крім тих які відповідають певній умові, тобто треба створити вибірку за точним незбіганням даних у полі, то при написанні критерію використовують символ незбігання < >, який можна застосовувати до різних типів полів - текстових, числових, логічних, дати. Зокрема, якщо потрібно створити запит, який виводитиме записи усіх товарів, крім молочних продуктів, то в комірці, де записується умова для поля КодТипа повинен стояти вираз <>4.
Задамо сортування записів за категоріями. Для цього знищимо на бланку конструктора запиту поле Марка, а порядок сортування визначимо у полі КодТипа.
Після виконання запиту на екрані відобразиться 67 впорядкованих за категоріями записів з інформацією про товари усіх типів, крім молочних продуктів. Збережіть запит з назвою Не молочні продукти, використовуючи команду Файл => Сохранить как.
в) Якщо потрібно вибрати записи про товари таблиці Товари, кількість яких на складі перевищує 100 одиниць, то у стовпці поля НаСкладе бланку конструктора запиту потрібно ввести умову >100. Утвориться запит Більше 100.
г) Для створення критеріїв відбору записів часто використовуються оператори Like, Between, And, Or та символи шаблону * та ? (аналогічно як у випадку фільтрування таблиці). Щоб відобразити записи про товари таблиці Товари, кількість яких вимірюється в штуках, у стовпці поля ЕдиницаИзмерения записують критерій Like "*штук*". Збережіть запит під назвою Штуки.
д) Умова на поле Цена, за допомогою якої при виконанні запиту відображатимуться записи про товари, ціна яких знаходиться в діапазоні 100-200 p., матиме вигляд:
>100 And <200 або Between 100 And 200.
Збережіть запит під назвою Діапазон ціни.
2.2 Створимо запит до таблиці Закази, який вибиратиме записи про виконані замовлення протягом 1997 p. (запит Діапазон дати).
Щоб відібрати записи про виконані замовлення протягом 1997 року, потрібно накласти на поле ДатаИсполнения таблиці Закази, умову:
>=#01.01.97# And <#01.01.98# або Between #01.01.97# And #01.01.98#.
Зауваження При написанні виразів значення дати записується між спеціальними символами (#).
Утвориться запит Діапазон дати, який відобразить 398 з 830 записів таблиці Закази.
Зауваження Для відображення декількох діапазонів значень, критерій кожного діапазону записують в окремому рядку
2 3. Створимо запит до таблиці Сотрудники, який вибиратиме записи працівників, у яких немає телефону (запит Неповні дані).
Для виявлення незавершених (чи неповних) записів використовується умова Is Null. Отже, у нашому запиті на поле Телефон повинна накладатися умова Is Null.
Зауваження Для того, щоб відобразити лише працівників, у яких є телефон, повинна виконуватись умова Is Not Null.
Приклад 3. Створення параметричного запиту.
3.1. Створимо параметричний запит Параметр, який створюватиме таблицю Категорія-товар, у яку ввійдуть записи про товар заданої користувачем категорії.
Якщо потрібно, щоб відображалася уся інформація про товар, то такий запит можна створити на основі запиту Молочні продукти створеного у Прикладі 2. На місці умови у бланку запиту достатньо ввести вираз: [Введіть код категорії товару]. Крім того, потрібно змінити назву таблиці, яка утворюватиметься після його виконання (Категорія-товар). Якщо ж достатньо, щоб відображалась лише певна інформація про кожне найменування товару, то доцільно використати конструктор простих запитів, у якому вибрати лище окремі поля таблиці Товари (наприклад, Марка, Код-Типа, Цена, ПоставкиПрекращены). У конструкторі запиту на місці умови для поля КодТипа треба записати вираз [Bвeдіть код категорії товару], задати відповідний тип запиту (запит на створення таблиці) та назву таблиці, яка утворюватиметься після виконання запиту.
Зауваження. При створенні параметричних запитів у квадратних дужках можна записувати будь-яку інформацію, що відображатиметься у діалоговому вікні Введите значение параметра, яке з'являється при його запуску.
Після запуску запиту на виконання відкриється діалогове вікно (мал. 3.24), в яке потрібно ввести цифру - номер категорії товару.
При повторному виконанні цього запиту програма повідомлятиме про знищення таблиці Категорія-товар. Користувач після цього може ввести у діалогове вікно код іншої категорії та створити нову таблицю з іншими даними.
Зауваження. При перегляді таблиці Категорія-товар видно, що поля КодТипа та ПоставкиПрекращены не успадкували всіх властивостей цих полів таблиці Товари