Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа №5

.doc
Скачиваний:
10
Добавлен:
20.06.2014
Размер:
136.7 Кб
Скачать

Липецкий государственный технический университет

Кафедра автоматизированных систем управления

Лабораторная работа №5

по базам данных

Создание запросов

Студент

Филатов А.А.

подпись, дата

фамилия, инициалы

Группа

АС-09

Принял

Домашнев П.А.

ученая степень, звание

подпись, дата

фамилия, инициалы

Липецк 2012 г.

1. Задание

Составить и выполнить SQL запросы к ранее созданной базе данных в среде MS SQL Server. Составить 3 запроса по описанию модели из лабораторной работы №1. Предоставить текст запроса и его результат. Запросы должны использовать операторы INSERT, DELETE, UPDATE.

2. Диаграмма

Рисунок 1. Диаграмма

3. Запросы

3.1 INSERT

Формулирование: для всех завершенных и оцененных реализаций, в которых отсутствует исправления создать такие с записью "замечаний нет".

Текст запроса:

INSERT INTO Remark (execution_id, content)

SELECT T.execution_id, ‘Замечаний нет' AS content

FROM ( SELECT E.execution_id

FROM Execution E

WHERE E.date_end IS NOT NULL

AND E.rating IS NOT NULL

EXCEPT

SELECT E.execution_id

FROM Execution E INNER JOIN Remark R

ON E.execution_id = R.execution_id) T

Результат выполнения: (строк обработано: 7)

3.2 DELETE

Формулирование: удалить все заказы, которые не имеют ни одной реализации и заказ был оформлен более месяца назад.

Текст запроса:

DELETE FROM Zakaz

WHERE

(SELECT COUNT(*) FROM

(SELECT zakaz_id FROM Zakaz

EXCEPT

SELECT Z.zakaz_id FROM Zakaz Z, Execution E

WHERE E.zakaz_id = Z.zakaz_id

GROUP BY Z.zakaz_id) T

WHERE T.zakaz_id = Zakaz.zakaz_id) = 1

AND

DATEDIFF(day, date_add, GETDATE()) > 30

Результат запроса: (строк обработано: 1)

3.3 UPDATE

Формулирование: Всем неоплаченным товарам поставить скидку 5%, если заказчик сделал 3 и более заказов, и текущая скидка меньше 5%.

Текст запроса:

UPDATE Zakaz

SET discount = 5

WHERE

(SELECT COUNT(*)

FROM Zakaz Z

WHERE client_id = Z.client_id) > 3

AND (discount IS NULL

OR discount < 5)

AND date_pay IS NULL

Результат запроса: (строк обработано: 6)

Соседние файлы в предмете Базы данных