- •Робота в субд Access з використанням sql
- •7.080203 Системний аналіз і управління
- •1 Лабораторна робота № 1
- •1.1 Теоретичні відомості
- •1.2 Створення таблиць бази даних
- •1.3 Контрольні питання
- •1.4 Індивідуальні завдання
- •2 Лабораторна робота №2
- •2.1 Створення запитів на вибірку
- •2.1.1 Використання умов у запитах
- •2.1.2 Створення обчислювальних полів
- •2.1.3 Запити з параметром
- •2.1.4 Пошук записів, що не мають зв'язаних в іншій таблиці
- •2.2 Контрольні питання
- •2.3 Індивідуальні завдання
- •3 Лабораторна робота №3
- •3.1 Використання підсумків у запитах
- •3.2 Перехресні запити
- •Выражение1: "Квартал " & Format( [dat] ;"q")
- •3.3 Контрольні питання
- •3.4 Індивідуальні завдання
- •4 Лабораторна робота №4
- •4.1 Запити на оновлення
- •4.2 Створення нової таблиці
- •4.3 Вставка даних з іншої таблиці
- •4.4 Вилучення даних з таблиці
- •4.5 Контрольні питання
- •4.6 Індивідуальні завдання
- •5 Лабораторна робота № 5
- •5.1 ІнструкціяSelect мовиSql
- •5.1.1 Розділ select
- •5.1.2 Розділ from
- •5.1.3 Розділ where
- •5.1.4 Розділ group by
- •5.1.5 Розділ having
- •5.1.6 Розділ order by
- •5.1.7 Оператор union
- •5.1.8 Розділ into
- •5.2 Інструкція insert
- •5.3 Інструкція update
- •5.4ІнструкціяDelete
- •5.5 Інструкція transform
- •5.6 Предикати
- •5.7 Контрольні питання
- •5.8 Індивідуальні завдання
- •Література
5.1.8 Розділ into
Синтаксис: INTO нова таблиця
Результати запиту будуть записані в нову таблицю з вказаним іменем і потрібною структурою, яка створюється автоматично. Якщо таблиця з таким іменем вже існує, то вона буде вилучена.
Задача 5.11. Записати до нової таблиці відомості про загальні заробітки всіх робітників (див. задачі 3.1 та 4.2).
SELECT tvidom.tn AS [Табельний №], tvidom.fio AS Прізвище,
Sum(tzarobitok.zar) AS Сума,
Avg(tzarobitok.zar) AS [Середнє за день]
INTO itogo
FROM tvidom LEFT JOIN tzarobitok ON tvidom.tn = tzarobitok.tn
GROUP BY tvidom.tn, tvidom.fio
ORDER BY tvidom.fio ;
5.2 Інструкція insert
Ця інструкція використовується для вставки нових рядків до існуючої таблиці. Таблиця з вказаним іменем повинна бути створена заздалегідь, або треба використовувати команду SELECT INTO.
Синтаксис команди:
INSERT INTO ім’я існуючої таблиці
SELECT тіло запиту
Вираз SELECT тіло запиту – це запит на вибірку з однієї або декількох таблиць, записаний за звичайними правилами.
Задача 5.12. Записати до архівної таблиці itogo, яка містить відомості про загальні заробітки всіх робітників (див. задачу 5.11) дані про заробітки робітників за період з 1.1.2006р. до 30.6.2006р.
INSERT INTO itogo
SELECT tvidom.tn AS [Табельний №], tvidom.fio AS Прізвище, (tzarobitok.zar) AS Сума,
(tzarobitok.zar) AS [Середнє за день]
FROM tvidom INNER JOIN tzarobitok ON tvidom.tn=tzarobitok.tn
WHERE tzarobitok.dat BETWEEN #1/1/2006# AND #6/30/2006#
ORDER BY tvidom.fio ;
Дату запишемо в американському форматі в символах # і використаємо функцію BETWEEN для завдання проміжку дат.
Інструкція INSERT може використовуватися й для вставки конкретних значень до одного рядка. Тоді вона має вигляд:
Синтаксис команди:
INSERT INTO ім’я існуючої таблиці (перелік стовпців)
VALUES ( перелік значень )
Можна не вказувати перелік стовпців, тоді значення будуть вставлені до всіх стовпців, починаючи з першого. Самі значення вказуються після ключового слова VALUES. Кількість стовпців в переліку та кількість значень повинні співпадати. Значення повинні мати той же тип, що й стовпці, до яких вони повинні бути вставлені. Не можна задавати значення стовпців–лічильників.
Задача 5.13. Вставити нові дані до таблиці tzarobitok.
INSERT INTO tzarobitok
Values (42 , #02/02/2006# , 100)
В таблиці tzarobitok записані табельний номер, дата роботи та заробіток. В цьому випадку перелік полів можна не вказувати.
INSERT INTO tzarobitok (tn , zar)
VALUES (42 , 100)
Якщо за замовчанням в конструкторі таблиці встановлено, що дата роботи дорівнює поточній даті, то це поле буде заповнено. Якщо значення за замовчанням не визначено, це поле залишиться вільним.
5.3 Інструкція update
Ця інструкція виконує запит на оновлення даних в таблиці.
Синтаксис команди:
UPDATE ім’я таблиці
SET ім’я поля = вираз
WHERE критерій відбору
Зі слова SET починається блок, що визначає список полів, для яких виконуватимуться зміни. В одній команді дозволяється змінювати значення декількох полів. Вираз може містити константи, змінні та поля, навіть ті, що змінюються. Змінення до таблиці вносяться після виконання команди, тобто вираз використовує старі значення полів. Дані змінюються тільки в рядках, які задовольняють умовам, записаним після слова WHERE.
Приклад 5.14. Робітникам, які мають дітей, збільшити нараховану суму на 20 грн.
Перший спосіб. Використаємо існуючий зв’язок по полю tn (табельний номер) між таблицями tvidom і tzarobitok. Обмеження на кількість дітей вкажемо в умові відбору WHERE
UPDATE tvidom INNER JOIN tzarobitok
ON tvidom.tn = tzarobitok.tn
SET tzarobitok.zar = [tzarobitok]![zar]+20
WHERE (((tvidom.ditej)>0)) ;
Другий спосіб. Поле, для якого встановлений зв’язок між таблицями tvidom і tzarobitok, вкажемо в умові відбору WHERE.
UPDATE tzarobitok, tvidom
SET tzarobitok.zar = tzarobitok!zar+20
WHERE (((tzarobitok.tn)=[tvidom].[tn]) AND ((tvidom.ditej)>0));