DROP TABLE IF EXISTS `Справка+`;
CREATE TABLE `Справка+`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Слк` CHAR (4) NOT NULL
, `Код` CHAR (4) NOT NULL
, `Название` VARCHAR (50) NOT NULL
, CONSTRAINT `Ук\СПР` UNIQUE (`Слк`, `Код`)
);
INSERT INTO `Справка+` VALUES
(NULL, "ДОЛ", "РУК", "Должность - руководитель подразделения"),
(NULL, "ДОЛ", "ИПР", "Должность - инспектор"),
(NULL, "ДОЛ", "ИТР", "Должность - инструктор"),
(NULL, "ДОЛ", "ПРЕП", "Должность - преподаватель"),
(NULL, "ДОЛ", "ТЕХН", "Должность - технический работник"),
(NULL, "ДОЛ", "ЛАБР", "Должность - лаборант"),
(NULL, "ВИДН", "0", "Вид недостатка - несущественный"),
(NULL, "ВИДН", "1", "Вид недостатка - существенный"),
(NULL, "ВИДН", "2", "Вид недостатка - критический"),
(NULL, "ВИДИ", "БЕЗ", "Вид инструктажа - техника безопасности"),
(NULL, "ВИДИ", "ЮР", "Вид инструктажа - донесение юридических сведений"),
(NULL, "ТЕМ", "0", "Тема - определение степени тяжести недостатков"),
(NULL, "ТЕМ", "1", "Тема - общие положения работы ВУЗ-а")
;
SELECT "`Справка+` Table Content:" FROM `Справка+` WHERE 1=0;
SELECT * FROM `Справка+`;
DROP TABLE IF EXISTS `Занятие`;
CREATE TABLE `Занятие`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Регномер_занятия` CHAR (5) NOT NULL UNIQUE
, `Дата_проведения_занятия` DATE NOT NULL
);
INSERT INTO `Занятие` VALUES
(NULL, "00001", 1/2/2002),
(NULL, "00002", 2/3/2002),
(NULL, "00003", 7/9/2002)
;
SELECT "`Занятие` Table Content:" FROM `Занятие` WHERE 1=0;
SELECT * FROM `Занятие`;
DROP TABLE IF EXISTS `Тема занятия:ЗАН*СПР`;
CREATE TABLE `Тема занятия:ЗАН*СПР`
( `Ид\ЗАН` INT NOT NULL
, `Ид_ТЕМ\СПР` INT NOT NULL
, CONSTRAINT `ВК1\ТЕМЗ^ЗАН` FOREIGN KEY (`Ид\ЗАН`) REFERENCES `Занятие` (`Ид`)
, CONSTRAINT `ВК2\ТЕМЗ^СПР` FOREIGN KEY (`Ид_ТЕМ\СПР`) REFERENCES `Справка+` (`Ид`)
, CONSTRAINT `Ид\ТЕМЗ` PRIMARY KEY (`Ид\ЗАН`, `Ид_ТЕМ\СПР`)
);
INSERT INTO `Тема занятия:ЗАН*СПР` SET
`Ид\ЗАН` = (SELECT `Ид` FROM `Занятие` WHERE `Регномер_занятия` = "00001"),
`Ид_ТЕМ\СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк` = "ТЕМ" AND `Код` = "1");
INSERT INTO `Тема занятия:ЗАН*СПР` SET
`Ид\ЗАН` = (SELECT `Ид` FROM `Занятие` WHERE `Регномер_занятия` = "00002"),
`Ид_ТЕМ\СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк` = "ТЕМ" AND `Код` = "0");
INSERT INTO `Тема занятия:ЗАН*СПР` SET
`Ид\ЗАН` = (SELECT `Ид` FROM `Занятие` WHERE `Регномер_занятия` = "00003"),
`Ид_ТЕМ\СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк` = "ТЕМ" AND `Код` = "0");
SELECT "`Тема занятия:ЗАН*СПР` Table Content:" FROM `Тема занятия:ЗАН*СПР` WHERE 1=0;
SELECT * FROM `Тема занятия:ЗАН*СПР`;
DROP TABLE IF EXISTS `Персона`;
CREATE TABLE `Персона`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Код_персоны` CHAR (5) NOT NULL UNIQUE
, `ФИО` CHAR (100) NOT NULL
);
INSERT INTO `Персона` VALUES
(NULL, "00001", "Андреев Леонид Николаевич"),
(NULL, "00002", "Платонов Андрей Платонович"),
(NULL, "00003", "Достоевский Фёдор Михайлович"),
(NULL, "00004", "Чернышевский Николай Гаврилович"),
(NULL, "00005", "Толстой Лев Николаевич"),
(NULL, "00006", "Бунин Иван Алексеевич")
;
SELECT "`Персона` Table Content:" FROM `Персона` WHERE 1=0;
SELECT * FROM `Персона`;
DROP TABLE IF EXISTS `Охранник труда:ПЕРС`;
CREATE TABLE `Охранник труда:ПЕРС`
( `Ид\ПЕРС` INT NOT NULL
, CONSTRAINT `ВК\ОХР^ПЕРС` FOREIGN KEY (`Ид\ПЕРС`) REFERENCES `Персона` (`Ид`)
, CONSTRAINT `Ид\ОХР` PRIMARY KEY (`Ид\ПЕРС`)
);
INSERT INTO `Охранник труда:ПЕРС` SET `Ид\ПЕРС` = (SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00001");
INSERT INTO `Охранник труда:ПЕРС` SET `Ид\ПЕРС` = (SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00002");
SELECT "`Охранник труда:ПЕРС` Table Content:" FROM `Охранник труда:ПЕРС` WHERE 1=0;
SELECT * FROM `Охранник труда:ПЕРС`;
DROP TABLE IF EXISTS `Инспектор:ОХР`;
CREATE TABLE `Инспектор:ОХР`
( `Ид\ОХР` INT NOT NULL
, `Ид_ДОЛ\СПР` INT NOT NULL
, CONSTRAINT `ВК1\ИПР^ОХР` FOREIGN KEY (`Ид\ОХР`) REFERENCES `Охранник труда:ПЕРС` (`Ид\ПЕРС`)
, CONSTRAINT `ВК2\ИПР^СПР` FOREIGN KEY (`Ид_ДОЛ\СПР`) REFERENCES `Справка+` (`Ид`)
, CONSTRAINT `Ид\ИПР` PRIMARY KEY (`Ид\ОХР`)
);
INSERT INTO `Инспектор:ОХР` SET
`Ид\ОХР` = (SELECT `Ид\ПЕРС` FROM `Охранник труда:ПЕРС` WHERE `Ид\ПЕРС` =
(SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00001")),
`Ид_ДОЛ\СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк` = "ДОЛ" AND `Код` = "ИПР");
SELECT "`Инспектор:ОХР` Table Content:" FROM `Инспектор:ОХР` WHERE 1=0;
SELECT * FROM `Инспектор:ОХР`;
DROP TABLE IF EXISTS `Инструктор:ОХР`;
CREATE TABLE `Инструктор:ОХР`
( `Ид\ОХР` INT NOT NULL
, `Ид_ДОЛ\СПР` INT NOT NULL
, CONSTRAINT `ВК1\ИТР^ОХР` FOREIGN KEY (`Ид\ОХР`) REFERENCES `Охранник труда:ПЕРС` (`Ид\ПЕРС`)
, CONSTRAINT `ВК2\ИТР^СПР` FOREIGN KEY (`Ид_ДОЛ\СПР`) REFERENCES `Справка+` (`Ид`)
, CONSTRAINT `Ид\ИТР` PRIMARY KEY (`Ид\ОХР`)
);
INSERT INTO `Инструктор:ОХР` SET
`Ид\ОХР` = (SELECT `Ид\ПЕРС` FROM `Охранник труда:ПЕРС` WHERE `Ид\ПЕРС` =
(SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00002")),
`Ид_ДОЛ\СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк` = "ДОЛ" AND `Код` = "ИТР");
SELECT "`Инструктор:ОХР` Table Content:" FROM `Инструктор:ОХР` WHERE 1=0;
SELECT * FROM `Инструктор:ОХР`;
DROP TABLE IF EXISTS `Сотрудник:ПЕРС`;
CREATE TABLE `Сотрудник:ПЕРС`
( `Ид\ПЕРС` INT NOT NULL
, CONSTRAINT `ВК1\СОТР^ПЕРС` FOREIGN KEY (`Ид\ПЕРС`) REFERENCES `Персона` (`Ид`)
, CONSTRAINT `Ид\СОТР` PRIMARY KEY (`Ид\ПЕРС`)
);
INSERT INTO `Сотрудник:ПЕРС` SET `Ид\ПЕРС` = (SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00003");
INSERT INTO `Сотрудник:ПЕРС` SET `Ид\ПЕРС` = (SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00004");
INSERT INTO `Сотрудник:ПЕРС` SET `Ид\ПЕРС` = (SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00005");
INSERT INTO `Сотрудник:ПЕРС` SET `Ид\ПЕРС` = (SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00006");
SELECT "`Сотрудник:ПЕРС` Table Content:" FROM `Сотрудник:ПЕРС` WHERE 1=0;
SELECT * FROM `Сотрудник:ПЕРС`;
DROP TABLE IF EXISTS `Руководитель:СОТР`;
CREATE TABLE `Руководитель:СОТР`
( `Ид\СОТР` INT NOT NULL
, `Ид_ДОЛ\СПР` INT NOT NULL
, CONSTRAINT `ВК1\РУК^ПЕРС` FOREIGN KEY (`Ид\СОТР`) REFERENCES `Сотрудник:ПЕРС` (`Ид\ПЕРС`)
, CONSTRAINT `ВК2\РУК^СПР` FOREIGN KEY (`Ид_ДОЛ\СПР`) REFERENCES `Справка+` (`Ид`)
, CONSTRAINT `Ид\РУК` PRIMARY KEY (`Ид\СОТР`)
);
INSERT INTO `Руководитель:СОТР` SET
`Ид\СОТР` = (SELECT `Ид\ПЕРС` FROM `Сотрудник:ПЕРС` WHERE `Ид\ПЕРС` =
(SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00003")),
`Ид_ДОЛ\СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк` = "ДОЛ" AND `Код` = "РУК");
SELECT "`Руководитель:СОТР` Table Content:" FROM `Руководитель:СОТР` WHERE 1=0;
SELECT * FROM `Руководитель:СОТР`;
DROP TABLE IF EXISTS `Подразделение`;
CREATE TABLE `Подразделение`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Код_подразделения` CHAR (5) NOT NULL UNIQUE
, `Название_подразделения` CHAR (50) NOT NULL
, `Ид\РУК` INT NOT NULL
, CONSTRAINT `ВК\ПОД^РУК` FOREIGN KEY (`Ид\РУК`) REFERENCES `Руководитель:СОТР` (`Ид\СОТР`)
);
INSERT INTO `Подразделение` SET
`Ид` = NULL,
`Код_подразделения` = "00001",
`Название_подразделения` = "ФМЛ",
`Ид\РУК` = (SELECT `Ид\СОТР` FROM `Руководитель:СОТР` WHERE `Ид\СОТР` =
(SELECT `Ид\ПЕРС` FROM `Сотрудник:ПЕРС` WHERE `Ид\ПЕРС` =
(SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00003")))
;
SELECT "`Подразделение` Table Content:" FROM `Подразделение` WHERE 1=0;
SELECT * FROM `Подразделение`;
ALTER TABLE `Сотрудник:ПЕРС` ADD `Ид\ПОД` INT;
ALTER TABLE `Сотрудник:ПЕРС` ADD CONSTRAINT `ВК\СОТР^ПОД` FOREIGN KEY (`Ид\ПОД`) REFERENCES `Подразделение` (`Ид`);
UPDATE `Сотрудник:ПЕРС` SET `Ид\ПОД` = (SELECT `Ид` FROM `Подразделение` WHERE `Код_подразделения` = "00001");
SELECT * FROM `Сотрудник:ПЕРС`;
DROP TABLE IF EXISTS `Ответственный:СОТР`;
CREATE TABLE `Ответственный:СОТР`
( `Ид\СОТР` INT NOT NULL
, `Ид_ДОЛ\СПР` INT NOT NULL
, CONSTRAINT `ВК1\ОТВ^СОТР` FOREIGN KEY (`Ид\СОТР`) REFERENCES `Сотрудник:ПЕРС` (`Ид\ПЕРС`)
, CONSTRAINT `ВК2\ОТВ^СПР` FOREIGN KEY (`Ид_ДОЛ\СПР`) REFERENCES `Справка+` (`Ид`)
, CONSTRAINT `Ид\ОТВ` PRIMARY KEY (`Ид\СОТР`)
);
INSERT INTO `Ответственный:СОТР` SET
`Ид\СОТР` = (SELECT `Ид\ПЕРС` FROM `Сотрудник:ПЕРС` WHERE `Ид\ПЕРС` =
(SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00004")),
`Ид_ДОЛ\СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк` = "ДОЛ" AND `Код` = "ТЕХН");
INSERT INTO `Ответственный:СОТР` SET
`Ид\СОТР` = (SELECT `Ид\ПЕРС` FROM `Сотрудник:ПЕРС` WHERE `Ид\ПЕРС` =
(SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00005")),
`Ид_ДОЛ\СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк` = "ДОЛ" AND `Код` = "ПРЕП");
INSERT INTO `Ответственный:СОТР` SET
`Ид\СОТР` = (SELECT `Ид\ПЕРС` FROM `Сотрудник:ПЕРС` WHERE `Ид\ПЕРС` =
(SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00006")),
`Ид_ДОЛ\СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк` = "ДОЛ" AND `Код` = "ЛАБР");
SELECT "`Ответственный:СОТР` Table Content:" FROM `Ответственный:СОТР` WHERE 1=0;
SELECT * FROM `Ответственный:СОТР`;
DROP TABLE IF EXISTS `Инспекция`;
CREATE TABLE `Инспекция`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Регномер_инспекции` CHAR (5) NOT NULL UNIQUE
, `Дата_проведения` DATE NOT NULL
, `Общее_заключение_инспекции` CHAR (200) NOT NULL
);
INSERT INTO `Инспекция` VALUES
(NULL, "00001", 2/2/2002, "Недостатков не обнаружено"),
(NULL, "00002", 3/3/2003, "Обнаружено два критических недостатка"),
(NULL, "00003", 7/8/2003, "Обнаружен незначительный недостаток")
;
SELECT "`Инспекция` Table Content:" FROM `Инспекция` WHERE 1=0;
SELECT * FROM `Инспекция`;
DROP TABLE IF EXISTS `Инспектор в инспекции:ИНСП*ИПР`;
CREATE TABLE `Инспектор в инспекции:ИНСП*ИПР`
( `Ид\ИНСП` INT NOT NULL
, `Ид\ИПР` INT NOT NULL
, `Роль` CHAR (30) NOT NULL
, CONSTRAINT `ВК1\ИИ^ИНСП` FOREIGN KEY (`Ид\ИНСП`) REFERENCES `Инспекция` (`Ид`)
, CONSTRAINT `ВК2\ИИ^ИПР` FOREIGN KEY (`Ид\ИПР`) REFERENCES `Инспектор:ОХР` (`Ид\ОХР`)
, CONSTRAINT `Ид\ИИ` PRIMARY KEY (`Ид\ИНСП`, `Ид\ИПР`)
);
INSERT INTO `Инспектор в инспекции:ИНСП*ИПР` SET
`Ид\ИНСП` = (SELECT `Ид` FROM `Инспекция` WHERE `Регномер_инспекции` = "00001"),
`Ид\ИПР` = (SELECT `Ид\ОХР` FROM `Инспектор:ОХР` WHERE `Ид\ОХР` =
(SELECT `Ид\ПЕРС` FROM `Охранник труда:ПЕРС` WHERE `Ид\ПЕРС` =
(SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00001"))),
`Роль` = "Главный инспектор";
INSERT INTO `Инспектор в инспекции:ИНСП*ИПР` SET
`Ид\ИНСП` = (SELECT `Ид` FROM `Инспекция` WHERE `Регномер_инспекции` = "00002"),
`Ид\ИПР` = (SELECT `Ид\ОХР` FROM `Инспектор:ОХР` WHERE `Ид\ОХР` =
(SELECT `Ид\ПЕРС` FROM `Охранник труда:ПЕРС` WHERE `Ид\ПЕРС` =
(SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00001"))),
`Роль` = "Главный инспектор";
INSERT INTO `Инспектор в инспекции:ИНСП*ИПР` SET
`Ид\ИНСП` = (SELECT `Ид` FROM `Инспекция` WHERE `Регномер_инспекции` = "00003"),
`Ид\ИПР` = (SELECT `Ид\ОХР` FROM `Инспектор:ОХР` WHERE `Ид\ОХР` =
(SELECT `Ид\ПЕРС` FROM `Охранник труда:ПЕРС` WHERE `Ид\ПЕРС` =
(SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00001"))),
`Роль` = "Главный инспектор";
SELECT "`Инспектор в инспекции:ИНСП*ИПР` Table Content:" FROM `Инспектор в инспекции:ИНСП*ИПР` WHERE 1=0;
SELECT * FROM `Инспектор в инспекции:ИНСП*ИПР`;
DROP TABLE IF EXISTS `Подразделение в инспекции:ИНСП*ПОД`;
CREATE TABLE `Подразделение в инспекции:ИНСП*ПОД`
( `Ид\ИНСП` INT NOT NULL
, `Ид\ПОД` INT NOT NULL
, CONSTRAINT `ВК1\ИП^ИНСП` FOREIGN KEY (`Ид\ИНСП`) REFERENCES `Инспекция` (`Ид`)
, CONSTRAINT `ВК2\ИП^ПОД` FOREIGN KEY (`Ид\ПОД`) REFERENCES `Подразделение` (`Ид`)
, CONSTRAINT `Ид\ИП` PRIMARY KEY (`Ид\ИНСП`, `Ид\ПОД`)
);
INSERT INTO `Подразделение в инспекции:ИНСП*ПОД` SET
`Ид\ИНСП` = (SELECT `Ид` FROM `Инспекция` WHERE `Регномер_инспекции` = "00001"),
`Ид\ПОД` = (SELECT `Ид` FROM `Подразделение` WHERE `Код_подразделения` = "00001");
INSERT INTO `Подразделение в инспекции:ИНСП*ПОД` SET
`Ид\ИНСП` = (SELECT `Ид` FROM `Инспекция` WHERE `Регномер_инспекции` = "00002"),
`Ид\ПОД` = (SELECT `Ид` FROM `Подразделение` WHERE `Код_подразделения` = "00001");
INSERT INTO `Подразделение в инспекции:ИНСП*ПОД` SET
`Ид\ИНСП` = (SELECT `Ид` FROM `Инспекция` WHERE `Регномер_инспекции` = "00003"),
`Ид\ПОД` = (SELECT `Ид` FROM `Подразделение` WHERE `Код_подразделения` = "00001");
SELECT "`Подразделение в инспекции:ИНСП*ПОД` Table Content:" FROM `Подразделение в инспекции:ИНСП*ПОД` WHERE 1=0;
SELECT * FROM `Подразделение в инспекции:ИНСП*ПОД`;
DROP TABLE IF EXISTS `Выявленный недостаток:ИП`;
CREATE TABLE `Выявленный недостаток:ИП`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Ид\ИНСП` INT NOT NULL
, `Ид\ПОД` INT NOT NULL
, `НПП_недостатка` CHAR (5) NOT NULL
, `Ид_ВИДН\СПР` INT NOT NULL
, `Ид\ОТВ` INT NOT NULL
, `Сроки_устранения` CHAR (15) NOT NULL
, `Содержание_недостатка` CHAR (200) NOT NULL
, `Дата_устранения` DATE NULL
, CONSTRAINT `ВК1\ВЫЯН^ИП` FOREIGN KEY (`Ид\ИНСП`, `Ид\ПОД`) REFERENCES `Подразделение в инспекции:ИНСП*ПОД` (`Ид\ИНСП`, `Ид\ПОД`)
, CONSTRAINT `ВК2\ВЫЯН^СПР` FOREIGN KEY (`Ид_ВИДН\СПР`) REFERENCES `Справка+` (`Ид`)
, CONSTRAINT `ВК3\ВЫЯН^ОТВ` FOREIGN KEY (`Ид\ОТВ`) REFERENCES `Ответственный:СОТР` (`Ид\СОТР`)
, CONSTRAINT `Ук\ВЫЯН` UNIQUE (`Ид\ИНСП`, `Ид\ПОД`, `НПП_недостатка`)
);
INSERT INTO `Выявленный недостаток:ИП` SET
`Ид` = NULL,
`Ид\ИНСП` = (SELECT `Ид` FROM `Инспекция` WHERE `Регномер_инспекции` = "00002"),
`Ид\ПОД` = (SELECT `Ид` FROM `Подразделение` WHERE `Код_подразделения` = "00001"),
`НПП_недостатка` = "00001",
`Ид_ВИДН\СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк` = "ВИДН" AND `Код` = "2"),
`Ид\ОТВ` = (SELECT `Ид\СОТР` FROM `Ответственный:СОТР` WHERE `Ид\СОТР` =
(SELECT `Ид\ПЕРС` FROM `Сотрудник:ПЕРС` WHERE `Ид\ПЕРС` =
(SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00004"))),
`Сроки_устранения` = "7 дней",
`Содержание_недостатка` = "Серьёзная неисправность сервера",
`Дата_устранения` = 3/9/2003;
INSERT INTO `Выявленный недостаток:ИП` SET
`Ид` = NULL,
`Ид\ИНСП` = (SELECT `Ид` FROM `Инспекция` WHERE `Регномер_инспекции` = "00002"),
`Ид\ПОД` = (SELECT `Ид` FROM `Подразделение` WHERE `Код_подразделения` = "00001"),
`НПП_недостатка` = "00002",
`Ид_ВИДН\СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк` = "ВИДН" AND `Код` = "2"),
`Ид\ОТВ` = (SELECT `Ид\СОТР` FROM `Ответственный:СОТР` WHERE `Ид\СОТР` =
(SELECT `Ид\ПЕРС` FROM `Сотрудник:ПЕРС` WHERE `Ид\ПЕРС` =
(SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00005"))),
`Сроки_устранения` = "7 дней",
`Содержание_недостатка` = "Устаревшая версия серверного ПО",
`Дата_устранения` = 3/7/2003;
INSERT INTO `Выявленный недостаток:ИП` SET
`Ид` = NULL,
`Ид\ИНСП` = (SELECT `Ид` FROM `Инспекция` WHERE `Регномер_инспекции` = "00003"),
`Ид\ПОД` = (SELECT `Ид` FROM `Подразделение` WHERE `Код_подразделения` = "00001"),
`НПП_недостатка` = "00003",
`Ид_ВИДН\СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк` = "ВИДН" AND `Код` = "0"),
`Ид\ОТВ` = (SELECT `Ид\СОТР` FROM `Ответственный:СОТР` WHERE `Ид\СОТР` =
(SELECT `Ид\ПЕРС` FROM `Сотрудник:ПЕРС` WHERE `Ид\ПЕРС` =
(SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00006"))),
`Сроки_устранения` = "2 дня",
`Содержание_недостатка` = "Неверная настройка вспомогательного ПО",
`Дата_устранения` = 7/9/2003;
SELECT "`Выявленный недостаток:ИП` Table Content:" FROM `Выявленный недостаток:ИП` WHERE 1=0;
SELECT * FROM `Выявленный недостаток:ИП`;
DROP TABLE IF EXISTS `Инструктаж`;
CREATE TABLE `Инструктаж`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Регномер_инструктажа` CHAR (5) NOT NULL UNIQUE
, `Дата_проведения` DATE NOT NULL
, `Ид_ВИДИ\СПР` INT NOT NULL
, `Ид\ПОД` INT NOT NULL
, `Ид\ИТР` INT NOT NULL
, CONSTRAINT `ВК1\ИНСТ^СПР` FOREIGN KEY (`Ид_ВИДИ\СПР`) REFERENCES `Справка+` (`Ид`)
, CONSTRAINT `ВК2\ИНСТ^ПОД` FOREIGN KEY (`Ид\ПОД`) REFERENCES `Подразделение` (`Ид`)
, CONSTRAINT `ВК3\ИНСТ^ИТР` FOREIGN KEY (`Ид\ИТР`) REFERENCES `Инструктор:ОХР` (`Ид\ОХР`)
);
INSERT INTO `Инструктаж` SET
`Ид` = NULL,
`Регномер_инструктажа` = "00001",
`Дата_проведения` = 3/10/2003,
`Ид_ВИДИ\СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк` = "ВИДИ" AND `Код` = "БЕЗ"),
`Ид\ПОД` = (SELECT `Ид` FROM `Подразделение` WHERE `Код_подразделения` = "00001"),
`Ид\ИТР` = (SELECT `Ид\ОХР` FROM `Инструктор:ОХР` WHERE `Ид\ОХР` =
(SELECT `Ид\ПЕРС` FROM `Охранник труда:ПЕРС` WHERE `Ид\ПЕРС` =
(SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00002")));
INSERT INTO `Инструктаж` SET
`Ид` = NULL,
`Регномер_инструктажа` = "00002",
`Дата_проведения` = 4/11/2003,
`Ид_ВИДИ\СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк` = "ВИДИ" AND `Код` = "ЮР"),
`Ид\ПОД` = (SELECT `Ид` FROM `Подразделение` WHERE `Код_подразделения` = "00001"),
`Ид\ИТР` = (SELECT `Ид\ОХР` FROM `Инструктор:ОХР` WHERE `Ид\ОХР` =
(SELECT `Ид\ПЕРС` FROM `Охранник труда:ПЕРС` WHERE `Ид\ПЕРС` =
(SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00002")));
SELECT "`Инструктаж` Table Content:" FROM `Инструктаж` WHERE 1=0;
SELECT * FROM `Инструктаж`;
DROP TABLE IF EXISTS `Инструктируемый:ИНСТ*СОТР`;
CREATE TABLE `Инструктируемый:ИНСТ*СОТР`
( `Ид\ИНСТ` INT NOT NULL
, `Ид\СОТР` INT NOT NULL
, CONSTRAINT `ВК1\ИМЫЙ^ИНСТ` FOREIGN KEY (`Ид\ИНСТ`) REFERENCES `Инструктаж` (`Ид`)
, CONSTRAINT `ВК2\ИМЫЙ^СОТР` FOREIGN KEY (`Ид\СОТР`) REFERENCES `Сотрудник:ПЕРС` (`Ид\ПЕРС`)
, CONSTRAINT `Ид\ИМЫЙ` PRIMARY KEY (`Ид\ИНСТ`, `Ид\СОТР`)
);
INSERT INTO `Инструктируемый:ИНСТ*СОТР` SET
`Ид\ИНСТ` = (SELECT `Ид` FROM `Инструктаж` WHERE `Регномер_инструктажа` = "00001"),
`Ид\СОТР` = (SELECT `Ид\ПЕРС` FROM `Сотрудник:ПЕРС` WHERE `Ид\ПЕРС` =
(SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00005"));
INSERT INTO `Инструктируемый:ИНСТ*СОТР` SET
`Ид\ИНСТ` = (SELECT `Ид` FROM `Инструктаж` WHERE `Регномер_инструктажа` = "00002"),
`Ид\СОТР` = (SELECT `Ид\ПЕРС` FROM `Сотрудник:ПЕРС` WHERE `Ид\ПЕРС` =
(SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00006"));
SELECT "`Инструктируемый:ИНСТ*СОТР` Table Content:" FROM `Инструктируемый:ИНСТ*СОТР` WHERE 1=0;
SELECT * FROM `Инструктируемый:ИНСТ*СОТР`;
DROP TABLE IF EXISTS `Обучаемый на занятии:ЗАН*СОТР`;
CREATE TABLE `Обучаемый на занятии:ЗАН*СОТР`
( `Ид\ЗАН` INT NOT NULL
, `Ид\СОТР` INT NOT NULL
, CONSTRAINT `ВК1\ОБУЧ^ЗАН` FOREIGN KEY (`Ид\ЗАН`) REFERENCES `Занятие` (`Ид`)
, CONSTRAINT `ВК2\ОБУЧ^СОТР` FOREIGN KEY (`Ид\СОТР`) REFERENCES `Сотрудник:ПЕРС` (`Ид\ПЕРС`)
, CONSTRAINT `Ид\ОБУЧ` PRIMARY KEY (`Ид\ЗАН`, `Ид\СОТР`)
);
INSERT INTO `Обучаемый на занятии:ЗАН*СОТР` SET
`Ид\ЗАН` = (SELECT `Ид` FROM `Занятие` WHERE `Регномер_занятия` = "00001"),
`Ид\СОТР` = (SELECT `Ид\ПЕРС` FROM `Сотрудник:ПЕРС` WHERE `Ид\ПЕРС` =
(SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00005"));
INSERT INTO `Обучаемый на занятии:ЗАН*СОТР` SET
`Ид\ЗАН` = (SELECT `Ид` FROM `Занятие` WHERE `Регномер_занятия` = "00002"),
`Ид\СОТР` = (SELECT `Ид\ПЕРС` FROM `Сотрудник:ПЕРС` WHERE `Ид\ПЕРС` =
(SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00006"));
INSERT INTO `Обучаемый на занятии:ЗАН*СОТР` SET
`Ид\ЗАН` = (SELECT `Ид` FROM `Занятие` WHERE `Регномер_занятия` = "00002"),
`Ид\СОТР` = (SELECT `Ид\ПЕРС` FROM `Сотрудник:ПЕРС` WHERE `Ид\ПЕРС` =
(SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00003"));
INSERT INTO `Обучаемый на занятии:ЗАН*СОТР` SET
`Ид\ЗАН` = (SELECT `Ид` FROM `Занятие` WHERE `Регномер_занятия` = "00003"),
`Ид\СОТР` = (SELECT `Ид\ПЕРС` FROM `Сотрудник:ПЕРС` WHERE `Ид\ПЕРС` =
(SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00003"));
SELECT "`Обучаемый на занятии:ЗАН*СОТР` Table Content:" FROM `Обучаемый на занятии:ЗАН*СОТР` WHERE 1=0;
SELECT * FROM `Обучаемый на занятии:ЗАН*СОТР`;
DROP TABLE IF EXISTS `Инструктор на занятии:ЗАН*ИТР`;
CREATE TABLE `Инструктор на занятии:ЗАН*ИТР`
( `Ид\ЗАН` INT NOT NULL
, `Ид\ИТР` INT NOT NULL
, CONSTRAINT `ВК1\ИЗ^ЗАН` FOREIGN KEY (`Ид\ЗАН`) REFERENCES `Занятие` (`Ид`)
, CONSTRAINT `ВК2\ИЗ^ИТР` FOREIGN KEY (`Ид\ИТР`) REFERENCES `Инструктор:ОХР` (`Ид\ОХР`)
, CONSTRAINT `Ид\ИЗ` PRIMARY KEY (`Ид\ЗАН`, `Ид\ИТР`)
);
INSERT INTO `Инструктор на занятии:ЗАН*ИТР` SET
`Ид\ЗАН` = (SELECT `Ид` FROM `Занятие` WHERE `Регномер_занятия` = "00001"),
`Ид\ИТР` = (SELECT `Ид\ОХР` FROM `Инструктор:ОХР` WHERE `Ид\ОХР` =
(SELECT `Ид\ПЕРС` FROM `Охранник труда:ПЕРС` WHERE `Ид\ПЕРС` =
(SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00002")));
INSERT INTO `Инструктор на занятии:ЗАН*ИТР` SET
`Ид\ЗАН` = (SELECT `Ид` FROM `Занятие` WHERE `Регномер_занятия` = "00002"),
`Ид\ИТР` = (SELECT `Ид\ОХР` FROM `Инструктор:ОХР` WHERE `Ид\ОХР` =
(SELECT `Ид\ПЕРС` FROM `Охранник труда:ПЕРС` WHERE `Ид\ПЕРС` =
(SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00002")));
INSERT INTO `Инструктор на занятии:ЗАН*ИТР` SET
`Ид\ЗАН` = (SELECT `Ид` FROM `Занятие` WHERE `Регномер_занятия` = "00003"),
`Ид\ИТР` = (SELECT `Ид\ОХР` FROM `Инструктор:ОХР` WHERE `Ид\ОХР` =
(SELECT `Ид\ПЕРС` FROM `Охранник труда:ПЕРС` WHERE `Ид\ПЕРС` =
(SELECT `Ид` FROM `Персона` WHERE `Код_персоны` = "00002")));
SELECT "`Инструктор на занятии:ЗАН*ИТР` Table Content:" FROM `Инструктор на занятии:ЗАН*ИТР` WHERE 1=0;
SELECT * FROM `Инструктор на занятии:ЗАН*ИТР`;
DROP VIEW IF EXISTS `вирт_Инспекция`;
CREATE VIEW `вирт_Инспекция` AS
SELECT
`ИНСП`.`Регномер_инспекции` AS `Регномер инспекции`,
`ИНСП`.`Дата_проведения` AS `Дата проведения`,
`ИНСП`.`Общее_заключение_инспекции` AS `Общее заключение инспекции`,
`ИНСП`.`Ид` AS `Ид\Инспекция`
FROM `Инспекция` AS `ИНСП`
;
SELECT * FROM `вирт_Инспекция`;
DROP PROCEDURE IF EXISTS `проц_Инспектор в инспекции`;
CREATE PROCEDURE `проц_Инспектор в инспекции`
(IN `Вх:Ид\Инспекция` INT)
SELECT
`ПЕРС1`.`Код_персоны` AS `Код инспектора`,
`ПЕРС1`.`ФИО` AS `ФИО инспектора`,
`СПР1`.`Код` AS `Код должности`,
`СПР1`.`Название` AS `Название должности`,
`ИИ`.`Роль` AS `Роль`
FROM `Персона` AS `ПЕРС1`
INNER JOIN `Инспектор:ОХР` AS `ИПР` ON `ПЕРС1`.`Ид` = `ИПР`.`Ид\ОХР`
INNER JOIN `Справка+` AS `СПР1` ON `ИПР`.`Ид_ДОЛ\СПР` = `СПР1`.`Ид`
INNER JOIN `Инспектор в инспекции:ИНСП*ИПР` AS `ИИ` ON `ИИ`.`Ид\ИПР` = `ИПР`.`Ид\ОХР`
WHERE `ИИ`.`Ид\ИНСП` = `Вх:Ид\Инспекция`
;
CALL `проц_Инспектор в инспекции` (2);
DROP PROCEDURE IF EXISTS `проц_Подразделение в инспекции`;
CREATE PROCEDURE `проц_Подразделение в инспекции`
(IN `Вх:Ид\Инспекция` INT)
SELECT
`ПОД`.`Код_подразделения` AS `Код подразделения`,
`ПОД`.`Название_подразделения` AS `Название подразделения`,
`ПЕРС2`.`Код_персоны` AS `Код руководителя подразделения`,
`ПЕРС2`.`ФИО` AS `ФИО руководителя подразделения`,
`СПР2`.`Код` AS `Код должности руководителя`,
`СПР2`.`Название` AS `Название должности руководителя`,
`ПОД`.`Ид` AS `Ид\Подразделение`
FROM `Подразделение` AS `ПОД`
INNER JOIN `Руководитель:СОТР` AS `РУК` ON `ПОД`.`Ид\РУК` = `РУК`.`Ид\СОТР`
INNER JOIN `Персона` AS `ПЕРС2` ON `РУК`.`Ид\СОТР` = `ПЕРС2`.`Ид`
INNER JOIN `Справка+` AS `СПР2` ON `РУК`.`Ид_ДОЛ\СПР` = `СПР2`.`Ид`
INNER JOIN `Подразделение в инспекции:ИНСП*ПОД` AS `ИП` ON `ИП`.`Ид\ПОД` = `ПОД`.`Ид`
WHERE `ИП`.`Ид\ИНСП` = `Вх:Ид\Инспекция`
;
CALL `проц_Подразделение в инспекции` (1);
DROP PROCEDURE IF EXISTS `проц_Выявленный недостаток`;
CREATE PROCEDURE `проц_Выявленный недостаток`
(IN `Вх:Ид\Подразделение` INT)
SELECT
`ВЫЯН`.`НПП_недостатка` AS `Нпп недостатка`,
`СПР3`.`Код` AS `Код вида недостатка`,
`СПР3`.`Название` AS `Название вида недостатка`,
`ВЫЯН`.`Содержание_недостатка` AS `Содержание недостатка`,
`ВЫЯН`.`Сроки_устранения` AS `Сроки устранения`,
`ПЕРС3`.`Код_персоны` AS `Код ответственного`,
`СПР4`.`Код` AS `Код должности ответственного`,
`СПР4`.`Название` AS `Название должности ответственного`,
`ПЕРС3`.`ФИО` AS `ФИО ответственного`,
`ВЫЯН`.`Дата_устранения` AS `Дата устранения`
FROM `Выявленный недостаток:ИП` AS `ВЫЯН`
INNER JOIN `Справка+` AS `СПР3` ON `СПР3`.`Ид` = `ВЫЯН`.`Ид_ВИДН\СПР`
INNER JOIN `Ответственный:СОТР` AS `ОТВ` ON `ОТВ`.`Ид\СОТР` = `ВЫЯН`.`Ид\ОТВ`
INNER JOIN `Персона` AS `ПЕРС3` ON `ПЕРС3`.`Ид` = `ОТВ`.`Ид\СОТР`
INNER JOIN `Справка+` AS `СПР4` ON `СПР4`.`Ид` = `ОТВ`.`Ид_ДОЛ\СПР`
WHERE `ВЫЯН`.`Ид\ПОД` = `Вх:Ид\Подразделение`
;
CALL `проц_Выявленный недостаток` (1);
DROP VIEW IF EXISTS `вирт_Занятие%Тема%Инструктор%Обучаемый`;
CREATE VIEW `вирт_Занятие%Тема%Инструктор%Обучаемый` AS
SELECT
`ЗАН`.`Регномер_занятия` AS `Регномер занятия`,
`ЗАН`.`Дата_проведения_занятия` AS `Дата проведения занятия`,
`СПР1`.`Код` AS `Код темы`,
`СПР1`.`Название` AS `Название темы`,
`ПЕРС1`.`Код_персоны` AS `Код инструктора`,
`ПЕРС1`.`ФИО` AS `ФИО инструктора`,
`СПР2`.`Код` AS `Код должности`,
`СПР2`.`Название` AS `Название должности`,
`ПЕРС2`.`Код_персоны` AS `Код сотрудника`,
`ПЕРС2`.`ФИО` AS `ФИО сотрудника`,
`СПР3`.`Код` AS `Код должности сотрудника`,
`СПР3`.`Название` AS `Название должности сотрудника`,
`ПОД`.`Код_подразделения` AS `Код подразделения сотрудника`,
`ПОД`.`Название_подразделения` AS `Название подразделения сотрудника`
FROM `Занятие` AS `ЗАН`
INNER JOIN `Тема занятия:ЗАН*СПР` AS `ТЕМЗ` ON `ЗАН`.`Ид` = `ТЕМЗ`.`Ид\ЗАН`
INNER JOIN `Справка+` AS `СПР1` ON `СПР1`.`Ид` = `ТЕМЗ`.`Ид_ТЕМ\СПР`
INNER JOIN `Инструктор на занятии:ЗАН*ИТР` AS `ИЗ` ON `ИЗ`.`Ид\ЗАН` = `ЗАН`.`Ид`
INNER JOIN `Инструктор:ОХР` AS `ИТР` ON `ИТР`.`Ид\ОХР` = `ИЗ`.`Ид\ИТР`
INNER JOIN `Персона` AS `ПЕРС1` ON `ПЕРС1`.`Ид` = `ИТР`.`Ид\ОХР`
INNER JOIN `Справка+` AS `СПР2` ON `ИТР`.`Ид_ДОЛ\СПР` = `СПР2`.`Ид`
INNER JOIN `Обучаемый на занятии:ЗАН*СОТР` AS `ОБУЧ` ON `ОБУЧ`.`Ид\ЗАН` = `ЗАН`.`Ид`
/*Решаем проблему с отсутствием ДОЛ у СОТР вообще посредством SELECT по всем таблицам – категориям СОТР*/
INNER JOIN `Сотрудник:ПЕРС` AS `A` ON `ОБУЧ`.`Ид\СОТР` = `A`.`Ид\ПЕРС`
INNER JOIN (SELECT * FROM `Руководитель:СОТР`) AS `СОТР` ON `СОТР`.`Ид\СОТР` = `A`.`Ид\ПЕРС`
INNER JOIN `Персона` AS `ПЕРС2` ON `СОТР`.`Ид\ПЕРС` = `ПЕРС2`.`Ид`
INNER JOIN `Справка+` AS `СПР3` ON `СПР3`.`Ид` = `СОТР`.`Ид_ДОЛ\СПР`
INNER JOIN `Подразделение` AS `ПОД` ON `ПОД`.`Ид` = `СОТР`.`Ид\ПОД`
;
SELECT * FROM `вирт_Занятие%Тема%Инструктор%Обучаемый`;