· 5 years ago · May 23, 2020, 04:10 PM
1-- Лабораторная работа №3, дисциплина "Базы данных", СПбГУАП, весенний семестр 2020
2-- Fedoriy D.A.//4742
3
4-- Включение форсирования ограничений ссылочной целостности
5PRAGMA foreign_keys = ON;
6
7-- ОХимия схемы данных
8-- DROP TABLE IF EXISTS Table1 ...
9-- ваш код здесь!
10DROP TABLE IF EXISTS Клиент;
11DROP TABLE IF EXISTS Заказ;
12DROP TABLE IF EXISTS Сотрудник;
13DROP TABLE IF EXISTS Материал;
14DROP TABLE IF EXISTS Тип;
15DROP TABLE IF EXISTS Вещь;
16DROP TABLE IF EXISTS Результат;
17DROP TABLE IF EXISTS Попытка;
18DROP TABLE IF EXISTS ХимияДляПопытки;
19DROP TABLE IF EXISTS Химия;
20-- Конец очистки
21
22-- Создание схемы данных
23-- CREATE TABLE Table1 ...
24Create Table Клиент (
25Телефон char(12) not null,
26ФИО varchar(40) not null,
27ДатаРождения date not null,
28Пол char(1),
29Email varchar(40),
30Primary key(Телефон));
31
32Create Table Сотрудник (
33id integer not null check (id>0),
34ФИ varchar(30) not null,
35Материал varchar(80) not null,
36Оклад decimal(10,2) not null check (Оклад>0),
37Primary key(id));
38
39Create Table Заказ (
40Стоимость decimal(10,2) not null check (Стоимость > Компенсация),
41ТелефонКлиента char(12) not null references Клиент(Телефон),
42КодСотрудника integer not null references Сотрудник(id),
43ПриемЗаказа date not null,
44ФактДата date not null check (ФактДата > date(ПриемЗаказа, '+ 2 DAY')),
45НомерЗаказа integer not null,
46Компенсация decimal(10,2) not null,
47Primary key(НомерЗаказа));
48
49
50Create Table Материал (
51МатериалВещи varchar(20) not null,
52КомпенсацияМатериала decimal(10,2) not null,
53Primary key(МатериалВещи));
54
55Create Table Тип (
56ТипВещи varchar(20) not null,
57МатериалВещи varchar(20) not null references Материал(МатериалВещи),
58КоэффКомпенсации decimal(10,2) not null,
59ТребованияОбработки char(25) not null,
60Primary key(ТипВещи, МатериалВещи),
61Foreign key (МатериалВещи) references Материал(МатериалВещи));
62
63Create Table Вещь (
64КодЗаказа integer not null,
65Наименование integer not null,
66ТипВещи varchar(20) not null,
67МатериалВещи varchar (20) not null,
68Primary key (КодЗаказа, Наименование),
69Foreign key (КодЗаказа) references Заказ(НомерЗаказа),
70Foreign key (ТипВещи) references Тип(ТипВещи),
71Foreign key (МатериалВещи) references Тип(МатериалВещи));
72
73Create Table Результат (
74Результат varchar(35) not null primary key);
75
76Create Table Попытка (
77КодСотрудника integer not null,
78НомерПопытки integer not null,
79ДатаПопытки date not null,
80КодЗаказа integer not null,
81НаименованиеВещи integer not null,
82РезультатДляВещи varchar(30) not null,
83Primary Key(НомерПопытки, КодЗаказа, НаименованиеВещи),
84Foreign key (КодСотрудника) references Сотрудник(id),
85Foreign key (КодЗаказа) references Вещь(НомерЗаказа),
86Foreign key (НаименованиеВещи) references Вещь(Наименование),
87Foreign key (РезультатДляВещи) references Результат(Результат));
88
89
90Create Table Химия (
91Название varchar(30) not null,
92Primary key(Название));
93
94Create Table ХимияДляПопытки (
95Название varchar(30) not null,
96НомерПопытки integer not null,
97КодЗаказа integer not null,
98НаименованиеВещи integer not null,
99Foreign key (НомерПопытки) references Попытка(НомерПопытки),
100Foreign key (КодЗаказа) references Попытка(НомерЗаказа),
101Foreign key (НаименованиеВещи) references Попытка(Наименование),
102Foreign key (Название) references Химия(Название));
103-- Конец заполнения схем данных
104
105-- Заполнение данными
106-- INSERT INTO Table1 ...
107INSERT INTO Клиент VALUES ('+79041315574','Андреев И.О.','13.05.1990','М','AndDrey@gmail.com');
108INSERT INTO Клиент VALUES ('+79649167692','Морозов А.В.','01.01.1999','М','Anatoliy72rus@tripper.ya');
109
110INSERT INTO Сотрудник VALUES ('Григорий','1337','Оператор утюга','73000,00');
111INSERT INTO Сотрудник VALUES ('Форман И.В','4444','Рабочий сферы обслуживания','20000,00');
112
113INSERT INTO Заказ VALUES ('120,00','+79041315574','1337','13.05.2020','17.05.2020','10','70,00');
114INSERT INTO Заказ VALUES ('500,00','+79649167692','4444','08.05.2020','12.05.2020','20','200,00');
115
116INSERT INTO Материал VALUES ('Шелк','1200,00');
117INSERT INTO Материал VALUES ('Полиэстер','180,00');
118INSERT INTO Материал VALUES ('Шерсть','750,00');
119
120INSERT INTO Тип VALUES ('Пальто','Шерсть','4,75','Не утюжить');
121INSERT INTO Тип VALUES ('Шарф','Шелк','0,73','Не более 30 гр.');
122INSERT INTO Тип VALUES ('Штаны','Полиэстер','1,3','Холодная вода, не утюжить');
123
124INSERT INTO Вещь VALUES ('10','17856','Шарф','Шелк','Вещь очищена');
125INSERT INTO Вещь VALUES ('20','12864','Штаны','Полиэстер','Вещь испорчена');
126
127INSERT INTO Результат VALUES ('Вещь испорчена');
128INSERT INTO Результат VALUES ('Вещь очищена');
129INSERT INTO Результат VALUES ('Очистить не удалось, но и хуже не стало');
130
131INSERT INTO Попытка VALUES ('4444','1','09.05.2020','20','12864','Вещь испорчена');
132INSERT INTO Попытка VALUES ('1337','5','14.05.2020','10','17856','Вещь очищена');
133
134INSERT INTO Химия VALUES ('Dr.Schnell для ковров');
135INSERT INTO Химия VALUES ('Pramol антивспениватель');
136INSERT INTO Химия VALUES ('Solemate');
137INSERT INTO Химия VALUES ('Tapi-3000');
138INSERT INTO Химия VALUES ('Белизна');
139
140INSERT INTO ХимияДляПопытки VALUES ('Solemate','5','10','17856');
141INSERT INTO ХимияДляПопытки VALUES ('Tapi-3000','1','20','12864');
142-- Конец заполнения данных