Міністерство освіти і науки України
Технічний коледж
Національного університету “Львівська політехніка”
Кафедра інформаційних
технологій
Звіт
до лабораторної роботи №3
Проектування запитів до бази даних
Мета роботи: Вивчення засобів розробки запитів RQBE, видів запитів, їх виконання та застосування для роботи з реляційними базами даних.
Теоретична частина.
Запити застосовуються користувачем для вибірки з бази даних інформації, яка його цікавить, тобто відповідає певним критеріям. Наприклад, мова може йти про пошук всіх клієнтів, що живуть в Україні, або про вибір відомостей про торгові операції здійснені за останній квартал.
Якщо необхідно скласти запит на основі декількох таблиць, то між цими таблицями попередньо необхідно встановити відношення зв’язуючи поля одне з одним.
Результат роботи запиту Access являє собою таблицю яка називається Dynaset (динамічний, тимчасовий набір даних). При кожному виконанні запиту заново здійснюється вибірка даних.
За способом побудови запити діляться на: QBE-запити (Query By Example – запит за зразком), користувач дає їм визначення, специфікуючи окремі параметри у вікні проектування з використанням підказок (зразків), та SQL-запити (Structured Query Language – структурована мова запитів), формулюючи їх, користувач застосовує інструкції і функції, створюючи деякий опис. QBE-запит Access легко транслює у відповідний SQL-запит. При зворотній операції можливі деякі нюанси та неточності.
Запити можна поділити на певні категорії: запити на вибір інформації та виконання статистичних підрахунків, запити, що вносять зміни, параметричні та перехресні запити
Багатотабличні запити
Розглянувши можливості запитів, які основані на одній таблиці, на базі отриманих знань легко організувати перегляд об’єднаних даних з декількох пов’язаних таблиць. Здатність запитів відбирати дані з декількох таблиць особливо корисна при створенні форм і звітів.
Розглянемо приклад, в якому об’єднується інформація з двох таблиць. В вікні бази даних треба перейти на вкладку Запросыі натиснути кнопку Создать. В вікні діалогу Новый запросвибрати Конструкторі натиснути кнопку ОК. Access відкриє вікно нового запиту в режимі конструктора і виведе на екран вікно діалогу Добавление таблицы. Вікно діалогу дозволяє вибрати таблиці і запити, які будуть базовими для нового запиту. Вибираються дві таблиці і закривається вікно.
. Access пов’язує використовувані в запиті таблиці на основі інформації про зв’язок, яка задана при їх створенні. Access зв’язок в вигляді лінії, яка з’єднує первинний ключ одної таблиці з відповідним полем іншої. Якщо зв’язок між таблицями не визначений, Access сам прийме рішення, встановивши зв’язок між полями з однаковими іменами і співпадаючими типами даних.
Користувач включає в бланк запиту необхідні поля з двох таблиць. Побачити результат запиту можна, переключившись у режим таблиці.
Як уже згадувалося, вікні режиму таблиці можна виконувати з набором записів запиту майже всі дії, які доступні для звичайних таблиць.
Одним з найцікавіших аспектів багатотабличних запитів є можливість зміни даних вихідних таблиць прямо в наборі записів.
Підсумкові запити
Іноді цікаві не окремі записи таблиці, а підсумкові значіння по групам даних. Наприклад, нам потрібно знати середню оцінку з Фізики для 8-А класу (з попереднього прикладу). Або сумарну кількість балів з Хімії, набрану класом, в порівнянні з паралельним класом. Відповіді на такі питання дає підсумковий запит. Для обчислення підсумкових значінь потрібно натиснути кнопку Групповые операциина панелі інструментів конструктора запитів, щоб у бланку QBE з’явився рядок Групповая операция.
Коли натиснути кнопку Групповые операции на панелі інструменті, Access використовує установку Группировкав рядку Групповая операция для любого поля, який занесений в бланк запиту. Тепер записи по кожному полю групуються, але підсумок не підводиться. Для отримання підсумків потрібно замінити установку Группировка в рядку Групповая операция на конкретну підсумкову функцію.
Access дає дев’ять функцій, які забезпечують виконання групових операцій. Можна ввести ім’я функції з клавіатури в рядку Групповая операция бланка запиту або вибрати її в списку, що розкривається. Нижче перераховані підсумкові функції Access:
Sum Вираховує суму всіх значень заданого поля в кожній групі. Використовується тільки для числових та грошових полів.
Avg Вираховує середнє арифметичне всіх значень даного поля в кожній групі. Використовується тільки для числових та грошових полів.
Min Повертає найменше значіння, яке знайдене в цьому полі всередині кожної групи. Для числових полів повертається найменше значення. Для текстових полів - найменше з символьних значень незалежно від регістру.
Max Повертає найбільше значіння, яке знайдене в цьому полі всередині кожної групи. Для числових полів повертається найбільше значення. Для текстових полів - найбільше з символьних значень незалежно від регістру.
Count.Повертає число записів, в яких значення даного поля відмінні від Null (пусто).
StDev.Вираховує стандартне відхилення всіх значінь даного поля в кожній групі. Ця функція використовується тільки для числових або грошових полів.
Var Вираховує дисперсію значінь даного поля в кожній групі. Ця функція використовується тільки для числових або грошових полів.
First Повертає перше значення цього поля в групі.
Last Повертає останнє значення цього поля в групі.
Якщо не потрібно включати в групи підсумкового запиту деякі записи, можна додати в бланк запиту одне або декілька полів для фільтра. Для створення фільтра треба в рядку Групповая операция вибрати установку Условие, зняти прапорець Вывод на экрандля цього поля і ввести умови відбору.
Перехресні запити
Access підтримує особливий тип підсумкових запитів, який називається перехресними запитами. Вони дозволяють побачити обчислювані значення в вигляді перехресної таблиці, яка нагадує електронну.
Для побудови перехресного запиту потрібно виділити ім’я потрібної таблиці в вікні бази даних і вибрати Новый запросзі списку кнопки Новый объектна панелі інструментів. В вікні діалогу вибрати Конструктор, а потім у вікні конструктора вибрати команду Запрос/Перекрестный. Access додасть в бланк запиту рядок Перекрестная таблица. В цьому рядку для кожного поля перехресного запиту може бути вибрана одна з чотирьох установок: Заголовки строк, Заголовки столбцов, Значение(яке виводиться в чарунках перехресної таблиці) і Не отображается. Для перехресного запиту потрібно визначити у крайньому випадку одне поле в якості заголовків рядків, одне для заголовків стовпчиків і одне поле значень. Кожне поле, яке є заголовком стовпчиків, повинно мати в рядку Групповая операция установку Группировка. Для поля, яке використовується в якості заголовків рядків, в рядку Групповая операция повинна бути встановлена операція Группировка, вибрана одна з підсумкових функцій або введений вираз, який містить підсумкову функцію. Для поля з установкою Значениевибрати одну з підсумкових функцій або ввести вираз, який використовує підсумкову функцію.
Як і в інших типах підсумкових запитів, для відбору даних, які включаються у набір записів, можна використати додаткові поля. Для них необхідно вибрати установку Условиев рядку Групповая операция і Не отображается в рядку Перекрестная таблица, а потім ввести умову відбору. Умову відбору можна також задати для любого поля, яке використовується в якості заголовків стовпчиків, а дані можна сортувати по любим полям (з мовчазної згоди Access сортує заголовки стовпчиків за зростанням).
Можна визначити порядок стовпчиків в перехресній таблиці, використовуючи вікно властивостей запиту. Для цього треба клацнути в любому місці верхньої частини (ззовні списків полів) вікна запиту в режимі конструктора і натиснути кнопку Свойствана панелі інструментів. На екрані з’явиться вікно властивостей запиту.
Щоб задати порядок виводу стовпчиків в перехресній таблиці, потрібно ввести заголовки так, як вони виглядають в відформатованому вигляді, і в тій послідовності, в якій користувач хоче їх побачити. Потрібно впевнитися, що включені всі заголовки стовпчиків, які з’являються в підсумковій таблиці. Якщо пропущений який-небудь заголовок стовпчика або неправильно введене його ім’я, то він не з’явиться в перехресній таблиці.
Обмеження на використання запитів на вибірку для поновлення даних
Набір записів, які створює Access при виконанні запитів, виглядає і веде себе майже як реальна таблиця, яка містить дані. Дійсно, в багатьох випадках можна вставляти рядки, видаляти їх і поновлювати дані в наборі записів. При цьому Access внесе необхідні зміни в відповідні базові таблиці запиту.
Але в деяких випадках Access не розуміє, які зміни необхідно виконати. Розглянемо для прикладу обчислюване поле. Якщо користувач спробує змінити значення в підсумковому полі, яке є результатом перемноження двох довільних полів, Access не знає, яке з цих полів - він хоче змінити. В той же час можна змінити значення любого з цих полій і відразу отримати результат у підсумковому полі.
Access не дозволяє виконати зміни, які діють на декілька рядків базової таблиці. По цій причині не можна змінити дані в підсумковому або перехресному запиті. Access не дозволяє змінити дані в полі, яке має установку Avgабо Sum, тому що результат у цьому випадку визначається значеннями з багатьох записів.
При роботі з набором записів, які отримані в результаті об’єднання, Access дозволяє змінювати значення любих полів таблиці, яка знаходиться на боці відношення “багатьох”, але не дозволяє поновлювати ключові поля таблиці з боку “один”. Наприклад, один склад може мати багато товарів. В наборі записів, який є результатом об’єднання таблиць Склади і Товари, можна поновити любе поле, яке належить таблиці Товари, але не можна змінити значення полів, які створюють первинний ключ таблиці Склади. Access дозволяє змінити інші поля цієї таблиці.
Якщо не бути уважним, можливість поновлювати поля з боку “один” може призвести до небажаних результатів.
Створення перехресних запитів за допомогою майстра
1. В вікні бази даних перейти на вкладку Запросыі натиснути кнопку Создать.
2. В діалоговому вікні Новый запросвибрати майстра Перекрестный запрос.
3. Натиснути кнопку ОК.
4. Користувач слідує інструкціям, які з’являються в діалогових вікнах майстра. В останньому діалоговому вікні користувачу пропонується вибір виконати запит або проглянути його структуру в режимі конструктора.
За допомогою майстра сводных таблицдані перехресних таблиць можна вивести на екран, не створюючи окремого запиту. За допомогою зведеної таблиці заголовки рядків і стовпчиків можна змінювати таким чином, щоб різними способами можна було аналізувати дані.
Microsoft Access дозволяє встановлювати ряд властивостей запиту, які змінюють хід його виконання. Щоб відкрити вікно властивостей запиту, потрібно клацнути любому місці верхньої частини вікна запиту в режимі конструктора ззовні списку полів і натиснути кнопку Свойствана панелі інструментів. На мал. 6 показано вікно властивостей запита на вибірку.
Звичайно, користувач вибирає тільки деякі поля, які при виконанні запиту на вибірку необхідно включити в набір записів. Але якщо розробляється запит для використання в формі, і потрібно, щоб всі поля з усіх базових таблиць запиту були доступні в цій формі, встановлюється для властивості Вывод всех полейзначення Да. В більшості випадків краще залишити для цієї властивості встановлене з мовчазної згоди значення Нет, а змінювати цю установку тільки для визначених запитів.
В залежності від складності запиту Access може знадобитися декілька секунд (хвилин), щоб знайти всі рядки і почати вивід інформації на екран. Якщо користувача цікавлять тільки “перші” або “верхні” рядки набору записів, треба скористатися властивістю Набор значений для виводу інформації на екран, як тільки Access знайде перші n або перші % рядків. Якщо ввести ціле значення, Access виведе на екран результат відразу, щойно знайде задане число рядків. При введенні десяткового значення менше 1 Access почне вивід даних після того, як знайде приблизно такий відсоток рядків. Слід врахувати, що при виконанні сортування Access повинен спочатку відібрати всі записи, і тільки відсортувавши їх, він може визначити перші n рядків. В цьому випадку властивість Набор значений не прискорить вивід інформації на екран.
При виконанні запиту часто виникають ситуації, під час яких Microsoft Access знаходить рядки, що повторюються. З мовчазної згоди він включає в результуючий набір тільки унікальні записи. Це означає, що ідентифікатор кожного рядка (первинний ключ таблиці для запиту з єдиною таблицею або сполучення первинних ключів для багатотабличного запиту) унікальний. Якщо користувач не просить Access повертати унікальні значення, в набір записів запиту будуть включені тільки відмінні один від одного рядки. Якщо є потреба бачити всі дані (враховуючи рядки-дублікати), необхідно встановити обидві властивості Уникальные значенияі Уникальные записи- в значення Нет. Користувач не зможе змінювати поля в наборі записів запиту, якщо для властивості Уникальные записивстановлене значення Нет.
Якщо база даних буде використовуватися в мережі в режимі колективного доступу, то для забезпечення безпеки даних можна дати доступ іншим користувачам до таблиць тільки за допомогою запитів. Власник таблиці завжди має до неї повний доступ. Можна заборонити всім доступ до таблиць і дозволити проглядати деякі дані тільки визначеним користувачам. Ця умова буде працювати, якщо для властивості При запуске предоставляются прававстановити значення Пользователя. Якщо для тих, хто використовує конкретний запит, потрібно дозволити “успадкувати права власника” на доступ до таблиць, треба встановити для властивості При запуске предоставляются права значення Владельца.
Якщо запит призначений для роботи в режимі колективного доступу, то для забезпечення цілісності даних при редагуванні використовується властивість Блокировка записей. Access скористається блокуванням тільки в тому випадку, коли в вихідну таблицю потрібно записати рядок. Щоб запис блокувався при внесенні до нього змін одним з користувачів, встановлюється для цієї властивості значення Изменяемой записи.Більш жорстка установка Всех записейблокує всі записи, відібрані запитом, до тих пір, допоки запит відкритий одним з користувачів. Використовується ця установка тільки у тому випадку, коли при виконанні запиту робляться численні зміни в деякій таблиці, і інші користувачі не можуть мата доступу до даних цієї таблиці до тих пір, допоки не завершиться виконання запиту.
Запити на зміну даних
Для пошуку окремого запису в базі даних і зміни в ній значення поля досить режиму таблиці. Але що робити, якщо потрібно провести однакові зміни в більшій кількості записів. Виконання заміни в кожному окремому запису недоцільно.
Перед тим, як приступити до створення запиту на поновлення записів в базі даних, потрібно створити запит на вибірку з умовою відбору, який дозволяє знайти всі записи, які підлягають поновленню. Після того, як Access вибери потрібні записи, користувачу не складно буде перетворити запит на вибірку в запит на поновлення або в інший тип запита на зміну.
Запит на поновлення
Допустимо, що запит на вибірку створений. Тепер можна змінити запит так, щоб він поновлював рядки таблиці. В режимі конструктора в меню Запросіснують команди для чотирьох типів запитів на зміну: Созданиетаблицы, Обновление, Добавление, Удаление. Окрім цього, для перетворення типу запита можна скористатися списком кнопки Тип запросана панелі інструментів. Треба вибрати пункт Обновление, щоб перетворити запит на вибірку в запит на поновлення.
При подібному перетворенні запита Access змінює заголовок його вікна і додає рядок Обновлениев бланк QBE. Він використовується для введення нових значень (або виразів), які повинні замінити в відібраних записах існуючі дані.
Якщо потрібно повністю убезпечити себе від любих випадковостей, то перед виконанням запиту на поновлення робиться резервна копія таблиці. Для цього перейти в вікно бази даних, вибрати таблицю, яка буде поновлюватися, і скористатися командою Правка/Копировать. Потім вибрати команду Правка/Вставитьі, коли Access виведе на екран відповідне вікно діалогу, надасть копії таблиці інше ім’я.
Щоб виконати запит на поновлення, треба вибрати команду Запрос/Запускабо натиснути кнопку Запускна панелі інструментів. Access продивиться таблицю і визначить кількість рядків, які поновлюються, а потім виводить на екран вікно діалогу. Щоб провести поновлення даних, потрібно натиснути кнопку Дав вікні діалогу. Якщо користувач бачить, що число поновлюваних рядків в вікні діалогу не відповідає очікуваній кількості або не впевнений, що Access поновить потрібні записи або поля, натиснути кнопку Нет, щоб відмовитися від виконання запиту і поновлення даних. Після виконання запиту можна перевірити зміст таблиці, щоб впевнитися, що зміна даних проведена правильно.
Щоб повторити запит на зміну, потрібно вибрати його в вікні бази даних і натиснути кнопку Открыть. Після запуску запита на зміну з вікна бази даних Access виводить на екран вікно діалогу, яке запитує підтвердження для його виконання. В вікні підтвердження натиснути кнопку Да, щоб завершити поновлення даних. Якщо треба відмінити вивід на екран вікна підтвердження, вибирається команда Вид/Настройка і на вкладці Правка/Поиск вікна діалогу Параметрів секції Подтверджениезнімається прапорець Запросов на изменение.
За допомогою запита на поновлення можна за один раз змінити значення декількох полів, включивши їх у бланк запиту і визначивши вирази, які будуть використовуватися для поновлення цих полів. При цьому для обчислення нового значення деякого поля можна використати значіння інших полів.
Перед поновленням запису в базовій таблиці або запиті Access робить копію вихідного запису. Він використовує задані вирази до вихідного запису і вносить результат в копію. Потім він змінює зміст бази даних, переписуючи поновлену копію в таблицю.
Створення нової таблиці
Іноді потрібно зберігати в новій таблиці дані, які отримані за допомогою запита на вибірку. Створення нової таблиці прискорить роботу додатка, особливо якщо при виконанні запита об’єднуються декілька таблиць.
Збереження набору записів запита як таблиці корисно і в тому випадку, коли нашаровується підсумкова інформація і її треба довго зберігати після видалення з бази вихідних даних, на яких базувався запит.
Припустимо, існує запит на вибірку. Щоб перетворити запит на вибірку в запит на створення таблиці, треба вибрати команду Запрос/Созданиетаблицы. Access виведе на екран вікно діалогу Создание таблицы. Користувач вводить ім’я для підсумкової таблиці і тисне кнопку ОК, щоб закрити вікно діалогу.
Закінчивши з установками в запиті на створення таблиці, можна виконати його за допомогою команди Запрос/Запускабо кнопки Запускна панелі інструментів. Access створює записи, розміщає їх в нову таблицю і інформує користувача про кількість рядків, які вставляються в таблицю, на екран виводиться вікно діалогу для підтвердження створення таблиці. Натиснути кнопку Да, щоб створити нову таблицю і помістити до неї записи. Після цього потрібно переключитися в вікно бази даних і клацнути по вкладці Таблицы, щоб відкрити список таблиць. Вибирається в ньому тільки що створену таблицю і відкривається вона в режимі таблиці. Можна оглянути отримані дані. В режимі конструктора можна змінити імена полів або формати.
Запит на додавання
За допомогою запиту на додавання можна скопіювати вибрані записи і вставити їх в іншу таблицю. Окрім того, запит на додавання можна використати для перенесення даних з іншого джерела в свою базу даних, щоб потім відредагувати отримані дані і вставити їх в існуючу таблицю.
Запит на додавання, подібно запиту на створення таблиці, дозволяє зібрати обчислені підсумкові дані і зберегти їх в визначеній таблиці. Одна з переваг запиту на додавання в тому, що є можливість повністю визначити поля і задати їх властивості перед вставленням даних в кінцеву таблицю. Недоліком цього типу запитів є велика ймовірність помилок, оскільки дані, які додаються, можуть не відповідати типам полів кінцевої таблиці.
Перед виконанням запиту на додавання можна запустити його як запит на вибірку (як і в випадку інших запитів на зміну), щоб впевнитися в тому, що копіюються потрібні записи. Можна взагалі почати з побудови запита на вибірку, виконати його і тільки після цього перетворити його в запит на додавання. Також можна відразу створити запит на додавання і перевірити дані, що додаються, переключившись з режиму конструктора в режим таблиці.
Після перевірки правильності додавання записів можна виконати запит прямо з вікна конструктора або зберегти і потім запустити його з вікна бази даних.
Цікавим прикладом використання запитів є добування застарілих даних з робочої таблиці і копіювання їх в архівну таблицю. З часом в основній таблиці можуть накопиться тисячі записів - контракти або замовлення, які вводяться на протязі ведення справи. Скоріше за все дані річної давнини для поточної роботи на потрібні. Періодично прибираючи в архівні таблиці “старі” дані, збільшується швидкодія основних частин додатку.
Відкриття, копіювання, збереження, перейменування і видалення запитів
Користувач може відкрити в режимі конструктора різні запити: запит на вибірку, перехресний запит і запит на зміну. Запит на вибірку і перехресний запит також можна відкрити в режимі таблиці для огляду результатів.
Можна створити ярлик для відкриття об’єкта бази даних, яка знаходиться або на комп’ютері користувача, або на файловому сервері мережі або в директорії для спільного доступу. В Microsoft Windows можна створити ярлик, перемістивши за допомогою миші об’єкт з вікна бази даних в робочий стіл або папку. Інший спосіб – клацнути правою кнопкою миші потрібний об’єкт (запит, наприклад) і вибрати команду Создать ярлык.Щоб створити ярлик не на робочому столі, треба ввести новий шлях в поле Размещение.
Для копіювання вибирається об’єкт і натискається кнопка Копироватьна панелі інструментів. Під час копіювання об’єкта в іншу базу даних, закривається поточна база і відкривається та, в яку потрібно вставити об’єкт. При відкритому вікні бази даних натиснути кнопку Вставитьна панелі інструментів.
Збереження запиту відбувається шляхом натискання кнопки Сохранитьна панелі інструментів.
Для збереження копії об’єкта бази даних з новим ім’ям або в іншому файлі, при умові що об’єкт відкритий або виділений, потрібно вибрати команду Сохранить как/Экспортв меню Файл. Щоб зберегти об’єкт в поточній базі даних, треба вибрати параметр В текущей базе данныхв діалоговому вікні Сохранение объекта, ввести ім’я об’єкта і натиснути ОК.
Для перейменування запита потрібно впевнитися, що об’єкт бази даних закритий. Далі в вікні бази даних вибрати вкладку Запросы, яка містить потрібний об’єкт. Натиснути кнопку миші на імені об’єкта, а потім знову натиснути кнопку миші, щоб змінити ім’я, ввести нове ім’я.
Для видалення об’єкта виділити його і натиснути кнопку Delete.
Оптимізація запитів
Існує ряд способів прискорення виконання запитів:
- Стискати бази даних
- Індексувати поля
- Вибирати типи даних мінімального розміру
- При створенні запиту не додавати лишні поля в запит. Зняти прапорець Вывод на экрандля полів, зміст яких не виводиться в запиті
- Використовувати для умов відбору вирази, які дозволяють оптимізувати запит
MOD Округлює обидва арифметичних вирази до цілих значінь, ділить перше на друге і повертає залишок.
& Створює текстовий рядок, як результат приєднання другого рядка в кінець першого.
Якщо після клацання в чарунці рядка Поле(де ми маємо ввести вираз) натиснути SHIFT+F2, то відкриється вікно Область ввода, в якому зручно задавати довгі вирази.
Використання обрахунків в запитах
Можна виконувати обчислення з любими полями таблиці і зробити обчислюваний вираз новим полем в наборі записів. Для цього можна використати любі із вбудованих функцій Access . Окрім цього, поля запиту можуть містити дані, які отримані за допомогою арифметичних операцій над полями таблиці.
Обчислюване поле може також містити результат конкатенції (об’єднання) значінь текстових полів або рядкових (текстових) констант. Щоб створити рядкову константу, потрібно заключити текст в подвійні або одинарні лапки. В якості операції конкатенції використовується символ “&”. Наприклад, можна створити поле, яке буде містити результат об’єднання поля Прізвище і поля Ім’я: [Прізвище]& [Ім’я].
В виразах можна використовувати наступні оператори:
+ Додає два арифметичних вирази.
- Віднімає від першого арифметичного виразу другий.
* Перемножує два арифметичних вирази.
/ Ділить перший арифметичний вираз на другий вираз.
\ Заокруглює два арифметичних вирази до цілих значінь і ділить перше на друге. Результат округлюється до цілого.
^ Вираховує степінь першого арифметичного виразу, степінь задається другим арифметичним виразом.
Встановлення властивостей полів
В загальному випадку поля, які виводяться в наборі записів запиту, наслідують властивості для відповідних полів таблиці. Можна задати інші значення наступних властивостей: Описание(інформація, яка виводиться в рядку стану вікна запита в режимі таблиці, коли поле стає поточним), Формат поля(представлення даних на екрані), Число десятичных знаков(для числових даних), Маска вводаі Подпись(заголовок стовпчика).
Щоб задати властивості деякого поля, потрібно клацнути на любій чарунці відповідного стовпчика в бланку запита і натиснути кнопку Свойствана панелі інструментів або вибрати команду Вид/Свойства.
Використання параметрів запиту
До сих пір ми вводили умови відбору безпосередньо в бланк запиту в режимі конструктора. Але на етапі створення запиту на завжди можна визначити, які значіння повинен відшукувати Access. Потрібно включити в запит параметр, і при кожному виконанні запиту Access буде вимагати конкретні умови відбору.
Щоб визначити параметр, потрібно ввести в рядок Условие отбора замість конкретного значення ім’я або фразу, яка вміщена в квадратні дужки. Те, що вміщене всередині квадратних дужок, Access розглядає як ім’я параметра. Воно виводиться в вікні діалогу при виконанні запиту, тому в якості імені параметра розумно використовувати змістовну фразу. В одному запиті можна задати декілька параметрів, при цьому ім’я кожного параметру повинно бути унікальним і інформативним.
Для кожного параметра запиту можна вказати тип даних. Access використовує цю інформацію для перевірки введеного значення. Наприклад, якщо визначено параметр як числовий, Access відкине літерні символи в значенні параметра. З мовчазної згоди Access надає параметрам запиту текстовий тип даних. Якщо потрібно змінити тип даних, треба вибрати команду Запрос/Параметры, і Access виведе на екран вікно діалогу Параметры запроса. В цьому вікні діалогу вводиться ім’я кожного параметра, тип якого ми хочемо визначити, в стовпчик Параметрв такому вигляді, в якому воно було вказане в бланку запиту, але без квадратних дужок. В стовпчику Тип данныхтреба встановити потрібний тип даних, який вибирається зі списку, що розкривається. Після визначення всіх параметрів натискаємо кнопку ОК.
При виконанні запиту Access попросить ввести почергово значення для кожного з параметрів, використовуючи вікно діалогу.
Створення запитів проходить за наступним алгоритмом:
Запит можна створити за допомогою майстра або в режимі конструктора.
Як завжди, найбільш простий спосіб побудови запиту передбачає використання майстра. Режим конструктора дозволяє задавати не лише умови вибору даних, але і порядок сортування. Запити зберігаються як окремі об'єкти і відображуються у вікні бази даних.
Створення простого запиту за допомогою майстра
Для відкриття вікна майстра запиту у вікні бази даних на панелі Об'єкти виберіть значок Запити і двічі клацніть значок Створення запиту за допомогою майстра .
У вікні Створення простих запитів у списку, що розкривається виберіть таблиці і запити, поля яких використовуватимуться в запиті. У списку Доступні поля двічі клацніть імена використовуваних в запиті полів. Ці поля перемістяться в список Вибрані поля .
При створенні запиту по декількох таблицях в другому вікні положенням перемикача вам треба вибрати детальний (виведення кожного поля кожного запису) або підсумковий запит. Підсумкові запити містять поля, по яких групуються дані, і числові поля, по яких визначають, наприклад, сумарне, середнє, максимальне або мінімальне значення. У підсумковому запиті можна зробити підрахунок кількості записів в групі . Для додавання обчислень в результати запиту натискуйте кнопку Підсумки і виберіть потрібні поля або встановите прапорець Підрахунок числа записів в Підсумки.
У наступному вікні майстра вам буде запропоновано дати ім'я запиту і положенням перемикача визначити подальші дії: Відкрити запит для перегляду даних або Змінити макет запиту . Після того, як ви натискуватимете кнопку Готово відкриється запит в режимі таблиці.
Створення запиту в режимі конструктора
Створення запиту в режимі конструктора надає великі можливості в порівнянні з майстром простого запиту.
У діалоговому вікні Новий запит виберіть в списку в правій частині вікна елемент Конструктор і натискуйте кнопку OK. На екрані відображуватиметься вікно запиту в режимі конструктора і діалогове вікно Додавання таблиці яке дозволяє вибрати, по яких таблицях і запитах або їх комбінації буде створений новий запит. Вікно запиту розділене посередині по горизонталі. У верхній частині вікна відображують списки доступних в запиті полів всіх таблиць, в нижней — специфікація запитів. Кожен стовпець відображує поле, використовуване для виділення тих записів, які будуть включені в запит.
На вкладці Таблиці діалогового вікна Додавання таблиці вкажіть назва вихідної таблиці. Натискуйте кнопку Додати аби додати список полів цієї таблиці у верхню частину вікна запитів. Для додавання полий таблиці в запит можна двічі клацнути її ім'я.
При складанні запиту по декількох таблицях виберіть необхідні таблиці, а потім натискуйте кнопку Закрити . На екрані відображуватиметься вікно, що дозволяє виконати налаштування запиту в режимі конструктора .У нижній частині вікна відображує порожній бланк запиту, який призначений для визначення запиту або фільтру в режимі конструктора запиту або у вікні розширеного фільтру.
У тих випадках, коли вас цікавлять записи, що відповідають певній умові, наприклад, прізвища клієнтів, що зробили замовлення дорожче певної суми, застосовують запит за зразком. При створенні запиту ви даєте, як би зразок , по якому буде складена відповідь або виконані операції. Тому в більш версіях Access використовувався термін бланк запиту за зразком (QBE).
Запити складаються в інтерактивному режимі. Включите в запит таблиці і поля, які вас цікавлять, вкажіть умови вибору записів і які обчислення необхідно виробити. Включити поле в запит можна наступними способами:
у рядку Поле поставити курсор в потрібний стовпець і двічі клацнути ім'я поля в списку. Натискувати клавішу стрілка-управо або клавішу Tab, перемістити курсор в наступний стовпець і додати нове поле в запит;
клацнути на кнопці розкриття списку біля правого кордону вічка в рядку Поле або натискувати клавішу F4, аби відкрити список імен полів і вибрати необхідне поле;
перетягнути ім'я поля мишею із списку полів у верхній частині вікна. Для введення декілька полів із списку можна утримувати клавішу Ctrl при виділенні потрібних полів в списку, а потім перетягнете виділені поля мишею. Access автоматично розподілить вибрані поля по вічках рядка.
В даній лабораторній роботі засобами RQBE було створено запити у відповідності до вимог завдання. Всі запити будувались на основі таблиць бази даних, яка була створена у лабораторній роботі №2.
Опис запитів:
Простий запит на вибір даних за критерієм.
Необхідно отримати інформацію про виробника автомобілів і марку авто, яке відповідає заданому критерію. Для цього створюємо запит на вибір даних з двох таблиць: Виробники і Автомобілі. Відбираємо дані з поля марка авто таблиці Автомобілі, які відповідають заданому критерію.
/
/
Запит на вибір даних з таблиць бази даних без критеріїв пошуку.
Необхідно отримати інформацію про автомобіль,його ціну,його модель. Для цього створюємо простий запит на вибір даних з двох таблиць: Автомобілі і Замовлення. Відбираємо дані з полів Марка авто, Модель авто таблиці Автомобілі і поля Ціна автотаблиці Замовлення по записах.
/
Перехресний запит для відображення залежності значень одного поля таблиці від іншого. Необхідно взнати ціну на автомобілі на в певні роки. Для цього будуємо перехресний запит. В результаті роботи запиту отримуємо таблицю, в першому стовпчику якої розміщені код авто, в першій стрічці – модель авто, в другій стрічці-роки, а на перетині стрічок і стовпчиків розміщена інформація про ціну авто в певні роки. Результат роботи запиту.
/
Параметричний запит на вибір даних за заданим критерієм із значенням заданим у вигляді параметра.
Необхідно отримати інформацію про конкретну модель авто, а також про ціни на цю модель, марку ы рык виробництва. .У полі Модель авто задаємо критерій відбору інформації у вигляді зовнішнього параметра.
/
/
Висновок: в даній лабораторній роботі ознайомився з засобами розробки запитів RQBE, видами запитів, способами їх виконання та застосування для роботи з реляційними базами даних.