Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Лабораторная работа №3, дисциплина "Базы данных", СПбГУАП, весенний семестр 2020
- -- Fedoriy D.A.//4742
- -- Включение форсирования ограничений ссылочной целостности
- PRAGMA foreign_keys = ON;
- -- ОХимия схемы данных
- -- DROP TABLE IF EXISTS Table1 ...
- -- ваш код здесь!
- DROP TABLE IF EXISTS Клиент;
- DROP TABLE IF EXISTS Сотрудник;
- DROP TABLE IF EXISTS Заказ;
- DROP TABLE IF EXISTS Материал;
- DROP TABLE IF EXISTS Тип;
- DROP TABLE IF EXISTS Вещь;
- DROP TABLE IF EXISTS Результат;
- DROP TABLE IF EXISTS Попытка;
- DROP TABLE IF EXISTS Химия;
- DROP TABLE IF EXISTS ХимияДляПопытки;
- -- Конец очистки
- -- Создание схемы данных
- -- CREATE TABLE Table1 ...
- CREATE TABLE Клиент (
- Телефон CHAR(12) NOT NULL,
- ФИО VARCHAR(40) NOT NULL,
- ДатаРождения DATE NOT NULL,
- Пол CHAR(1),
- Email VARCHAR(40),
- PRIMARY KEY(Телефон));
- CREATE TABLE Сотрудник (
- id INTEGER NOT NULL CHECK (id>0),
- ФИ VARCHAR(30) NOT NULL,
- Материал VARCHAR(80) NOT NULL,
- Оклад DECIMAL(10,2) NOT NULL CHECK (Оклад>0),
- PRIMARY KEY(id));
- CREATE TABLE Заказ (
- Стоимость DECIMAL(10,2) CHECK (Стоимость > Компенсация),
- ТелефонКлиента CHAR(12) NOT NULL REFERENCES Клиент(Телефон),
- КодСотрудника INTEGER NOT NULL REFERENCES Сотрудник(id),
- ПриемЗаказа DATE NOT NULL,
- ФактДата DATE NOT NULL CHECK (ФактДата > DATE(ПриемЗаказа, '+ 2 DAY')),
- НомерЗаказа INTEGER NOT NULL,
- Компенсация DECIMAL(10,2),
- PRIMARY KEY(НомерЗаказа));
- CREATE TABLE Материал (
- МатериалВещи CHAR(20) NOT NULL,
- КомпенсацияМатериала DECIMAL(10,2) NOT NULL,
- PRIMARY KEY(МатериалВещи));
- CREATE TABLE Тип (
- ТипВещи CHAR(20) NOT NULL,
- МатВещи CHAR(20) NOT NULL,
- КоэффКомпенсации DECIMAL(10,2) NOT NULL,
- ТребованияОбработки CHAR(25) NOT NULL,
- PRIMARY KEY(ТипВещи, МатВещи));
- --Foreign key (МатВещи) references Материал(МатериалВещи));
- CREATE TABLE Вещь (
- КодЗаказа INTEGER NOT NULL,
- Наименование INTEGER NOT NULL,
- ТипокВещи CHAR(20) NOT NULL,
- МатериалВещи CHAR(20) NOT NULL,
- PRIMARY KEY (КодЗаказа, Наименование),
- FOREIGN KEY (КодЗаказа) REFERENCES Заказ(НомерЗаказа));
- --Foreign key (ТипокВещи) references Тип(ТипВещи),
- --Foreign key (МатериалВещи) references Тип(МатВещи));
- CREATE TABLE Результат (
- Результат VARCHAR(35) NOT NULL PRIMARY KEY);
- CREATE TABLE Попытка (
- КодСотрудника INTEGER NOT NULL,
- НомерПопытки INTEGER NOT NULL,
- ДатаПопытки DATE NOT NULL,
- КодЗаказа INTEGER NOT NULL,
- НаименованиеВещи INTEGER NOT NULL,
- РезультатДляВещи VARCHAR(30) NOT NULL,
- PRIMARY KEY(НомерПопытки, КодЗаказа, НаименованиеВещи));
- --Foreign key (КодСотрудника) references Сотрудник(id),
- --Foreign key (КодЗаказа) references Вещь(НомерЗаказа),
- --Foreign key (НаименованиеВещи) references Вещь(Наименование),
- --Foreign key (РезультатДляВещи) references Результат(Результат));
- CREATE TABLE Химия (
- Название VARCHAR(30) NOT NULL,
- PRIMARY KEY(Название));
- CREATE TABLE ХимияДляПопытки (
- Название VARCHAR(30) NOT NULL,
- НомерПопытки INTEGER NOT NULL,
- КодЗаказа INTEGER NOT NULL,
- НаименованиеВещи INTEGER NOT NULL,
- --Foreign key (НомерПопытки) references Попытка(НомерПопытки),
- --Foreign key (КодЗаказа) references Попытка(НомерЗаказа),
- --Foreign key (НаименованиеВещи) references Попытка(Наименование),
- FOREIGN KEY (Название) REFERENCES Химия(Название));
- -- Конец заполнения схем данных
- -- Заполнение данными
- -- INSERT INTO Table1 ...
- INSERT INTO Клиент VALUES ('79041315574','Андреев И.О.','13.05.1990','М','AndDrey@gmail.com');
- INSERT INTO Клиент VALUES ('79649167692','Морозов А.В.','01.01.1999','М','Anatoliy72rus@tripper.ya');
- INSERT INTO Сотрудник VALUES ('1337','Григорий','Оператор утюга','73000,00');
- INSERT INTO Сотрудник VALUES ('4444','Форман И.В','Рабочий сферы обслуживания','20000,00');
- INSERT INTO Заказ VALUES ('120.00','79041315574','1337','2020-05-13','2020-05-17','10','70.00');
- INSERT INTO Заказ VALUES ('500.00','79649167692','4444','2020-05-08','2020-05-12','20','200.00');
- INSERT INTO Материал VALUES ('Шелк','1200.00');
- INSERT INTO Материал VALUES ('Полиэстер','180.00');
- INSERT INTO Материал VALUES ('Шерсть','750.00');
- INSERT INTO Тип VALUES ('Пальто','Шерсть','4.75','Не утюжить');
- INSERT INTO Тип VALUES ('Шарф','Шелк','0.73','Не более 30 гр.');
- INSERT INTO Тип VALUES ('Штаны','Полиэстер','1.3','Холодная вода, не утюжить');
- INSERT INTO Вещь VALUES ('10','17856','Шарф','Шелк');
- INSERT INTO Вещь VALUES ('20','12864','Штаны','Полиэстер');
- INSERT INTO Результат VALUES ('Вещь испорчена');
- INSERT INTO Результат VALUES ('Вещь очищена');
- INSERT INTO Результат VALUES ('Очистить не удалось, но и хуже не стало');
- INSERT INTO Попытка VALUES ('4444','1','09.05.2020','20','12864','Вещь испорчена');
- INSERT INTO Попытка VALUES ('1337','5','14.05.2020','10','17856','Вещь очищена');
- INSERT INTO Химия VALUES ('Dr.Schnell для ковров');
- INSERT INTO Химия VALUES ('Pramol антивспениватель');
- INSERT INTO Химия VALUES ('Solemate');
- INSERT INTO Химия VALUES ('Tapi-3000');
- INSERT INTO Химия VALUES ('Белизна');
- INSERT INTO ХимияДляПопытки VALUES ('Solemate','5','10','17856');
- INSERT INTO ХимияДляПопытки VALUES ('Tapi-3000','1','20','12864');
- -- Конец заполнения данных
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement