Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на Pascal / Delphi / Методичка - Організація баз даних і знань.doc
Скачиваний:
82
Добавлен:
02.05.2014
Размер:
631.3 Кб
Скачать

Лабораторна робота № 11

Формування запитів з використанням мовиQBEта за допомогою засобуVisual Query Builder

Мета:Виконання основних операцій по створенню запитів мовоюQBE

Завдання:

За допомогою засобу Visual Query Builder і QBEсформувати текстиSQL-операторівSELECT, що виконують:

  1. пошук інформації за заданою умовою у декількох таблицях (розглянути випадки декількох умов, з’єднаних зв’язками ANDіOR);

  2. обчислення агрегатних функцій (COUNT, SUM, MAX, MIN) з групуванням за значенням деякого стовпця;

  3. накладення умови на групу.

Зміст звіту:

  1. Структури таблиць робочої бази даних.

  2. Опис запитів: а) словесний; б) мовою SQL; в) мовоюQBE.

  3. Аналіз результатів роботи.

Порядок виконання роботи

Формування тексту SQL-оператораSELECTможе здійснюватися за допомогою вбудованого вDelphiзасобуVisual Query Builderабо засобуQBE, що входить до складуDatabaseDesktop. Використання цих конструкторів дозволяє спростити процес побудови складних запитів.

Для формування тексту SQL-оператораSELECTза допомогоюQuery Builderнеобхідно виконати такі операції:

  1. Помістити на форму (звичайну або модуля даних) компонент типу TQuery. Задати ім’я об’єкту запита (властивістьName). Надати значення властивостіDatabaseName.

  2. Клацнути правою кнопкою миші на компоненті типу TQueryі з контекстного меню вибратиQuery Builder. Якщо з’явиться вікно вибору бази даних, двічі клацнути на відповідному імені.

  3. У вікні Add Table необхідно вибрати імена таблиць, які будуть брати участь в запиті. Двічі клацнути на відповідних іменах таблиць і закрити діалогове вікно. З’явиться вікноVisual Query Builder, що включає вибрані таблиці.

  4. Для реалізації з’єднання двох таблиць необхідно перетягти стовпчик, за яким виконується з’єднання, з першої таблиці на відповідний стовпчик другої таблиці. Між стовпцями повинна з’явитися лінія, що з’єднує таблиці.

  5. Необхідно визначити, які стовпці таблиць, що з’єднуються, будуть входити до результуючої таблиці. Щоб додати стовпець до запиту, необхідно двічі клацнути на ньому. Назва стовпця повинна з’явитися в нижній частині вікна Query Builder.

  6. Умови, що накладені на значення стовпців, вводяться в графі Criteriaцих стовпців в нижній частині вікнаQuery Builder. Для динамічних запитів в графіCriteriaвказується умова порівняння з параметром.

  7. Для групування даних, що повертаються запитом, за значенням деякого стовпця необхідно в нижній частині вікна Query Builderклацнути правою кнопкою миші на поліOptions цього стовпця і зі списку, що з’явиться, вибрати пунктGroup.

  8. Для визначення умови обчислення агрегатних функцій (COUNT, SUM, MAX, MIN) використовуєтьсяExpression Builder(кнопкаa+b) панелі інструментів засобуQuery Builder. В діалоговому вікніExpressionможна сформувати необхідний вираз. Для цього:

  • В рядку Expression Nameввести псевдонім стовпця, що обчислюється;

  • Із списку Tablesвибрати ім’я таблиці, для якої буде обчислюватися агрегатна функція;

  • Двічі клацнути на імені агрегатної функції в списку Functionі двічі на імені відповідного стовпця в спискуColumns;

  • Повернутися в головне вікно Query Builder, натиснувши SaveіClose.

  1. Для перегляду SQL-оператора, згенерованого системоюQuery Builder, натиснути кнопкуView SQL(на піктограмі кнопки зображені окуляри).

  2. Після закінчення роботи з Query Builderзапит буде автоматично збережено у властивостіSQL відповідного компонентаTQuery. Імена параметрів, що використовуються в запиті, будуть автоматично внесені у властивістьParamsцього компонента.

Для формування тексту SQL-оператораSELECTза допомогою засобуQBEнеобхідно виконати такі операції:

  1. Запустити DatabaseDesktop (опціїTools / DBD)і настроїтиWorking Directoryна необхідний аліас.

  2. Вибрати пункти меню File / New / QBEQuery. З’явиться діалогове вікно зі списком усіх таблиць зазначеної БД.

  3. Виберіть необхідні таблиці у вікні Select Fileі закрийте його.У вікніQueryз’являться шаблони таблиць, що додані до запиту. При необхідності можна збільшити розміри вікна Query. Ще раз відкрити вікно Select Fileможна клацнувши на піктограміAdd Table(кнопка+) панелі інструментів.

  4. Для з’єднання таблиць використайте екземпляри елементів, що ідентифікують спільні поля таблиць.

  • У випадку природного з’єднанняклацніть на піктограміJoin Tables. Потім клацніть на стовпцях, за якими виконується з’єднання для обох таблиць. В кожному полі з’явиться словоjoin1. Повторіть цей процес для з’єднання інших таблиць, що входять до запиту.

  • У випадку -з’єднаннявведіть умову з’єднання, натиснітьF5 (або введіть знак підкреслення) і зазначте екземпляр елемента, що ідентифікує поля, які порівнюються. Екземпляр елемента буде виділено червоним кольором.

  1. Щоб додати стовпчик до результуючої таблиці запиту, необхідно клацнути на прапорці, що пов’язаний з цим стовпчиком. З’явиться прапорець , який вказує, що в результуючій таблиці будуть виведені унікальні дані в порядку їх збільшення. У випадку, коли необхідно вивести усі результуючі дані, включаючи дублікати, виберіть прапорець+ (з меню за правою кнопкою миші). У цьому випадку дані не будуть сортуватися. Для сортування у порядку зменшення даних виберіть прапорець.

  2. Умови, що накладені на значення стовпця, вводяться в полі стовпця. Для введення умов, що з’єднані зв’язкою ORнеобхідно ввести ще один рядок в шаблон таблиці (клавішаInsert). Для вилучення рядка з шаблону натиснутиCtrl+Del.

  3. Для визначення умови обчислення агрегатних функцій (COUNT, SUM, MAX, MIN) необхідно описати поле, що обчислюється (типуcаlc) в будь-якому з стовпців шаблона. Встановити прапорецьв полі, за значеннями якого треба згрупувати дані.

  4. Для перевірки своєї роботи можна переглянути результуючу таблицю. Для цього клацніть на піктограмі з зображенням блискавки.

Для перетворення оператора QBE вSQL-оператор, клацніть на піктограмі SQL. ОтриманийSQL-вираз можна зберегти на диску або скопіювати в буфер обміну і вставити у властивістьSQLоб’єктаTQuery.

Приклад: Знайти прізвища всіх студентів, які вчаться на спеціальності ІТЕП.

Результат виконання запиту: