· 5 years ago · May 24, 2020, 04:14 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) 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),
47Primary key(НомерЗаказа));
48
49Create Table Материал (
50МатериалВещи char(20) not null,
51КомпенсацияМатериала decimal(10,2) not null,
52Primary key(МатериалВещи));
53
54Create Table Тип (
55ТипВещи char(20) not null,
56МатВещи char(20) not null,
57КоэффКомпенсации decimal(10,2) not null,
58ТребованияОбработки char(25) not null,
59Primary key(ТипВещи, МатВещи));
60--Foreign key (МатВещи) references Материал(МатериалВещи));
61
62Create Table Вещь (
63КодЗаказа integer not null,
64Наименование integer not null,
65ТипокВещи char(20) not null,
66МатериалВещи char(20) not null,
67Primary key (КодЗаказа, Наименование),
68Foreign key (КодЗаказа) references Заказ(НомерЗаказа));
69--Foreign key (ТипокВещи) references Тип(ТипВещи),
70--Foreign key (МатериалВещи) references Тип(МатВещи));
71
72Create Table Результат (
73Результат varchar(35) not null primary key);
74
75Create Table Попытка (
76КодСотрудника integer not null,
77НомерПопытки integer not null,
78ДатаПопытки date not null,
79КодЗаказа integer not null,
80НаименованиеВещи integer not null,
81РезультатДляВещи varchar(30) not null,
82Primary Key(НомерПопытки, КодЗаказа, НаименованиеВещи));
83--Foreign key (КодСотрудника) references Сотрудник(id),
84--Foreign key (КодЗаказа) references Вещь(НомерЗаказа),
85--Foreign key (НаименованиеВещи) references Вещь(Наименование),
86--Foreign key (РезультатДляВещи) references Результат(Результат));
87
88Create Table Химия (
89Название varchar(30) not null,
90Primary key(Название));
91
92Create Table ХимияДляПопытки (
93Название varchar(30) not null,
94НомерПопытки integer not null,
95КодЗаказа integer not null,
96НаименованиеВещи integer not null,
97--Foreign key (НомерПопытки) references Попытка(НомерПопытки),
98--Foreign key (КодЗаказа) references Попытка(НомерЗаказа),
99--Foreign key (НаименованиеВещи) references Попытка(Наименование),
100Foreign key (Название) references Химия(Название));
101-- Конец заполнения схем данных
102
103-- Заполнение данными
104-- INSERT INTO Table1 ...
105INSERT INTO Клиент VALUES ('79041315574','Андреев И.О.','13.05.1990','М','AndDrey@gmail.com');
106INSERT INTO Клиент VALUES ('79649167692','Морозов А.В.','01.01.1999','М','Anatoliy72rus@tripper.ya');
107
108INSERT INTO Сотрудник VALUES ('1337','Григорий','Оператор утюга','73000,00');
109INSERT INTO Сотрудник VALUES ('4444','Форман И.В','Рабочий сферы обслуживания','20000,00');
110
111INSERT INTO Заказ VALUES ('120.00','79041315574','1337','2020-05-13','2020-05-17','10','70.00');
112INSERT INTO Заказ VALUES ('500.00','79649167692','4444','2020-05-08','2020-05-12','20','200.00');
113
114INSERT INTO Материал VALUES ('Шелк','1200.00');
115INSERT INTO Материал VALUES ('Полиэстер','180.00');
116INSERT INTO Материал VALUES ('Шерсть','750.00');
117
118INSERT INTO Тип VALUES ('Пальто','Шерсть','4.75','Не утюжить');
119INSERT INTO Тип VALUES ('Шарф','Шелк','0.73','Не более 30 гр.');
120INSERT INTO Тип VALUES ('Штаны','Полиэстер','1.3','Холодная вода, не утюжить');
121
122INSERT INTO Вещь VALUES ('10','17856','Шарф','Шелк');
123INSERT INTO Вещь VALUES ('20','12864','Штаны','Полиэстер');
124
125INSERT INTO Результат VALUES ('Вещь испорчена');
126INSERT INTO Результат VALUES ('Вещь очищена');
127INSERT INTO Результат VALUES ('Очистить не удалось, но и хуже не стало');
128
129INSERT INTO Попытка VALUES ('4444','1','09.05.2020','20','12864','Вещь испорчена');
130INSERT INTO Попытка VALUES ('1337','5','14.05.2020','10','17856','Вещь очищена');
131
132INSERT INTO Химия VALUES ('Dr.Schnell для ковров');
133INSERT INTO Химия VALUES ('Pramol антивспениватель');
134INSERT INTO Химия VALUES ('Solemate');
135INSERT INTO Химия VALUES ('Tapi-3000');
136INSERT INTO Химия VALUES ('Белизна');
137
138INSERT INTO ХимияДляПопытки VALUES ('Solemate','5','10','17856');
139INSERT INTO ХимияДляПопытки VALUES ('Tapi-3000','1','20','12864');
140-- Конец заполнения данных