Запити й вивчення SQL в AccessДалі ми розглянемо тестування прикладних частин. Найбільш очевидне застосування SQL в Access – складання запитів. У багатьох аспектах SQL-оператор – синонім запиту Access; і той і інший представляють опис результату, який потрібно отримати від СКРБД. Опис створюється на основі англійської мови і мови розробки бази даних, в нашому випадку – російської. Результат же повертається у формі таблиці запиту. Одна із чудових можливостей СКБД Access – перетворення сіткового подання у форму SQL-запиту й назад. Розглянемо основний приклад, до якого ми будемо звертатися протягом теми – вибірку імен і прізвищ всіх співробітників. Прийшов час зайнятися тестуванням SQL-операторів, але ми ще не розглянули їхнього складання. Тому візьмемо для тестування наступний нескладний оператор: SELECT Имя, Фамилия FROM Сотрудники Цей оператор призначений для бази даних Борей; він повертає список всіх співробітників, число яких дорівнює дев’яти; перша – Марія Бєлова. Ми будемо звертатися до наведеного вище тестовому оператора протягом цієї теми декілька разів. СПРОБУЙТЕ – Вправа з SQL у вікні запитів Розглянемо використання вікна запитів Access для перетворення запиту у форму оператора SQL і назад. Це можна зробити одним із двох способів: щигликом на одній із кнопок Вид з лівого краю стандартної панелі інструментів; або виконанням команди меню View:
1 Запустіть Access і відкрийте базу даних Борей.mdb (пункт меню Справка/Примеры баз данных.../Учебная база данных „Борей”). Переглянете список запитів:
2 Відкрийте у вікні бланку запиту запит з ім’ям (Список имеющихся товаров) і гляньте на результат – таблицю з полями Код товара і Марка. У таблиці представлені тільки продукти, поставка яких триває, хоча в результаті ця умова не відображається:
3 Перейдіть в режим конструктора, виконавши команду меню Вид/Конструктор, і подивіться на структуру таблиці. Як бачимо, у нас є одна таблиця даних Список товаров, з якої на таблицю запиту перенесені три стовпці. Два з них показані, третій – ПоставкиПрекращены, – прихований. Чому? Бо поле третього стовпця використовується як критерій запиту:
4 Перейдіть до SQL-режиму, виконавши команду меню Вид/Режим SQL, і подивіться, яким чином таблиця перетворилася в SQL-оператор. Ми поки не приступили до вивчення синтаксису SQL-операторів, але зміст їх зрозумілий кожному, хто володіє основами англійської мови: 5 Поверніться знову в режим конструктора і в бланку запиту створіть поле КодТипа: 6 Перейдіть в SQL View і переконайтесь в появі нового поля наприкінці першого рядка: 7 Прогляньте результат зміненого запиту і закрийте вікно запитів, не зберігаючи змін.
8 Створіть новий запит, в режимі конструктора встановіть в бланку запиту поля Имя й Фамилия для таблиці Сотрудники, прогляньте його в режимі SQL і запустіть його на виконання:
9 Зауважимо, що не всі SQL-оператори можна створити у бланку запитів в режимі конструктора. У вікні бази даних виділіть запит Клиенты и поставщики по городам і спробуйте його відкрити у Конструкторі. Не вийде! Це запит типу UNION, тому в Access він може бути представлений тільки у формі SQL. Як це працює – експеримент із SQL в Access Queries Тут можна обійтися без довгих пояснень – Access сам виконає всю роботу. На майбутнє Потрібно пам‘ятати, що Access легко виконує «переклад» запиту з бланку запиту в SQL і назад. Студенти знаходять дуже зручним перевіряти складені SQL-запити, переводячи їх у бланк запиту, перш ніж копіювати через буфер обміну в робочий зовнішній інтерфейс. Треба, однак, мати на увазі, що в деяких ситуаціях такий підхід може приводити до несподіваних результатів. Одна з таких ситуацій – неможливість перекладу SQL-оператора (наприклад, UNION) у бланк запиту; інша – включення в SQL-оператор неіснуючого поля. В останньому випадку Access прийме нове поле за параметр і потребує ввести значення. 3 Аналізатор запитів Під терміном зовнішній інтерфейс маємо на увазі інтерфейс, видимий для користувача. Однак при розробці виникає потреба в засобі, що дозволяє посилати SQL-оператори як зі звичайного зовнішнього інтерфейсу, але який би забезпечував більше гнучкості й потребував мінімуму настроювань. Зовнішній вигляд цього інтерфейсу не має особливого значення – він повинен забезпечувати лише перевірку SQL-операторів. Крім того, було б непогано, якби він надавав інформацію про швидкість й ефективність виконання складних операторів. Більшість СКБД мають такий засіб. Має його і SQL Server. Це Query Analyser (Аналізатор запитів). i Перш ніж скористатися аналізатором запитів, переконайтесь, що SQL Server запущено. Якщо запустити аналізатор запитів (Пуск/Програми/Microsoft SQL Server/Query Analyser), відкриється діалогове вікно, у якому потрібно вказати, до якого сервера він повинен підключитися. Ми залишаємо зробити це операційній системі.
Вікно аналізатора запитів – звичайне вікно Windows з меню й панеллю інструментів. Зверніть увагу на список, розташований на панелі інструментів. За замовчуванням у ньому виділений рядок master. Наші SQL-оператори будуть призначені для Борей, тому виділяємо в списку цю базу даних. Тепер можна протестувати оператор. Наберіть на клавіатурі або вставте через буфер обміну наступне: SELECT Имя, Фамилия FROM Сотрудники Тепер запустіть оператор натисканням F5 або щигликом на кнопці із зеленим трикутником. Вікно розділиться на дві панелі (верхню й нижню); в останню будуть виведені результати виконання SQL-оператора. Розміри стовпців у таблиці результату можна регулювати, перетаскуючи границі їхніх заголовків. Передбачено можливість виділення частини результату й копіювання її в інший додаток. Розповсюджені помилки при роботі з аналізатором запитів P Запуск SQL-оператора для бази даних, для якої він не призначений. P Отримання результату в нерозбірливому виді через вибір текстового подання замість табличного. P Багаторазовий набір тих самих операторів замість збереження їх і вставки через буфер обміну. P Помилки при наборі імен таблиць або стовпців. На закінчення кілька порад: P Для збереження SQL-оператора виконаєте команду меню File/Save As (Файл/Зберегти як). P Для багаторазового швидкого виправлення помилки (наприклад, в імені стовпця) або заміни одного оператора іншим, скористайтеся командою меню Edit/Replace (Виправлення/Замінити). P Можна вводити одночасно декілька операторів, розділивши їх крапкою з комою. P Текст оператора можна розміщувати в будь-якому порядку, вставляючи в будь-якому місці символи табуляції або зміни рядка (символ каретки). SQL ігнорує пробіли. P Поруч із кнопкою запуску (із зеленою стрілкою) розташовується прапорець, щиглик на якому призводить до перевірки SQL-оператора без його запуску. Таку перевірку зручно застосовувати при налагодженні операторів. Інакше ця операція запускається сполученням клавіш Ctrl+F5. P Для переходу на певний рядок, натисніть Ctrl+G й уведіть номер цього рядка.
|