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

лаба 6 / лаба6

.txt
Скачиваний:
14
Добавлен:
17.06.2021
Размер:
6.25 Кб
Скачать
USE СкладЛаба5
GO

/*Выборка данных из таблиц и представлений*/


/*1*/
SELECT *
FROM Клиент
WHERE ФИОРуководителя LIKE '%гор%' AND (КодРегиона NOT BETWEEN 101 AND 200 OR КодРегиона IS NULL )
GO

/*2*/
/*соответсвие*/
SELECT *
FROM Поставщик
WHERE УсловияОплаты NOT LIKE 'Предоплата' OR (КодРегиона NOT BETWEEN 101 AND 200)
AND (КодРегиона NOT BETWEEN 301 and 400)
GO

/*3*/
SELECT *
FROM Регион
WHERE (Страна = 'Россия' AND Город != 'Москва')
OR (Страна = 'Беларусь' AND Город != 'Минск' AND Город != 'Гомель')
GO

/*4*/
SELECT *
FROM Товар
WHERE (КодВалюты = 'USD' AND Цена BETWEEN 200 AND 800)
OR (КодВалюты = 'EUR' AND Цена BETWEEN 100 AND 500 OR Цена IS NULL)

/*5*/
SELECT Заказ.КодКлиента , Заказ.КодТовара , Заказ.КодПоставщика, Клиент.ИмяКлиента, Товар.Наименование , Поставщик.ИмяПоставщика
FROM Заказ
INNER JOIN Поставщик ON Поставщик.КодПоставщика = Заказ.КодПоставщика
INNER JOIN Товар ON Товар.КодТовара = Заказ.КодТовара
INNER JOIN Клиент ON Клиент.КодКлиента = Заказ.КодКлиента
WHERE (Количество IS NULL ) OR (Количество NOT BETWEEN 2 AND 20)

/*6*/
SELECT СрокПоставки - ДатаЗаказа AS Просрочка, КодТовара , Заказ.КодКлиента , Клиент.ИмяКлиента , Количество
FROM Заказ
INNER JOIN Клиент ON Клиент.КодКлиента = Заказ.КодКлиента
WHERE КодПоставщика = 123 OR КодПоставщика = 456 AND СрокПоставки - ДатаЗаказа > 45
ORDER BY ДатаЗаказа DESC , ИмяКлиента , Количество

/*7*/
SELECT *
FROM Запрос3
WHERE (Наименование LIKE '%тер%' OR Наименование LIKE '%тор%' OR Наименование LIKE '%а')
AND (Количество BETWEEN 5 AND 10 OR ЕдиницаИзм = 'штука' OR ЕдиницаИзм = 'литр')


/*--------------------------------------------------------------------------------------------------------------------------------------*/


/*Обновление данных в таблицах 1*/
UPDATE Клиент
SET ИмяКлиента = 'ГП ”Верас М”' , ФИОРуководителя = NULL
WHERE ИмяКлиента = 'ГП ”Верас”'

/*Обновление данных в таблицах 2*/
UPDATE Поставщик
SET УсловияОплаты = 'По договору поставки'
WHERE (ИмяПоставщика LIKE '%н' OR ИмяПоставщика LIKE '%т' OR ИмяПоставщика LIKE '%л')
AND (ИмяПоставщика NOT LIKE 'ЗАО%' OR ИмяПоставщика NOT LIKE 'ОАО%')

/*Обновление данных в таблицах 3*/
UPDATE Товар
SET КодВалюты = 'RUR' , Цена = Цена / 285
WHERE Цена BETWEEN 100000 AND 1000000
UPDATE Товар
SET КодВалюты = 'USD' , Цена = Цена / 9100
WHERE Цена > 1000000

/*Обновление данных в таблицах 4*/
UPDATE Заказ
SET СрокПоставки =
( CASE
WHEN (ДатаЗаказа < '15.10.2021') THEN ДатаЗаказа + 14
WHEN (ДатаЗаказа >= '15.10.2021') THEN ДатаЗаказа +10
ELSE ДатаЗаказа + 20
END )



/*Добавление*/
INSERT INTO Валюта
VALUES ('GRV','Украинские гривны',0.01,250)
GO


INSERT INTO Товар
VALUES (666,'ПК-клавиатура','штука',2630,'GRV','Да')
INSERT INTO Товар
VALUES (777,'Разъем USB','штука',135,'GRV','Да')
INSERT INTO Товар
VALUES (888,'Принтер Lexmark','штука',12790,'GRV','Да')
GO


INSERT INTO Заказ(КодКлиента,КодТовара,Количество,КодПоставщика)
VALUES(4,666,17,345)
INSERT INTO Заказ(КодКлиента,КодТовара,Количество,КодПоставщика)
VALUES(5,777,5,234)
INSERT INTO Заказ(КодКлиента,КодТовара,Количество,КодПоставщика)
VALUES(3,888,14,456)
INSERT INTO Заказ(КодКлиента,КодТовара,Количество,КодПоставщика)
VALUES(5,666,9,345)
GO


/*удаление строк*/
ALTER TABLE Товар DROP CONSTRAINT FK_Товар_Валюта
DELETE FROM Валюта
WHERE КодВалюты = 'GRV'
GO


/*удаление таблицы регион*/
EXEC sp_fkeys 'Регион'
GO
ALTER TABLE Клиент DROP CONSTRAINT FK_Клиент_Регион -- первая команда
ALTER TABLE Поставщик DROP CONSTRAINT FK_Поставщик_Регион -- первая команда
DROP TABLE Регион -- вторая команда
GO


/*удаление таблицы поставщик*/
ALTER TABLE Заказ DROP CONSTRAINT FK_Заказ_Поставщик -- первая команда

DROP TABLE Поставщик -- вторая команда
GO


/*удаление предстовления*/
DROP VIEW Запрос3 ;
GO
SET DATEFORMAT dmy
SELECT КодЗаказа, КодТовара , Заказ.КодКлиента , Клиент.ИмяКлиента , Количество, DATEDIFF(day,ДатаЗаказа,СрокПоставки) as просрочка

FROM Заказ
INNER JOIN Клиент ON Клиент.КодКлиента = Заказ.КодКлиента
WHERE КодПоставщика = 123 OR КодПоставщика = 456 AND DATEDIFF(day,ДатаЗаказа,СрокПоставки) < 45
ORDER BY ДатаЗаказа DESC , ИмяКлиента , Количество
Соседние файлы в папке лаба 6