Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KP_primer.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
3.48 Mб
Скачать

Додаток а

SQL-скрипт бази даних «Адресна книга»

# SQL Manager for MySQL 5.5.1.45563

# ---------------------------------------

# Host : localhost

# Port : 3306

# Database : AddressBook

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;

/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;

/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;

/*!40101 SET NAMES utf8 */;

SET FOREIGN_KEY_CHECKS=0;

CREATE DATABASE `AddressBook`

CHARACTER SET 'utf8'

COLLATE 'utf8_general_ci';

USE `addressbook`;

#

# Структура для таблицы `type`:

#

CREATE TABLE `type` (

`Type_ID` INTEGER(11) NOT NULL DEFAULT 0,

`Value` VARCHAR(50) COLLATE utf8_general_ci DEFAULT NULL,

PRIMARY KEY (`Type_ID`) USING BTREE,

UNIQUE KEY `XPKType` (`Type_ID`) USING BTREE

) ENGINE=InnoDB

CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'

;

#

# Структура для таблицы `operatormts`:

#

CREATE TABLE `operatormts` (

`Person_ID` INTEGER(11) NOT NULL DEFAULT 0,

`Name` VARCHAR(50) COLLATE utf8_general_ci DEFAULT NULL,

`Surname` VARCHAR(50) COLLATE utf8_general_ci DEFAULT NULL,

`MiddleName` VARCHAR(50) COLLATE utf8_general_ci DEFAULT NULL,

`Email` VARCHAR(50) COLLATE utf8_general_ci DEFAULT NULL,

`Address` VARCHAR(50) COLLATE utf8_general_ci DEFAULT NULL,

`Mobile` VARCHAR(50) COLLATE utf8_general_ci DEFAULT NULL,

`Type_ID` INTEGER(11) NOT NULL,

PRIMARY KEY (`Person_ID`) USING BTREE,

UNIQUE KEY `XPKPerson` (`Person_ID`) USING BTREE,

KEY `XIF1Person` (`Type_ID`) USING BTREE,

CONSTRAINT `operatorMTS_ibfk_1` FOREIGN KEY (`Type_ID`) REFERENCES `type` (`Type_ID`)

) ENGINE=InnoDB

CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'

;

#

# Структура для таблицы `person`:

#

CREATE TABLE `person` (

`Person_ID` INTEGER(11) NOT NULL DEFAULT 0,

`Name` VARCHAR(50) COLLATE utf8_general_ci DEFAULT NULL,

`Surname` VARCHAR(50) COLLATE utf8_general_ci DEFAULT NULL,

`MiddleName` VARCHAR(50) COLLATE utf8_general_ci DEFAULT NULL,

`Email` VARCHAR(50) COLLATE utf8_general_ci DEFAULT NULL,

`Address` VARCHAR(50) COLLATE utf8_general_ci DEFAULT NULL,

`Mobile` VARCHAR(50) COLLATE utf8_general_ci DEFAULT NULL,

`Type_ID` INTEGER(11) NOT NULL,

PRIMARY KEY (`Person_ID`) USING BTREE,

UNIQUE KEY `XPKPerson` (`Person_ID`) USING BTREE,

KEY `XIF1Person` (`Type_ID`) USING BTREE,

CONSTRAINT `person_ibfk_1` FOREIGN KEY (`Type_ID`) REFERENCES `type` (`Type_ID`)

) ENGINE=InnoDB

CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'

;

#

# Структура для таблицы `role`:

#

CREATE TABLE `role` (

`Role_ID` INTEGER(11) NOT NULL DEFAULT 0,

`RoleName` VARCHAR(50) COLLATE utf8_general_ci DEFAULT NULL,

PRIMARY KEY (`Role_ID`) USING BTREE,

UNIQUE KEY `XPKRole` (`Role_ID`) USING BTREE

) ENGINE=InnoDB

CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'

;

#

# Структура для таблицы `user`:

#

CREATE TABLE `user` (

`User_ID` INTEGER(11) NOT NULL DEFAULT 0,

`UserName` VARCHAR(50) COLLATE utf8_general_ci DEFAULT NULL,

`UserSurname` VARCHAR(50) COLLATE utf8_general_ci DEFAULT NULL,

`UserEmail` VARCHAR(50) COLLATE utf8_general_ci DEFAULT NULL,

`Password` VARCHAR(50) COLLATE utf8_general_ci DEFAULT NULL,

`Role_ID` INTEGER(11) NOT NULL,

PRIMARY KEY (`User_ID`) USING BTREE,

UNIQUE KEY `XPKUser` (`User_ID`) USING BTREE,

KEY `XIF1User` (`Role_ID`) USING BTREE,

CONSTRAINT `user_ibfk_1` FOREIGN KEY (`Role_ID`) REFERENCES `role` (`Role_ID`)

) ENGINE=InnoDB

CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'

;

#

# Структура для таблицы `user_person`:

#

CREATE TABLE `user_person` (

`User_ID` INTEGER(11) NOT NULL,

`Person_ID` INTEGER(11) NOT NULL,

`MeetingDate` DATETIME DEFAULT NULL,

PRIMARY KEY (`User_ID`, `Person_ID`) USING BTREE,

UNIQUE KEY `XPKUser_Person` (`User_ID`, `Person_ID`) USING BTREE,

KEY `XIF1User_Person` (`User_ID`) USING BTREE,

KEY `XIF2User_Person` (`Person_ID`) USING BTREE,

CONSTRAINT `user_person_ibfk_1` FOREIGN KEY (`User_ID`) REFERENCES `user` (`User_ID`),

CONSTRAINT `user_person_ibfk_2` FOREIGN KEY (`Person_ID`) REFERENCES `person` (`Person_ID`)

) ENGINE=InnoDB

CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'

;

#

# Определение для процедуры `allActions`:

#

DELIMITER $$

CREATE DEFINER = 'root'@'localhost' PROCEDURE `allActions`(

IN `User` INTEGER(10)

)

NOT DETERMINISTIC

CONTAINS SQL

SQL SECURITY DEFINER

COMMENT ''

BEGIN

SELECT * from `person`

WHERE person.`Person_ID` IN

(SELECT Person_ID from `user_person`

WHERE `user_person`.`User_ID`=@User);

END$$

DELIMITER ;

#

# Определение для процедуры `deletePerson`:

#

DELIMITER $$

CREATE DEFINER = 'root'@'localhost' PROCEDURE `deletePerson`(

IN `Person` INTEGER(10)

)

NOT DETERMINISTIC

CONTAINS SQL

SQL SECURITY DEFINER

COMMENT ''

BEGIN

DELETE from `person`

WHERE person.`Person_ID` = @Person;

DELETE from `user_person`

WHERE `user_person`.`Person_ID` = @Person;

DELETE from `operatormts`

WHERE `operatormts`.`Person_ID` = @Person;

END$$

DELIMITER ;

#

# Определение для представления `person_type`:

#

CREATE ALGORITHM=UNDEFINED DEFINER='root'@'localhost' SQL SECURITY DEFINER VIEW `person_type`

AS

select

`person`.`Name` AS `Name`,

`person`.`Surname` AS `Surname`,

`person`.`Mobile` AS `Mobile`,

`type`.`Value` AS `Value`

from

(`person`

join `type` on ((`person`.`Type_ID` = `type`.`Type_ID`)));

#

# Определение для представления `person_users`:

#

CREATE ALGORITHM=UNDEFINED DEFINER='root'@'localhost' SQL SECURITY DEFINER VIEW `person_users`

AS

select

`user`.`UserName` AS `UserName`,

`user`.`UserSurname` AS `UserSurname`,

`user_person`.`MeetingDate` AS `MeetingDate`,

`person`.`Name` AS `Name`,

`person`.`Surname` AS `Surname`,

`type`.`Value` AS `Value`

from

(((`person`

join `type` on ((`person`.`Type_ID` = `type`.`Type_ID`)))

join `user_person` on ((`person`.`Person_ID` = `user_person`.`Person_ID`)))

join `user` on ((`user_person`.`User_ID` = `user`.`User_ID`)));

#

# Data for the `type` table (LIMIT 0,500)

#

INSERT INTO `type` (`Type_ID`, `Value`) VALUES

(0,'Colleague'),

(1,'Friend'),

(2,'Relative'),

(3,'Other');

COMMIT;

#

# Data for the `operatormts` table (LIMIT 0,500)

#

INSERT INTO `operatormts` (`Person_ID`, `Name`, `Surname`, `MiddleName`, `Email`, `Address`, `Mobile`, `Type_ID`) VALUES

(0,'Dmitriy','Andreychuk','Alekseevich','dima.andr@gmail.com','Traktorostroiteley str, 140A, 128','0995674409',0),

(9,'Kirill','Lugovskiy','Andreevich','luga1997@mail.ru','Pushkinska str, 18, 67','0995327855',0),

(11,'Alexandra ','Nikitchuk','Ruslanovna','alexandranikitchuk@gmail.com','Kyivska str, 143, 56','0506742111',0),

(12,'Vladislav ','Oleshko','Nikolaevich','oleshkovladislav@mail.ua','Kvitucha str, 13','0994788321',1),

(16,'Andrey ','Sobol','Aleksandrovich','AndreySoboly@gmail.com','Alekseevska str, 56, 114','0995201247',0),

(18,'Vitaliy','Petrash','Maksimovich','rossoner@gmail.com','Pushkinska str, 140, 53','0951127083',0);

COMMIT;

#

# Data for the `person` table (LIMIT 0,500)

#

INSERT INTO `person` (`Person_ID`, `Name`, `Surname`, `MiddleName`, `Email`, `Address`, `Mobile`, `Type_ID`) VALUES

(0,'Dmitriy','Andreychuk','Alekseevich','dima.andr@gmail.com','Traktorostroiteley str, 140A, 128','0995674409',0),

(1,'Ruslan','Bakhaaddini','Denisovich','bakhaaddini@gmail.com','Geroiv Pratsi str, 12, 56','0674558204',0),

(2,'Roman','Bezruchko','Jurievich','romab10@gmail.com','Konoplyana str, 76, 23','0673440945',1),

(3,'Vladislav','Bobrovskiy','Viktorovich','v.bobrovskiy@mail.ru','Svitla str, 56, 119','0638129830',0),

(4,'Vladislav','Bondar','Aleksandrovich','s4bvlad@gmail.com','Shironintsiv str, 108, 165','0975912009',2),

(5,'Mihail','Borshev','Alekseevich','misha.bor@gmail.com','Studentska str, 10, 133','0985431445',0),

(6,'Elizaveta','Gusieva','Vjacheslavovna','lizagusieva1997@yandex.ru','Plekhanovska str, 67, 18','0984432317',0),

(7,'Vladislav','Zozulya','Viktorovich','vlad04021997@mail.ru','Uborevicha str, 45, 77','0639085469',0),

(8,'Maksim','Kazmirchuk','Vladimirovich','kazmirchuk2214@gmail.com','Petrovskaya str, 12, 107','0985561232',0),

(9,'Kirill','Lugovskiy','Andreevich','luga1997@mail.ru','Pushkinska str, 18, 67','0995327855',0),

(10,'Nikita','Matushin','Andreevich','KukusterMOP@gmail.com','Shironintsiv str, 125, 170','0673510964',0),

(11,'Alexandra ','Nikitchuk','Ruslanovna','alexandranikitchuk@gmail.com','Kyivska str, 143, 56','0506742111',0),

(12,'Vladislav ','Oleshko','Nikolaevich','oleshkovladislav@mail.ua','Kvitucha str, 13','0994788321',1),

(13,'Vsevolod ','Oleynik','Alekseevich','sevaoleinik@gmail.com','Jukova str, 65, 133','0684560914',0),

(14,'Dmitriy ','Perepechay','Aleksandrovich','Dima-khakerov@yandex.ru','Rogovtsev str, 11, 85','0972331745',0),

(15,'Dmitriy ','Posternak','Igorevich','dmitriy.posternak@yandex.ru','Gradova str, 45, 99','0984329065',1),

(16,'Andrey ','Sobol','Aleksandrovich','AndreySoboly@gmail.com','Alekseevska str, 56, 114','0995201247',0),

(17,'Rostislav','Shuliaev','Ruslanovich','rostik.shuliaev@gmail.com','Uborevicha str, 123, 88','0639082314',0),

(18,'Vitaliy','Petrash','Maksimovich','rossoner@gmail.com','Pushkinska str, 140, 53','0951127083',0);

COMMIT;

#

# Data for the `role` table (LIMIT 0,500)

#

INSERT INTO `role` (`Role_ID`, `RoleName`) VALUES

(0,'Guest'),

(1,'User'),

(2,'Admin');

COMMIT;

#

# Data for the `user` table (LIMIT 0,500)

#

INSERT INTO `user` (`User_ID`, `UserName`, `UserSurname`, `UserEmail`, `Password`, `Role_ID`) VALUES

(0,'Alexey','Mikhailov','sergmikh@ukr.net','tourist2010',1),

(1,'Sergii','Kozynets','alexsplean@mail.ua','splean2011',1),

(2,'Artem','Kolpakov','colspan23@ukr.net','colspan44',1),

(3,'Mikhail','Kolobov','v.lyahov@gmail.com','lyvov2011',1),

(4,'Stepan','Voytenko','denisvoytenko@ukr.net','vovovoo12',1),

(5,'Vladislav','Oleshko','oleshkovlad@gmail.com','qazxsww222',1),

(6,'Anatoliy','Kravets','kravets.viktor43@mail.ua','ukkeeeq',1),

(7,'Roman','Stepanov','stepa1998@ukr.net','steppa11',1),

(8,'Oleg','Polevoy','pole134@ukr.net','wsdeee2',0),

(9,'Andrey','Bobrov','bobrov.pavel@mail.ua','pashaq1',0),

(10,'Alexey','Vlasenko','vlasenkoa19@ukr.net','ujjjnye2',0),

(11,'Vladislav','Bondar','s4bvlad@gmail.com','qwsazx1332',2),

(12,'Vadim','Litvinov','litvinov.tolya@ukr.net','rtebvc55',2);

COMMIT;

#

# Data for the `user_person` table (LIMIT 0,500)

#

INSERT INTO `user_person` (`User_ID`, `Person_ID`, `MeetingDate`) VALUES

(0,2,'2001-09-20 12:00:00'),

(1,4,'2012-10-20 12:00:00'),

(1,5,'2014-01-20 13:00:00'),

(2,6,'2011-09-20 12:00:00'),

(2,13,'2014-09-20 12:00:00'),

(3,2,'2001-09-20 12:00:00'),

(3,8,'2001-11-20 12:00:00'),

(4,15,'2020-12-20 12:00:00'),

(5,1,'2001-09-20 12:00:00'),

(5,7,'2011-09-20 12:00:00'),

(6,3,'2003-09-20 12:00:00'),

(7,17,'2011-11-20 12:00:00'),

(8,10,'2009-05-20 13:00:00'),

(8,11,'2011-04-20 13:00:00'),

(9,4,'2010-12-20 12:00:00'),

(10,9,'2023-11-20 12:00:00'),

(10,16,'2012-06-20 12:00:00'),

(11,0,'2012-09-20 12:00:00'),

(11,6,'2015-08-20 13:00:00'),

(12,8,'2020-11-20 12:00:00'),

(12,11,'2007-11-20 13:00:00'),

(12,14,'2005-09-20 13:00:00');

COMMIT;

DELIMITER $$

CREATE DEFINER = 'root'@'localhost' TRIGGER `savetoMTS` AFTER INSERT ON `person`

FOR EACH ROW

BEGIN

INSERT INTO operatormts (`Person_ID`, `Name`, `Surname`, `MiddleName`,

`Email`, `Address`,`Mobile`, `Type_ID`)

SELECT Person_ID, Name, Surname, MiddleName,

Email, Address, Mobile, Type_ID

from person

WHERE (Mobile LIKE '050%' OR Mobile LIKE '066%'

OR Mobile LIKE '095%' OR Mobile LIKE '099%')

AND Person_ID NOT IN (SELECT Person_ID FROM operatormts);

END$$

CREATE DEFINER = 'root'@'localhost' TRIGGER `updateOperatorMTS` AFTER UPDATE ON `person`

FOR EACH ROW

BEGIN

UPDATE `operatorMTS`

JOIN `person` ON `operatorMTS`.`Person_ID` = `person`.`Person_ID`

SET `operatormts`.`Name` = `person`.`Name`,

`operatormts`.`Surname` = `person`.`Surname`,

`operatormts`.`MiddleName` = `person`.`MiddleName`,

`operatormts`.`Email` = `person`.`Email`,

`operatormts`.`Mobile` = `person`.`Mobile`,

`operatormts`.`Address` = `person`.`Address`

WHERE ( `operatormts`.`Name` <> `person`.`Name`

OR `operatormts`.`Surname` <> `person`.`Surname`

OR `operatormts`.`MiddleName` <> `person`.`MiddleName`

OR `operatormts`.`Email` <> `person`.`Email`

OR `operatormts`.`Mobile` <> `person`.`Mobile`

OR `operatormts`.`Address` <> `person`.`Address` );

END$$

DELIMITER ;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;

/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;

/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]