Кафедра екології та промислової добірки
Короткий опис СУБД MS Access
|
Припустимо, що у великому підприємстві є величезна база даних Кадри, що містить докладні відомості про кожного співробітника. Крім формальної інформації база може містити і конфіденційну, наприклад, відомості про заробітну плату. Вся ця інформація зберігається у базових таблицях. Робити з базою даних Кадри можуть різні підрозділи підприємства, і всім їм потрібні різні дані. Не все те, що належить знати службі безпеки підприємства, має бути доступне головному лікарю, і навпаки. Тому доступ користувачів до базових таблиць закривають. Для доступу до даних є інший, набагато гнучкіший і зручніший засіб - запити. Для однієї й тієї ж таблиці можна створити безліч різних запитів, кожен із яких зможе витягувати з таблиці лише малу частину інформації, але саме ту частину, що у необхідна. У співробітника бухгалтерії повинен бути запит, який дозволить визначити скільки днів на рік через хворобу був відсутній той чи інший працівник, але у нього не повинно бути запиту, що дозволяє дізнатися, на що він хворів і де лікувався, а у головного лікаря такий запит повинен бути. В результаті роботи запиту із загальної вихідної бази формується результуюча таблиця, що містить частину загальної інформації, що відповідає запиту. Важливим властивістю запитів і те, що з створенні результуючої таблиці можна як вибирати інформацію з бази, а й обробляти її. При роботізапиту дані можуть упорядковуватися (сортуватися), фільтруватися (відсіюватися), об'єднуватися, розділятися, змінюватись, і при цьому жодних змін у базових таблицях може не відбуватися. Результати обробки позначаються тільки на змісті результуючої таблиці, а вона має тимчасовий характер, і іноді її навіть називають моментальним знімком. І ще однією цінною властивістю запитів є їхня здатність виконувати підсумкові обчислення. Запит може лише видати результуючу таблицю, а й знайти, наприклад, середнє (найбільше, найменше, сумарне тощо.) значення з якогось полю. У таблицях баз даних немає можливості вставити новий запис між іншими. Записи завжди додаються лише до кінця бази. На питання, чому так відбувається, відповідь проста: тому що впорядкування таблиць немає необхідності. Для цього є запити. Абсолютно неважливо, під яким номером внесено до таблиці той чи інший запис. Якщо потрібно бачити її в строго певному місці (наприклад, поряд з іншими аналогічними), то потрібно створити запит, який згрупує записи за заданою ознакою.
ЗАПИТАННЯ НА ВИБІРКУ
Існує чимало різних видів запитів, але найпростіші з них і, до того ж, найчастіше використовувані - це запити на вибірку. З них і прийнято розпочинати знайомство зі створенням запитів. Мета запиту вибірку полягає у створенні результуючої таблиці, у якій відображаються лише необхідні за умовою запиту дані з базових таблиць. Як інші об'єкти Access, запити можна створювати автоматично за допомогою Майстра або вручну. І, як завжди, на етапі навчання краще не користуватися Майстром, щоб відчути роботу із запитами "кінчиками пальців". Для створення запитів до баз даних існує спеціальна мовазапитів. Він називається SQL (Structured Query Language – структурована мова запитів). На щастя, ті, хто користуються СУБД Access можуть дозволити собі не вивчати цю мову. Замість нього в Access є простий засіб, який називається бланком запиту на зразок. З його допомогою можна сформувати запит простими прийомами, перетягуючи запити між вікнами. ВИБІР БАЗОВИХ ТАБЛИЦЬ ДЛЯ ЗАПИТ 1. Створення запиту до бази починається з відкриття вкладки Запити діалогового вікна База даних та натискання кнопки Створити. 2. У діалоговому вікні Новий запит, що відкрилося, задають ручний режим створення запиту вибором пункту Конструктор. 3. Створення запиту в режимі Конструктора починають з вибору таблиць бази, на яких буде заснований запит. 4. Вибір таблиць виконується у діалоговому вікні Додавання таблиці. У ньому відображаються всі таблиці, що є в базі. 5. Вибрані таблиці заносять у верхню половину бланка запиту на зразок клацанням на кнопці Додати. 6. У вікні Додати таблицю зверніть увагу на наявність трьох вкладок: Таблиці, Запити, Запити та таблиці. Вони говорять про те, що запит не обов'язково ґрунтувати лише на таблицях. Якщо раніше вже було створено запит, новий запит можна грунтувати і ньому.
Заповнення бланку запиту за зразком
Бланк запиту за зразком - напрочуд витончений і зручний засіб створення запитів. Напевно, воно чимало сприяє тому успіху, який СУБД Access має у споживачів. 1. Бланк запиту на зразок має дві панелі. На верхній панелі розташовані списки полів таблиць, на яких ґрунтується запит. 2. Рядки нижньої панелі визначають структуру запиту, тобто структуру результуючої таблиці, де містяться дані, отримані за результатами запиту. 3. Рядок Поле заповнюють перетягуванням назв полів із таблиць у верхній частині бланка. Кожному полю майбутньої результуючої таблиці відповідає один стовпець бланка запиту на зразок. 4. Рядок Ім'я таблиці заповнюється автоматично під час перетягування поля. 5. Якщо клацнути на рядку Сортування, з'явиться кнопка списку, що містить види сортування. Якщо призначити сортування по якомусь полю, дані в результуючій таблиці будуть відсортовані по цьому полю. 6. Бувають випадки, коли поле має бути присутнім у бланку запиту за зразком, але не повинно відображатися в результуючій таблиці. У цьому випадку можна заборонити його виведення на екран, скинувши відповідний прапорець. 7. Найцікавіший рядок у бланку запиту на зразок називається Умова відбору. Саме тут і записують той критерій, яким вибирають записи для включення в результуючу таблицю. По кожному полю можна створити умову відбору. У нашому прикладі призначено одну умову відбору: країною (США) у таблиці Клієнти. 8. Запуск запиту виконують клацанням меню Вид – Режим таблиці. Під час запуску утворюється результуюча таблиця. 9. Щоб вийти з результуючої таблиці і повернутися до створення запиту в бланку запиту на зразок, потрібно ще раз натиснути меню Вид-конструктор. Навіщо потрібний прапорець Виведення на екран? Якщо вміст поля не треба виводити на екран, то, може краще взагалі не включати це поле в бланк запиту за зразком? Випадки, коли присутність поля у бланку необхідна, зазвичай пов'язані з використанням цього поля для сортування. Але якщо відомості в даному полі конфіденційні, то поле приховують.
ЗАПИТАННЯ З ПАРАМЕТРОМ
ВИЛІЧЕННЯ В ЗАПИТІВ
Погляньте на таблицю Замовлено. У ній є дані про те, яка кількістьпевного товару замовлено і знижка на товар, але немає поля таких відомостей, як, наприклад, яку суму кожного товару продано з урахуванням знижки. Однак це поле можна створити за допомогою запиту. Поле, вміст якого є результатом розрахунку за вмістом інших полів, називається полем, що обчислюється. Перш ніж ми навчимося створювати і використовувати обчислювані поля, слід звернути увагу на те, що поле, що обчислюється, існує тільки в результуючій таблиці. У вихідних (базових) таблицях таке поле не створюється, і під час звичайного запиту таблиці не змінюються. Чи не так, це дуже розумно? Кожен, хто звертається до бази, може за допомогою запитів як завгодно маніпулювати даними та отримувати будь-які результати, але при цьому вихідні таблиці залишаються незмінно однаковими для всіх користувачів. 1. Для створення запиту, що робить обчислення, служить той самий бланк запиту за зразком. Різниця лише в тому, що в одному із стовпців замість імені поля записують формулу. У формулу входять укладені в квадратні дужки назви полів, що беруть участь у розрахунку, а також знаки математичних операцій, наприклад так: Сума продажу: [Ціна] * [Кількість] - [Ціна] * [Кількість] *[Знижка] 2. У вузький стовпець непросто записати довгу формулу, але якщо натиснути комбінацію клавіш SHIFT+F2, відкривається допоміжне діалогове вікно, яке називається Область введення. У ньому можна ввести скільки завгодно довгу формулу, а потім клацанням на кнопці ОК перенести її в бланк запиту за зразком. 3. Якщо увімкнути відображення поля, результати розрахунків будуть видаватися в результуючій таблиці. 4. Ніщо не заважає зробити поле полем сортування, що обчислюється, щоб не тільки отримувати нові результати, а й аналізувати їх. Подивіться, якзмінюється становище товарів після сортування по обчислюваному полю.
ПІДСУМКОВІ ЗАПИТАННЯ
Запити дозволяють не тільки відбирати потрібну інформацію з таблиць і обробляти її шляхом створення нових (обчислюваних) полів, а й проводити так звані підсумкові обчислення: Прикладом підсумкового обчислення може бути сума всіх значень в якійсь групі записів або їхнє середнє значення, хоча крім суми та середнього значення існують інші підсумкові функції. Оскільки підсумкові функції для одного запису не мають сенсу і існують тільки для групи записів, попередньо записи треба згрупувати за якою-небудь ознакою. 1. Розглянемо запит "Квартальні обороти товарів" 2. Підсумкові запити створюють на основі відомого нам бланка запиту за зразком, тільки тепер у ньому з'являється додатковий рядок - Угруповання. 3. Для введення цього рядка в бланк треба натиснути на кнопці Групові операції (знак суми) на панелі інструментів Access. Далі все відбувається дуже просто. 4. У тих полях, якими проводиться угруповання, треба встановити (або залишити) функцію Угруповання. 5. У тих полях, якими слід провести підсумкове обчислення, треба у рядку Угруповання розкрити список і вибрати одну з кількох підсумкових функцій. 6. Клацніть на кнопці Вигляд запускає запит і видає результуючу таблицю з необхідними підсумковими даними. 7. У рядку Угруповання можна вказати лише одну підсумкову функцію. А як бути, якщо треба знайти і суму, і середнє, і максимальне значення і ще щось? Рішення просте: те саме поле можна включити до бланку запиту за зразком кілька разів. Спробуйте зробити підсумковий запит на те, які замовлення та на яку суму в день виконання замовлення обробив співробітник Новіков за 1995 рікрік.