Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Access i SQL.doc
Скачиваний:
18
Добавлен:
07.02.2016
Размер:
1.2 Mб
Скачать

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));

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]