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

5.4ІнструкціяDelete

Інструкція вилучає рядки з вказаної таблиці. Синтаксис:

DELETE [список полів]

FROM ім’я таблиці AS псевдонім

WHERE умови вибору

В список полів треба включати поля, які входять до умов вибору. Якщо в конструкції FROM вказане ім’я однієї таблиці і відсутній роз­діл WHERE, список полів можна не вказувати. Якщо в конструкції FROM вказуються імена декількох таблиць, то треба вказати , з якої саме таблиці вилучати дані. Якщо між таблицями встановлено зв’язок типу "один–до–одного", то можна вилучати дані з однієї з них. Якщо між таблицями встановлено зв’язок типу "один–до–багатьох", то можна вилучати дані тільки з боку "багатьох".

Задача 5.15. Вилучити з таблиці tzarobitok відомості про заро­бітки робітників за вказаний рік. Рік вводити як параметр.

PARAMETERS [Введіть рік] Short;

DELETE tzarobitok .*, Year([tzarobitok]![dat])

FROM tzarobitok

WHERE (((Year([tzarobitok]![dat]))=[Введіть рік]));

5.5 Інструкція transform

Ця інструкція створює перехресний запит. Синтаксис:

TRANSFORM вираз із підсумковою функцією

Інструкція SELECT

PIVOT вираз

[ IN список заголовків стовпчиків]

Вираз із підсумковою функцією вказує, які саме підсумки та для яких полів будуть знайдені і записані до клітинок таблиці.

Інструкція SELECT записується за звичайними правилами, але обов’язково повинна мати розділ GROUP BY. Значення полів, вибра­них для угруповання, визначають заголовки підсумкових рядків. Їх може бути декілька.

PIVOT вираз – задає стовпець або вираз, значення якого викори­стовуються для заголовків стовпчиків.

Список заголовків стовпчиків після слова IN пишеться через кому і може містити перелік значень в лапках, який визначає їхній вигляд та порядок. Конструкція IN – необов’язкова.

Задача 5.16. Створити перехресний запит, до якого увійдуть загальні суми заробітку по кварталах для кожного підрозділу.

TRANSFORM Sum(tzarobitok.zar) AS [сума]

SELECT tvidom.pidrozdil, Sum(tzarobitok.zar) AS [Загальна сума]

FROM tvidom INNER JOIN tzarobitok

ON tvidom.tn = tzarobitok.tn

GROUP BY tvidom.pidrozdil

PIVOT "Квартал " & Format([dat],"q");

Інструкція відповідає запиту 3.4, результати роботи – рис. 3.8.

5.6 Предикати

Предикат EXISTS

Він перевіряє, що в підпорядкованому запиті існує бодай один рядок, який задовольняє умовам вибірки. В цьому випадку предикат приймає значення True (істина), а інакше – False (хибність). Немає значення, які саме значення повертає підпорядкований запит. Тому в підзапиті можна використовувати символ * замість конкретних полів. Використання підпорядкованих запитів – це не найкращий спосіб. Краще створювати запит на запиті.

Приклад 5.17. Вивести прізвища людей, яким була нарахована заробітна плата.

SELECT tvidom.fio FROM tvidom

WHERE

(((EXISTS (SELECT * FROM tzarobitok

WHERE tvidom.tn = tzarobitok.tn)) = True));

Предикати SOME, ANY, ALL

Синтаксис:

Вираз знак порівняння [SOME | ANY | ALL]

(підпорядкований-запит)

Тип даних виразу повинен бути сумісним з типом даних стовп­ця, який повертає підпорядкований запит. Регістр при порівнянні не враховується.

  • ALL – результат приймає значення істина, якщо істинні всі порівняння виразу зі значеннями стовпця підзапиту;

  • SOME або ANY – результат приймає значення істина, якщо значення виразу співпадають бодай з одним зі значень, що повертає підзапит.

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