- •Практична робота № 3
- •«Проектування запитів до бази даних».
- •Теоретичні відомості та методичні рекомендації до виконання лабораторної роботи
- •1. Створення запиту-вибірки
- •2. Запити з обчисленнями
- •Запити з параметром
- •4. Запити на вилучення
- •4.1. Текст запиту
- •4.2.Аналіз тексту запиту
- •Хід виконання роботи
- •Висновки
1. Створення запиту-вибірки
1.1. Текст запиту:
Вибрати усі записи про товари, що виготовляє фірма Світоч. Вивести назву товару, код товару та ціну.
2.1. Аналіз тексту запиту:
Необхідні записи знаходяться у таблицях Products та Companies. Структура таблиці запиту включає такі поля: Product_Id, Product_Name, Price. Умова вибірки – значення поля Company_Name=”Світоч”.
Вибираємо неохідні нам поля, якщо поле не потрібно виводити у результуючій таблиці, то знімаємо галочку у в рядку Вивод на екран.
В рядку Условие отбора у стовпчику, який містить назви виробників вказуємо, що вибираємо лише записи де виробником є Світоч. Панель конструктора запиту матиме вигляд:
Результат вибірки:
При закритті Access запропонує вказати назву запиту.
Додаткова інформація!!!
В якості умов на вибірку можна використовувати операції порівняня =, >, <, >=, <=, <>. Крім того допускається використання предикатів BETWEEN, IN, LIKE та NULL.
Предикат |
Формат запису |
Зміст |
Between |
вираз [Not] Between значення1 And значення2 |
Перевірка виразу на входження в діапазон значень |
In |
вираз [Not] In(значення1, значення2, …) |
Перевірка виразу на входження в список значень |
Like |
вираз [Not] Like “маска” |
Перевірка виразу на подібність до маски |
Null |
вираз Is [Not] Null |
Перевірка виразу на наявність даних |
В наступній таблиці наведено приклади умов на вибірку.
Умова |
Запис |
suma відмінна від 0 |
suma<>0 |
evdate не перевищує 30 червня 2000р. |
evdate<=#20.06.2000# |
evdate приймає значення від 1 січня 2000р. до 30 червня 2000р. |
evdate Between #01.01.2000# And #20.06.2000# |
suma не входить в діапазон від –10 до 10 |
suma Not Between –10 And 10 |
optype приймає значення 0 або 1 |
optype In(0,1) |
name починається з “А” |
name Like “А*” |
name містить “и” |
name Like “*и*” |
name не містить “и” |
name Not Like “*и*” |
name закінчується на “к” |
name Like “*к” |
name містить другу букву “а” та закінчується на “к” |
name Like “?а*к” |
name містить не менше п’яти символів |
name Like “?????*” |
fathername містить дані |
fathername Is Not Null |
fathername не містить дані |
fathername Is Null |
2. Запити з обчисленнями
У таблицях недоцільно утримувати дані, які можна отримати розрахунковим шляхом. Щоб здійснювати обчислення над даними, що зберігаються у таблицях використовуються запити із обчисленнями.
2.1 Текст запиту
Вибрати усі записи про замовлені товари, назву товару, назву замовника та назву виробника та порахувати витрати замовників.
2.2. Аналіз тексту запиту
Інформація вибирається із таблиць Products, Customers, Orders, Companies. Структура таблиці запиту включає такі поля: Products_Name, Company_Name, Customer_Name, Costs. Де Costs – поле яке є результатом обчислення.
Для обчислення витрат замовника запит відкривають у режимі конструктора і додають до його полів нове поле, що є розрахунковим. Це поле описують рнаступним чином:
Costs: [Price]*[Count]
Панель конструктора матиме вигляд:
Результат вибірки:
Додаткова інформація!!!
Щодо виконання обчислень, то існує ряд обчислень, які можна виконати в запиті, наприклад, знайти суму чи середнє за значеннями одного поля, перемножити значення двох полів чи обчислити дату, що відстає від поточної на три місяці.
Результати обчислень, що виводяться в поле, не запам'ятовуються в базовій таблиці. Обчислення виконуються кожного разу при виконанні запиту, тому результати завжди відображають поточний вміст бази даних. Обновити обчислені результати вручну неможливо.
Для визначення обчислювальних полів можна використовувати вбудовані функції Microsoft Access чи вираження, створювані користувачем. Вбудовані функції дозволяють знайти наступні підсумкові значення для груп записів чи для всіх записів: суму значень поля (Sum), середнє (Avg), число значень у полі (Count), мінімальне значення (Min), максимальне значення (Max), середньоквадратичне відхилення (StdDev) чи дисперсію (Var). Для кожного обчислювального поля варто вибрати один вираз.
Вираження, що визначають обчислення вводяться у рядок Total (Підсумки) бланку запиту.
У бланку запиту задаються умови вибору груп, для яких обчислюються підсумкові значення, і записів, що включаються в обчислення, а також результати, відображувані після виконання розрахунків.
Вирази, задані користувачем, дають можливість виконувати дії з числами, датами і текстовими значеннями в кожному записі з використанням даних з одного чи декількох полів. Наприклад, вирази дозволяють помножити значення одного поля на підсумкове значення, знайти різницю значень двох полів типу Дата/час, з'єднувати стрічкові значення.
Для розрахунків з використанням формул, створених користувачем, потрібно створити нове поле, що обчислюється, прямо в бланку запиту.
Поле, що обчислюється, створюється за допомогою виразу, що вводиться в порожній комірці Field (Поле) в бланку запиту.
При виконанні розрахунків допускаються складні вирази – наприклад, Sum(optype*suma).
Результати обчислень не повинні обов'язково відображатися в полі. Їх можна використовувати в умовах на вибірку записів. Наприклад, в комірці рядка Criteria (Умова вибору) можна вказати умову на вибір записів, що мають значення в полі evdate в інтервалі між поточною датою і датою, що відстає від неї на 90 днів: Between Now()-90 And Now().
Рядок Total (Підсумки) в режимі конструктора запиту з’являється при натиску кнопки Totals (Підсумки) на панелі інструментів.
У бланку запиту дев’ять із дванадцяти елементів випадаючого списку в комірці Total (Підсумки) є статистичними функціями. У наступній таблиці перераховані ці функції з їх можливим застосуванням до типів даних.
Елемент |
Результат |
Тип поля |
Sum |
Сума значень полючи. |
Числовий, Дата/час, Грошовий, Лічильник |
Avg |
Середнє від значень поля. |
Числовий, Дата/час, Грошовий, Лічильник |
Min |
Найменше значення поля. |
Текстова, Числовий, Дата/час, Грошовий, Лічильник |
Max |
Найбільше значення поля. |
Текстова, Числовий, Дата/час, Грошовий, Лічильник |
Count |
Число значень поля без обліку порожніх (Null) значень. |
Текстова, Числовий, Дата/час, Грошовий, Лічильник, Логічний, Поле об'єкта OLE |
StDev |
Середньоквадратичне відхилення від середнього значення поля. |
Числовий, Дата/час, Грошовий, Лічильник |
Var |
Дисперсія значень поля. |
Числовий, Дата/час, Грошовий, Лічильник |
First |
Початкове значення |
Дата/час |
Last |
Кінцеве значення |
Дата/час |
