
- •Створення таблиць бази даних
- •Теоретичні відомості
- •1.1. Проектування бази даних
- •1.2. Створення таблиць з використанням Конструктора
- •1.3.2. Керуючий запит на створення таблиці
- •1.3.3. Запит на створення таблиці з інших таблиць
- •1.3.4. Запит на додавання
- •1.3.5. Запит на видалення
- •1.3.6. Запит на оновлення
- •Лабораторна робота №2 Проектування qbe-запитів
- •Теоретичні відомості
- •2.1. Прості запити
- •2.2. Конструктор запитів
- •2.3. Обчислення в запиті
- •2.4. Параметричні запити
- •2.5. Перехресні запити
- •Контрольні запитання
- •Лабораторна робота №3 Створення запитів на вибірку з допомогою мови sql
- •Теоретичні відомості
- •3.1. Структура запиту. Умови пошуку.
- •3.2. Параметричні запити
- •3.3. Перехресні запити
- •3.4. Пошук у зв'язаних таблицях
- •3.5. Агрегація даних і форматування результатів пошуку
- •3.6. Підлеглі запити
- •3.7. Запити на об'єднання
- •Контрольні запитання
- •Лабораторна робота №4 Створення форм
- •Теоретичні відомості
- •4.1. Автоформи
- •4.2. Створення форми за допомогою «Майстра форм»
- •4.3. Створення складеної форми
- •4.4. Створення діаграми
- •4.5. Додавання елементів управління у форму
- •Контрольні запитання
- •Лабораторна робота №5 Розробка звітів
- •5.1. Робота з простими звітами
- •5.2. Створення звіту за допомогою Майстра
- •5.3. Розробка звіту в режимі Конструктора
- •Контрольні запитання
- •Лабораторна робота №6 Створення бази даних побутової техніки
- •Список літератури
3.2. Параметричні запити
У параметричних запитах в умовах пошуку використовується значення параметра, яке запрошується під час виконання запиту. Для побудови параметричного запиту на мові SQL досить в умовах пошуку замість аргументу вказати запрошення на введення параметра, наприклад, where група= [Вкажіть групу] ; При виконанні запиту буде запитано ім'я групи. Проте при цьому не допускаються збіги запрошення з ім'ям поля, наприклад, не можна використовувати запрошення [Група] . При такому запрошенні будуть видані дані про студентів усіх груп. Іноді Access запрошує параметр, хоча запит не є параметричним. Це відбувається у тому випадку, якщо в запиті використовуються імена, що не співпадають з іменами полів таблиць, які вказані в запиті. Для коректного виконання параметричного запиту доцільно використовувати необов'язковий опис parameters. Наприклад
У вікні виводитиметься запрошення, вказане в імені опису parameters. У описі необхідно вказати тип даних.
3.3. Перехресні запити
У перехресних запитах на мові SQL використовується інструкція transform. Наприклад, щоб отримати таблицю, перший стовпець якої містить прізвища усіх студентів, наступні стовпці мають імена, співпадаючі з назвами дисциплін, а в елементах таблиці поміщені оцінки відповідних студентів, можна застосувати інструкцію
Після ключового слова transform вказується функція обчислення значень елементів таблиці. У цьому прикладі середнє значення дорівнює єдиному значенню оцінки кожного студента по кожній дисципліні. Після слова select вказується ім'я поля, значення якого виводяться в перший стовпець (є заголовками рядків таблиці). Пропозиція group by є обов'язковою. Після слова pivot перераховуються імена полів, стовпців таблиці, що є іменами.
3.4. Пошук у зв'язаних таблицях
Мова SQL дозволяє зв'язувати таблиці в запитах (при цьому у вікні «Схема даних» таблиці можуть бути не пов'язані). Зазвичай з'єднання відбувається по рівності значень яких-небудь полів. Поля зв'язку повинні мати однакові типи (точніше, мати сумісний тип даних) і довжини, імена можуть відрізнятися. Імена таблиць, що беруть участь в об'єднанні, перераховують в пропозиції from. Оскільки імена стовпців в таблицях, що об’єднуються, можуть співпадати, то в цьому випадку використовують повні імена стовпців, таблиці, що складаються з імені, і імені стовпця : <ім'я таблиці>.<ім'я стовпця>. Найчастіше використовується так зване внутрішнє об'єднання, при якому об'єднуються записи двох таблиць, якщо поля обох таблиць (за якими виконується об’єднання) містять однакові значення. У простому випадку умова внутрішнього об'єднання задається в пропозиції where. Наприклад, об'єднуючи таблиці СТУДЕНТ і УСПІШНІСТЬ по умові рівності полів «Залікова книжка», а таблиці ДИСЦИПЛІНА і УСПІШНІСТЬ по рівності полів «Код дисципліни», отримаємо відомості про усі оцінки, отримані студентами:
Незважаючи на очевидну простоту, такий спосіб об'єднання не завжди зручний. Зокрема, результуючий набір в цьому випадку не можна змінювати, і зміни не можуть потрапити в основні таблиці. Більш універсальним способом являється використання для об'єднання в пропозиції from операції join. При цьому результуючий набір можна змінювати. У разі внутрішнього з'єднання пропозиція from має наступний синтаксис:
Тут <таблиця_1> і <таблиця_2> - імена таблиць, що об’єднуються, <поле_1> і <поле_2> - імена полів за якими встановлено зв'язки, <оператор> - оператор порівняння.
Наприклад, внутрішнє об'єднання таблиць СТУДЕНТ і УСПІШНІСТЬ можна виконати таким чином:
Операції join можуть бути вкладеними, наприклад для об'єднання трьох таблиць : СТУДЕНТ, УСПІШНІСТЬ і ДИСЦИПЛІНА - спочатку об'єднаємо таблиці ДИСЦИПЛІНА і УСПІШНІСТЬ, а отриману таблицю об'єднаємо з таблицею СТУДЕНТ:
Операції left join або right join (див. нижче) можуть бути вкладені в операцію inner join, але операція inner join не може бути вкладена в left join або right join.
Зовнішнє об'єднання таблиць. Операція left join створює ліве зовнішнє об'єднання, при якому усі записи з таблиці, що стоїть в лівій частині операції, включаються в результуючий набір. Записи таблиці, розташованої праворуч від операції, об'єднуються із записами з розташованої ліворуч таблиці тільки за наявності співпадаючих значень в полях зв'язку. Якщо для запису, розташованого ліворуч, немає співпадаючого, то він доповнюється рядком значень Null з правого боку. Аналогічно виконується операція правого зовнішнього об'єднання. Синтаксис операцій зовнішнього об'єднання співпадає з синтаксисом операції внутрішнього об'єднання, слід тільки замінити ключові слова операцій.
Можливо також самооб’єднання, тобто з'єднання двох копій однієї таблиці. Допустимо, є таблиця ВИКЛАДАЧ, що включає серед інших поля «Табельний номер», Прізвище, «Завідувач кафедрою». У останньому полі вказується табельний номер завідувача кафедрою (у завідувачок вказаний null). Таблиця містить дані усіх викладачів, включаючи завідувачів кафедрами. Запит виводить прізвища викладачів і прізвища завідувачів відповідними кафедрами:
У прикладі в пропозиції from використані псевдоніми таблиць Копия1 і Копия2, а в пропозиції select задані нові імена стовпцям. Можливе об'єднання різних таблиць і копій однієї таблиці.