Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаба 1-13 3ий сем (Задания) / КИТ_лр6_access_запросы.doc
Скачиваний:
39
Добавлен:
15.06.2014
Размер:
967.17 Кб
Скачать
    1. Sql-запросы на изменение базы данных Запросы на обновление

Общий вид таких запросов следующий:

UPDATEтаблица

SET поле=значение

WHEREусловия

Пример 9.11.Создать запрос для выполнения следующей операции: для всех каменщиков и штукатуров, имеющих разряд не ниже пятого, установить шифр объекта П80 (аналогичная задача решалась в примере 7.1).

UPDATE Рабочие

SET [Шифр объекта] = "П100"

WHERE ((Профессия="штукатур") OR (Профессия="каменщик")) AND (Разряд>=5);

Пример 9.12.Создать запрос для выполнения следующей операции: снять всех рабочих с объектов заказчика “Автозавод”.

UPDATE Объекты INNER JOIN Рабочие ON Объекты.[Шифр объекта]=

Рабочие.[Шифр объекта]

SET Рабочие.[Шифр объекта] = Null

WHERE (Объекты.Заказчик="Автозавод");

Здесь требуется изменять значения поля Шифр объекта в таблице Рабочие, но при этом используется информация из таблицы Объекты, где указаны названия заказчиков. Поэтому в команде используется раздел INNERJOIN(связь между таблицами), и перед именами полей указываются имена таблиц. ЗначениеNull, присваиваемое полю Шифр объекта, обозначает, что это поле становится пустым. Важно понимать, что значениеNull– это не то же самое, что пустая строка (“”).

Запросы на удаление

Общий вид таких запросов следующий:

DELETE FROM таблица WHERE условие

Пример 9.13.Создать запрос для удаления данных обо всех рабочих, имеющих разряд не выше второго и не имеющих допуска к работам на высоте (аналогичная задача решалась в примере 7.1).

DELETE

FROM Рабочие

WHERE (Разряд<=2) AND ([Допуск на высоту]=False);

    1. Параметрические sql-запросы

Как и в QBE-запросах, вместо конкретных величин в параметрическихSQL-запросах указываются тексты сообщений (подсказок), которые должны выводиться на экран при выполнении запроса. Эти подсказки заключаются в квадратные скобки.

Пример 9.14.Создать запрос для получения списка рабочих заданной профессии, имеющих разряд не ниже заданного. В списке, получаемом в результате выполнения запроса, должны быть указаны табельные номера, фамилии и разряды рабочих. Профессия и разряд, должны вводиться пользователем при выполнении запроса (эта же задача решалась в примере 8.1).

SELECT [Табельный номер], Фамилия, Разряд

FROM Рабочие

WHERE (Профессия=[Укажите профессию]) AND (Разряд>=[Укажите разряд]);

При выполнении этого запроса на экран будут выводиться подсказки Укажите профессиюиУкажите разряд.

    1. Создание sql-запросов. Задания для самостоятельного выполнения

Для создания SQL-запроса “с нуля” (т.е. без предварительного созданияQBE-запроса) необходимо выполнить следующее.

  1. Перейти на вкладку Запросы. Нажать кнопкуСоздать.

  2. Выбрать команду Конструктор. НажатьOK. На экран выводится пустой бланк для созданияQBE-запроса, а также окноДобавление таблицы.

  3. Закрыть окно Добавление таблицы.

  4. Выбрать команду Вид – Режим SQL.

  5. В появившемся пустом окне ввести текст SQL-запроса. Сохранить запрос.

  6. Для выполнения запроса нажать кнопку Запуск(с восклицательным знаком), или выбрать командуВид – Режим таблицы, или закрыть запрос и выполнить его нажатием кнопкиОткрыть.

Предлагается самостоятельно создать следующие SQL-запросы (не создавая предварительноQBE-запросы):

а) список всех объектов, представляющих собой жилые дома или офисы. Для каждого объекта должны указываться все данные, имеющиеся в таблице Объекты. Список объектов должен быть упорядочен по названию заказчика, а для каждого заказчика – по шифру объекта;

б) список всех рабочих, занятых на объектах, где заказчиком является автозавод. Для каждого рабочего указывается табельный номер, фамилия, профессия, шифр объекта. Список должен быть упорядочен по фамилиям рабочих (если есть однофамильцы – то по табельному номеру);

в) то же, что в задании б), но для произвольного заказчика. Название заказчика должно вводиться пользователем при выполнении запроса;

г) список всех объектов. Для каждого объекта должны указываться все данные, имеющиеся в таблице Объекты, а также количество дней, оставшихся до окончания строительства. Для вычисления количества дней до конца строительства использовать формулу: [дата окончания]-date()(здесьdate()– стандартная функция, возвращающая текущую дату);

д) то же, что в задании г), но только для объектов, у которых до окончания строительства остается не более 30 дней;

е) список всех объектов. Для каждого объекта указывается его шифр, заказчик, вид объекта и количество занятых рабочих. Список должен быть отсортирован по шифрам объектов (по алфавиту);

ж) повышение стоимости контракта на 20% для всех объектов – офисов. Указание: в разделеSETиспользовать выражение примерно следующего вида: [Стоимость контракта] = [Стоимость контракта]*1,2;

з) удаление данных об указанном рабочем (фамилия рабочего должна вводиться пользователем).