Головна
Лекції
Завдання
Побажання
Гостьова
Лінки
Лекція №4 Лекція №2 Скачати лекцію

Access_3

Обєкт: запит

MS Access містить зручний вбудований засіб розробки запитів – конструктор запитів, який дозволяє створювати досить складні запити. Перемикаючись в режим SQL, можна отримати доступ до рядка запиту на мові SQL. Цей рядок можна відредактувати вручну, а також скопіювати в буфер обміну та використати в програмі Visual Basic або взагалі в іншій системі програмування. Конструктор доступний для всіх типів запитів. Це запити на вибірку, перехресні запити, а також запити на модифікацію, добавлення, видалення та створення таблиці.

Режими перегляду запитів. Існує 5 режимів, в яких можна відкрити запит: режим таблиці, режим конструктора, режим SQL, а також режими зведеної таблиці та зведеної діаграми.

Режим зведеної таблиці. Призначений для ефективного представлення даних, що повертаються запитом в зручній для аналізу табличній формі. В цьому режимі існує можливість швидкого обчислення підсумкових значень (суми, середнього, мінімума, максимума, і т. д.) тонкої та гнучкої настройки фільтрів, легкого добавлення та видалення полів з макету та інші зручності. Щоб відкрити запит в режимі таблиці, необхідно спочатку відкрити його або в режимі таблиці, або в режимі конструктора,. В будь-якому з цих режимів на панелі інструментів буде доступна кнопка Вид, призначена для переключення між різними режимами запитів. Оберіть з розкритого меню кнопки Вид пункт зведена таблиця. Якщо запит відкривається в цьому режимі вперше або розроблена раніше структура зведеної таблиці не була збережена, на екрані відобразиться її порожній макет.

Макет зведеної таблиці містить чотири області, призначені для розміщення в них полів із запитів. Це області рядків, стовпців, фільтра та підсумків або деталей. В області рядків розміщуються поля, значення яких використовуються в якості заголовків рядків. В області стовпчиків розміщується поле запиту, значення якого використовуються в якості заголовків стовпчиків зведеної таблиці. Значення поля, яке розміщується в області фільтра будуть використовуватись для обмеження відображених в зведеній таблиці даних. Область підсумків призначена для відображення детальної інформації із запиту та різноманітних підсумкових значень.

Крім макету зведеної таблиці, на екрані також відображується вікно список полів. Якщо цього не відбувається, оберіть однойменний пункт меню Вид. Іноді, після переключення до інших додатків, вікно список полів зникає з екрану. Тоді, щоб повернкти його знову, потрібно скористатись вищезгаданим пунктом меню двічі. Той же результат можна отримати, скориставшись, використовуючи кнопку список полів, розташовану на панелі інструментів.

В цьому вікні, крім полів запиту або таблиці, можуть бути присутні додаткові поля. Якщо поле запиту має тип Дата/Время то в список включається не тільки саме поле, а й 2 позиції, що відповідають різним варіантам групування його значень.

Конструктор запитів

Конструктор запитів можна використовувати, як для створення нових запитів, так і для модифікації наявних. При створенні нових запитів, потрібно натиснути кнопку Создать панели инструментів вікна бази даних та у діалоговому вікні Новый запрос обрати пункт Конструктор. Щоб відкрити в режимі конструктора вже існуючий запит, оберіть його в списку та натисніть кнопку Конструктор панелі інструментів вікна бази даних.

Вікно конструктора запитів розбите на 2 частини. Верхня частина призначена для розміщення зображень таблиць або запитів, які включаються в запит. Там же у вигляді ліній відображаються встановлені між ними звязки. Умовно цю часть вікна конструктора запитів можна назвати зоною таблиць.

Нижню частину вікна конструктора запитів звичайно називають бланк запитів. В бланку запиту вказуються поля таблиць або запитів, які будуть брати участь в його представленні (поля вихідних таблиць або запитів, які будуть видимі при перегляді результатів запиту; поля, необхідні для задання умов вибору; поля, значення яких обчислюються на основі значень інших полів); найменування вихідних таблиць та запитів, з яких береться поле; порядок сортування; групові операції (при необхідності); умови, що накладаються на значення полів при вибірці записів.

Схема дій при створенні нового запиту. Спочатку потрібно додати до запиту необхідні таблиці або запити та встановити між ними потрібні звязки. Після цього в бланк запиту додають потрібні поля, встановлюють порядок сортування, вводять необхідні умови. Результати виконання запиту можна продивитись, навіть не зберігаючи її в базі даних. До речі запити та таблиці поділяють один й той самий простір імен. Це означає, що не можна зберегти запит під іменм наявної таблиці та навпаки.

Для того, щоб додати таблицю або запит в макет запиту потрібно обрати пункт Добавление таблицы меню Запрос або натиснути одноіменну кнопку панелі інструментів. В цьому вікні можна обрати одну або кілька таблиць чи запитів, і після натиснення кнопки Добавить, вони будуть додані в запит, а їх зображення зявляться в зоні таблиць. Після закриття вікна Добавление таблицы можна перейти до наступного етапу проектування запиту – встановленню звязків.

Звязки між таблицями встановлюється так само, як у вікні Схема данных. Ці звязки є тимчасовими і діють тільки на час виконання запиту. Якщо в запит будуть додані таблиці, між якими встановлені звязки на рівні баз даних, то конструктор автоматично відображатиме їх без вашої участі.

Наступний етап проектування – заповнення бланку запиту. Додати поле в бланк запиту можна двома засобами: перетягаючи при натисненій лівій кнопці миші потрібне поле з таблиці в зоні таблиць на порожнє поле бланку запиту або, обираючи з комбінованого списку найменування таблиці та поля ( в рядках Поле та Имя таблицы. Для кожного поля, вміщеного у бланк запиту, можна вказати умови, які будуть застосовуватись до значень цього поля при вибірці записів з вихідних таблиць. Ці умови задаються, починаючи з рядка Условия отбора. Умови, задані для різних полів, що знаходяться в одному рядку (Строка условий), обєднуються в один логічний вираз за допомогою логічної операції И. Різноманітні рядки умов обєднуються між собою із застосуванням логічної операції Или. Рядків умов можна задати скільки завгодно. В якості умов можна використовувати константи, вирази, навіть інші запити.

Після того, як розробку запиту закінчено, можна продивитись результати його дії в режимі Таблицы, або перейти до режиму SQL.,щоб вивчити отриманий SQL-оператор та, при необхідності, трохи його підредагувати.

Крім полів таблиць (запитів), добавлених в розроблений запит, можна також використовувати обчислювані поля. Для створення обчислюваних полів зручно скористатись послугами Побудівника виразів. Для його виклику потрібно в обраному полі клацнути правою кнопкою миші та з контекстного меню обрати пункт Построить

Запити на вибірку є найбільш розповсюдженими із всіх типів запитів. Основна їх функція – вибір вказаних полів з однієї чи кількох таблиць (запитів) і відображення отриманих результатів (підсумкової вибірки) на екрані у вигляді таблиці. Запити на вибірку, які можна використати для поновлення записів вихідної таблиці називаються поновлюваними, інші – не поновлюваними.

Прийоми роботи із запитами на вибірку в режимі таблиці нічим не відрізняються від прийомів роботи з таблицями в режимі перегляду, за виключенням випадку непоновлюваності запиту.

Запит, оснований на одній таблиці, який використовує просту умову.

Припустимо, потрібно вибрати з таблиці Замовлення, назви всіх клієнтів, чиї замовлення були розміщені в 1998 році та розташувати їх в алфавітному порядку. В такому випадку у рядку Условие отбора вводимо вираз: Between #01.01.98#And#31.12.98# та встановлюємо сортування за зростанням. Функція Between… And визначає належність значення виразу вказаному діапазону. Повний синтаксис:

Вираз [Not] Between значення_1 And значення_2.

Значенням виразу повинно бути деяке найменування поля. Значення_1 та значення_2 вирази, що задають границі діапазонів. Дату в операторі SQL потрібно вказувати в американському форматі (місяць/число/рік) та заключати в знаки “#”. Коли запит містить одну таблицю, то вказувати імя таблиці перед іменем поля не обовязково. Якщо поле вихідної таблиці містить пробіли, то назву поля потрібно брати в квадратні дужки.

Конструкції SQL.

SELECT – задає вимогу до Microsoft Jet (ядро бази даних, яке обслуговує запити) на вибірку даних, тим самим визначаючи тип запиту. В пропозиції SELECT перераховуються всі поля, які повинні увійти в результуючий набір даних, в тому числі обчислювані.

DISTINCT - необовязковий предикат, який використовується разом із пропозицією SELECT. Задає вибірку тільки унікальних результуючих записів. Вказується після ключового слова SELECT перед списком обраних полів. Предикат DISTINCT зявляється в запиті автоматично після того, як для властивості запиту унікальні значення виставляється прапорець Yes.

FROM. В цій пропозиції задаються імена однієї чи кількох таблиці (запитів). Тут же вказуються звязки між таблицями, якщо вони є.

WHERE. В цій пропозиції задаються умови, згідно з якими відбираються записи з вихідних таблиць (запитів).

ORDER BY. Тут можна задавати порядок сортування для кожного з полів, які входять в цю пропозицію. Порядок сортування вказується після кожного найменування поля в пропозиції ORDER BY та може приймати значення ASC (за зростанням) або DESC (за спаданням). Якещо порядок сортування не вказаний, ио мається на увазі – за зростанням

Кранка з комою (;) – обовязково вказується в кінці оператора SQL.

Приклад:

SELECT DISTINCT Заказы.НазваниеПолучателя

FROM Заказы

WHERE (((Заказы.ДатаРазмещения) Вееtween #1/1/1998# And #12/31/1998))

ORDER BY Заказы.НазваниеПолучателя

Проста виборка з двох звязаних таблиць.

В пропозиції FROM задаються не тільки найменування вихідних таблиць, а й звязки, що їх обєднують. Наприклад, внутрішнє обєднання INNER JOIN – означає, що із звязаних таблиць вибираються тільки ті записи, значення звязаних полів в яких співпадають, інші ігноруються.

Приклад:

SELECT DISTINCT Клиенты.Город, Клиенты.Название

FROM Клиенты INNER JOIN Заказы ON Клиенты.КодКлиента

=ЗаказыКодКлиента

WHERE ((( Заказы.ДатаРазмещения)Between #1/1/1998 And #12/31/1998#))

ORDER BY Клиенты.Город, Клиенты.Название;

Запит, який використовує обчислювані поля.

  1. Для обєднання значень полів використовується операція конкатенації строк (&). Ця операція додає строку, що є правим операндом в кінець рядка, який є лівим операндом. Наприклад, якщо Прізвище = Іванов, Імя по-батькові = Іван Петрович, то Прізвище& Імя по-батькові = Іванов Іван Петрович.
  2. Оператор Like використовується для перевірки відповідності строки вказаному шаблону: результат= строка Like шаблон. Якщо строка відповідає шаблону, то результатом буде Истина(True), інакше –Ложь (False).
  3. Для того, щоб присвоїти пою якесь імя, відмінне від стандартних імен, присвоюваних конструктором запитів автоматично, потрібно ввести його в рядку Поле конструктора запитів і поставити після нього двокрапку.

Спеціальні символи, які використовуються з оператором Like

Символ

Опис

?

Будь-який одиночний символ

*

Будь-яка кількість символів (від нуля і більше)

#

Будь-яка цифра (від 0 до 9)

[A-Z]

Будь-який символ, що потрапляє у вказаний діапазон (квадратні дужки вказувати обовязково)

[!A-Z]

Будь-який символ, що не потрапляє у вказаний діапазон (квадратні дужки вказувати обовязково)

[A,D,H]

Будь-який символ, із вказаного переліку (квадратні дужки вказувати обовязково)

[!A,D,H]

Будь-який символ, що не попадає у вказаний перелік (квадратні дужки вказувати обовязково)

 

Приклади використання оператора Like

 

Приклад

Результат

“aBBBa” Like “a*a”

Истина (True)

“F” Like ”[A-Z]”

Истина (True)

“F” Like ”[!A-Z]”

Ложь(False)

“a2a” Like “a#a”

Истина (True)

“aM5b” Like “a[L-P]#[!c-e]

Истина (True)

“BAT123khg” Like “B?T*”

Истина (True)

“CAT123khg” Like “B?T*”

Ложь(False)

“F “Like “[A,X,F]”

Истина (True)

“Z “Like “[A,X,F]”

Ложь(False)

Лекція №4 Лекція №2 Скачати лекцію

 

 

 
Hosted by uCoz