- •Міністерство освіти та науки україни Кіровоградський державний педагогічний університет імені Володимира Винниченка
- •Побудова методичних вказівок.
- •Вступ. Початок роботи з Access 2000.
- •Консультация
- •Запуск субд Access.
- •Лабораторна робота №1.
- •Теоретичні відомості
- •Лабораторна робота № 2
- •Теоретичні відомості:
- •Лабораторна робота № 3.
- •Теоретичні відомості
- •Запити на вибірку
- •Пошук записів або значень полів, що повторюються, в таблиці за допомогою майстра запитів
- •Перехресні запити
- •Запити з параметрами
- •Приклад побудови запиту
- •Виконання обчислень та підведення підсумків
- •Лабораторна робота № 4.
- •Теоретичні відомості
- •Команди модифікації даних
- •Додати новий запис в таблицю:
- •Insert into Сессия values (7,"Сидоров и.П.","Биология", 4, 30.06.04);
- •Insert into Сессия (№ п/п, Фио, Предмет, Оценка, Дата)
- •Values (7,"Сидоров и.П.","Биология", 4, 30.06.04); Модифікація записів:
- •Видалення записів
- •Вибірка даних
- •Вибірка з декількох таблиць
- •Обчислення усередині select
- •Групування даних
- •Сортування даних
- •Лабораторна робота № 5.
- •Теоретичні відомості
- •Види форм
- •Проектування та побудова форм
- •Панель інструментів
- •Кнопкові форми
- •Лабораторна робота № 6.
- •Теоретичні відомості
- •Механізми створення звітів
- •Редагування звіту
- •Властивості звіту
- •Виконання обчислень та підведення підсумків
- •Теми учбових розробок для самостійної роботи студентів
- •Приклади таблиць та їх полів для учбової розробки баз даних
Вибірка з декількох таблиць
Дуже часто виникає ситуація, коли вибірку даних треба проводити з відношення, яке є результатом злиття (join) двох інших відношень.
Для виконання операції такого роду в операторі SELECT після ключового слова FROM указується список таблиць, в яких здійснюється пошук даних. Після ключового слова WHERE вказується умова, по якій проводиться злиття. Для прикладу виконаємо такий запит: маючи таблиці 1 і 2 (Список і Консультация) отримати прізвища викладачів, які викладають математику, предмет, що вони викладають, та аудиторію, день і час консультації:
SELECT ФИО.Список, Предмет.Список, Аудитория.Консультация, День.Консультация, Время.Консультация FROM Список, Консультация
WHERE Предмет='Математика';
Слід звернути увагу на те, що коли в різних таблицях присутні однойменні поля, то для усунення неоднозначності перед ім'ям поля указується ім'я таблиці і знак "." (крапка). (Добре правило: ім'я таблиці указувати завжди!)
Природно, є можливість проводити злиття і більш ніж двох таблиць.
Обчислення усередині select
SQL дозволяє виконувати різні арифметичні операції над стовпцями результуючого відношення. В конструкції <список_вибірки> можна використовувати константи, функції і їх комбінації з арифметичними операціями і дужками. Наприклад, щоб взнати, який буде оклад викладачів (таблиця Список) після його підвищення на 29,8%, треба виконати команду:
SELECT ФИО, Оклад+Оклад*29,8 FROM Список;
В арифметичних вражения допускаються операції складання (+), віднімання (-), ділення (/), множення (*), а також різні функції (COS, SIN, ABS - абсолютне значення і т.д.).
В SQL також визначені так звані агрегуючі функції, які виконують дії над сукупністю однакових полів в групі записів. Серед них:
-
AVG(<ім’я поля>) - середнє по всіх значеннях даного поля
-
COUNT(<ім’я поля>) або COUNT (*) - число записів
-
MAX(<ім’я поля>) - максимальне зі всіх значень даного поля
-
MIN(<ім’я поля>) - мінімальне зі всіх значень даного поля
-
SUM(<ім’я поля>) - сума всіх значень даного поля
Слід враховувати, що кожна агрегуюча функція повертає єдине значення. Приклади: визначити мінімальний оклад викладачів:
SELECT MIN(Оклад) FROM Список;
підрахувати кількість викладачів:
SELECT COUNT(*) FROM Список;
Область дії даних функції можна обмежити за допомогою логічної умови. Наприклад, кількість викладачів, навантаження яких перевищує 20 годин:
SELECT COUNT(*) FROM Список WHERE Нагрузка>20;
Групування даних
Групування даних в операторі SELECT здійснюється ключовим словом GROUP і ключовим словом HAVING, за допомогою якого задаються умови розбиття записів на групи.
GROUP нерозривний пов'язано з агрегуючими функціями, без них воно практично не використовується. GROUP розділяє таблицю на групи, а агрегуюча функція обчислює для кожної з них підсумкове значення. Визначимо для прикладу кількість викладачівз кожного предмету в таблиці Список:
SELECT Предмет, count(Предмет)
FROM Список
GROUP Предмет;
Ключове слово HAVING працює таким чином: спочатку GROUP розбиває рядки на групи, потім на отримані набори накладаються умови HAVING. Наприклад, усунемо з попереднього запиту ті предмети, які викладають по одному викладачу:
SELECT Предмет, count(Предмет)
FROM Список
GROUP Предмет;
HAVING COUNT(*)>1;
WHERE не допускає використання агрегуючих функцій.
