- •Створення та експлуатація баз даних.
- •Створення та експлуатація баз даних.
- •Створення та експлуатація баз даних.
- •Бази даних
- •Основні поняття
- •Етапи роботи з бд
- •Реляційна бд
- •Учбова бд
- •Бд на основі еп Excel
- •Створення і використання даних бд
- •Сортування та фільтрація даних
- •Створення проміжних підсумків
- •Аналіз даних бд з допомогою графіків і діаграм
- •Створення довідок та звітів
- •Створення кнопки для запиту, створеному на vba
- •Використання субд Access для створення та експлуатації бд
- •Перші кроки в освоєнні Access
- •Типи даних, що використовуються в базі даних
- •Підготовчі операції до створення структури бд
- •Studenti
- •Створення структури бд
- •Встановлення зв’язку між таблицями
- •Введення та редагування даних
- •Створення qbe – запиту на вибірку
- •Створення sql – запиту на вибірку
- •Запити на зміну бд
- •Insert into таблиця бд ([перелік полів таблиці])
- •Values (значення полів таблиці у відповідності зі структурою таблиці);
- •Insert into таблиця бд ([перелік полів таблиці])
- •4 Завдання до курсової (розрахунково-графічної) роботи
- •Література
- •Завдання для курсових і розрахунково-графічних робіт
- •Задача 6
- •Задача 7
- •Задача 8
- •Задача 9
- •Задача 10
- •Задача 19
- •Задача 20
- •Задача 21
- •Задача 25
- •Задача 26
- •Задача 27
- •Задача 28
- •Задача 29
Створення sql – запиту на вибірку
Відкрити вікно SQL- запиту можна із режиму ЗапросКонструктор та:
розкрити список кнопки панелі інструментів Вид і вибрати Режим SQL;
в контекстного меню вибрати Режим SQL;
в меню Вид вибрати Режим SQL.
В вікно, що відкривається потрібно занести SQL – інструкцію, яка вказує СУБД, що потрібно зробити з даними БД, щоб одержати очікувану таблицю запиту. Структура інструкції повинна вводитися в відповідності з такими правилами синтаксису:
параметри інструкції на вибірку повинні записуватись в такій послідовності:
SELECT <список полів запиту> [AS<псевдонім>]
FROM <список таблиць>
[WHERE<критерій фільтрації даних>]
[GROUP BY<список полів групування>]
[HAVING <критерії пошуку агрегатних даних>]
[ORDER BY<список полів сортування>];
ідентифікатори полів розділяються комами;
ідентифікатори, які мають розділовий знак (пропуск, дефіс тощо) потрібно брати в квадратні дужки;
якщо в різних таблицях є ідентифікатори, що повторюються, потрібно писати повну специфікацію поля (ім’я таблиці.ідентифікатор);
в кінці інструкції потрібно ставити розділовий знак „крапка з комою” (;);
якщо сортування ведеться в бік зменшення значень поля, в параметрі ORDER BY потрібно задавати ключове слово DESC;
вибірку всіх полів таблиці позначають символом *;
якщо вибране поле БД потрібно позначити іншим підписом, в параметрі SELECT ці імена з’єднуються службовим словом AS;
службові слова SQL- інструкції можна писати як великими так і малими літерами латині;
вважається, що інструкція SQL- запиту записується в один рядок; для продовження її на іншому рядку потрібно виконати команду [Ctrl+Enter].
Розглянемо ряд прикладів побудови та виконання SQL- запитів на вибірку:
Вибирати в окрему таблицю інформацію про всіх студентів.
SELECT *
FROM STUDENTI;
Знайти шифри груп будівельного факультету.
SELECT shifr_grypi
FROM GRUPI
WHERE nazva_fakultetu=’БФ’;
Вибрати усіх студентів університету, що отримують стипендію 250 грн.
SELECT *
FROM STUDENTI
WHERE stipendiya=250;
Роздрукувати всі групи факультету ФЕФ першого та другого курсів.
STUDENTI *
FROM GRUPI
WHERE nazva_fakultetu=’ФЕФ’ AND kurs<3;
Вибрати дані усіх груп 1 та 2 курсу за виключенням БФ.
STUDENTI *
FROM GRUPI
WHERE NOT nazva_fakultetu=’БФ’ AND kurs<3;
Вибирати лише тих студентів, які стипендію 300 та 305 грн.
SELECT *
FROM STUDENTI
WHERE stipendiya IN(300, 305);
Вибрати студентів, які одержують стипендію від 250 до 300 грн. включно.
SELECT *
FROM STUDENTI
WHERE stipendiya BETWEEN 250 AND 300;
Приведемо ще один приклад. Створимо запит по витратам на виплату стипендій по групам університету.
SELECT GRUPI.shifr_grypi, SUM(STUDENTI.stipendiya) AS [Сума]
FROM GRUPI INNER JOIN STUDENTI ON GRUPI.shifr_grypi = STUDENTI.shifr_grypi
GROUP BY GRUPI.shifr_grypi;
В цій інструкції параметр
<Таблиця1> INNER JOIN <Таблиця2> ON<поле1>=<поле2> вказує зв’язки між таблицями БД. В даному прикладі застосовано агрегатну функцію для знаходження суми
Необхідно вибрати студентів групи У-62, що здали вчасно зимову сесію 2007 року.
SELECT STUDENTI.PIP, AVG(OZINKI.ocinka) AS [Середня оцінка]
FROM (GRUPI INNER JOIN STUDENTI ON GRUPI.shifr_grypi = STUDENTI.shifr_grypi) INNER JOIN OZINKI ON STUDENTI.N_zalikovki = OZINKI.N_zalikovki
WHERE GRUPI.shifr_grypi="У-62" AND OZINKI.data BETWEEN #09/01/2007# AND #02/07/2008#
GROUP BY STUDENTI.PIP
HAVING AVG(OZINKI.ocinka)>=3;
Наступний приклад демонструє застосування в інструкції функції LIKE:
SELECT STUDENTI.N_zalikovki, STUDENTI.PIP, STUDENTI.stipendiya
FROM GRUPI INNER JOIN STUDENTI ON GRUPI.shifr_grypi = STUDENTI.shifr_grypi
WHERE GRUPI.shifr_grypi="М-42" AND STUDENTI.PIP LIKE "К*";
Тут вибираються із групи М-42 всі студенти, прізвище яких починається на літеру „К”.