· 6 years ago · Dec 25, 2019, 06:12 PM
1-- MySQL Workbench Forward Engineering
2
3SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
4SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
5SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
6
7-- -----------------------------------------------------
8-- Schema Касса
9-- -----------------------------------------------------
10
11-- -----------------------------------------------------
12-- Schema Касса
13-- -----------------------------------------------------
14CREATE SCHEMA IF NOT EXISTS `Касса` ;
15USE `Касса` ;
16
17-- -----------------------------------------------------
18-- Table `Касса`.`Актерский состав`
19-- -----------------------------------------------------
20DROP TABLE IF EXISTS `Касса`.`Актерский состав` ;
21
22CREATE TABLE IF NOT EXISTS `Касса`.`Актерский состав` (
23 `Номер` INT NOT NULL AUTO_INCREMENT,
24 `Имя` VARCHAR(45) NULL,
25 `Отчество` VARCHAR(45) NULL,
26 `Заслуги` VARCHAR(45) NULL,
27 PRIMARY KEY (`Номер`))
28ENGINE = InnoDB;
29
30
31-- -----------------------------------------------------
32-- Table `Касса`.`Спектакли`
33-- -----------------------------------------------------
34DROP TABLE IF EXISTS `Касса`.`Спектакли` ;
35
36CREATE TABLE IF NOT EXISTS `Касса`.`Спектакли` (
37 `Номер` INT NOT NULL AUTO_INCREMENT,
38 `Название` VARCHAR(45) NOT NULL,
39 `Актер` VARCHAR(45) NOT NULL,
40 `Время проведения` VARCHAR(45) NOT NULL,
41 `Цена билета` INT NOT NULL,
42 PRIMARY KEY (`Номер`))
43ENGINE = InnoDB;
44
45
46-- -----------------------------------------------------
47-- Table `Касса`.`Кассиры`
48-- -----------------------------------------------------
49DROP TABLE IF EXISTS `Касса`.`Кассиры` ;
50
51CREATE TABLE IF NOT EXISTS `Касса`.`Кассиры` (
52 `Номер` INT NOT NULL AUTO_INCREMENT,
53 `Фамилия` VARCHAR(45) NULL,
54 `Имя` VARCHAR(45) NULL,
55 `Отчество` VARCHAR(45) NULL,
56 `Дата рождения` VARCHAR(45) NULL,
57 `Должность` VARCHAR(45) NULL,
58 `Занято мест` VARCHAR(45) NULL,
59 PRIMARY KEY (`Номер`))
60ENGINE = InnoDB;
61
62
63-- -----------------------------------------------------
64-- Table `Касса`.`Скидки`
65-- -----------------------------------------------------
66DROP TABLE IF EXISTS `Касса`.`Скидки` ;
67
68CREATE TABLE IF NOT EXISTS `Касса`.`Скидки` (
69 `Номер` INT NOT NULL AUTO_INCREMENT,
70 `Студенческая` VARCHAR(45) NULL,
71 `Пенсионная` VARCHAR(45) NULL,
72 `Кол-во накопительных` INT NULL,
73 PRIMARY KEY (`Номер`))
74ENGINE = InnoDB;
75
76
77-- -----------------------------------------------------
78-- Table `Касса`.`Клиенты`
79-- -----------------------------------------------------
80DROP TABLE IF EXISTS `Касса`.`Клиенты` ;
81
82CREATE TABLE IF NOT EXISTS `Касса`.`Клиенты` (
83 `Номер` INT NOT NULL AUTO_INCREMENT,
84 `Имя` VARCHAR(45) NULL,
85 `Купленные спектакли` VARCHAR(45) NULL,
86 `Скидка` INT NULL,
87 PRIMARY KEY (`Номер`))
88ENGINE = InnoDB;
89
90USE `Касса` ;
91
92-- -----------------------------------------------------
93-- procedure NewYear
94-- -----------------------------------------------------
95
96USE `Касса`;
97DROP procedure IF EXISTS `Касса`.`NewYear`;
98
99DELIMITER $$
100USE `Касса`$$
101CREATE PROCEDURE `NewYear` ()
102BEGIN
103 UPDATE Спектакли SET `Цена билета` = `Цена билета` + 500;
104END$$
105
106DELIMITER ;
107
108-- -----------------------------------------------------
109-- procedure Increase
110-- -----------------------------------------------------
111
112USE `Касса`;
113DROP procedure IF EXISTS `Касса`.`Increase`;
114
115DELIMITER $$
116USE `Касса`$$
117CREATE PROCEDURE `Increase` (IN Ima varchar(45))
118BEGIN
119 update Кассиры set Должность = "Starshiy kassir" where имя = Ima;
120END$$
121
122DELIMITER ;
123
124SET SQL_MODE=@OLD_SQL_MODE;
125SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
126SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
127
128-- -----------------------------------------------------
129-- Data for table `Касса`.`Актерский состав`
130-- -----------------------------------------------------
131START TRANSACTION;
132USE `Касса`;
133INSERT INTO `Касса`.`Актерский состав` (`Номер`, `Имя`, `Отчество`, `Заслуги`) VALUES (DEFAULT, 'Egor', 'Sergeevich', 'Zaslufenni artist');
134INSERT INTO `Касса`.`Актерский состав` (`Номер`, `Имя`, `Отчество`, `Заслуги`) VALUES (DEFAULT, 'Ivan', 'Ivanovich', 'Artist');
135INSERT INTO `Касса`.`Актерский состав` (`Номер`, `Имя`, `Отчество`, `Заслуги`) VALUES (DEFAULT, 'Mihail', 'Mihailovich', 'Artist');
136
137COMMIT;
138
139
140-- -----------------------------------------------------
141-- Data for table `Касса`.`Спектакли`
142-- -----------------------------------------------------
143START TRANSACTION;
144USE `Касса`;
145INSERT INTO `Касса`.`Спектакли` (`Номер`, `Название`, `Актер`, `Время проведения`, `Цена билета`) VALUES (DEFAULT, 'The fire', 'Egor', '13.11.15', 500);
146INSERT INTO `Касса`.`Спектакли` (`Номер`, `Название`, `Актер`, `Время проведения`, `Цена билета`) VALUES (DEFAULT, 'Old man', 'Mihail', '14.11.15', 600);
147
148COMMIT;
149
150
151-- -----------------------------------------------------
152-- Data for table `Касса`.`Кассиры`
153-- -----------------------------------------------------
154START TRANSACTION;
155USE `Касса`;
156INSERT INTO `Касса`.`Кассиры` (`Номер`, `Фамилия`, `Имя`, `Отчество`, `Дата рождения`, `Должность`, `Занято мест`) VALUES (DEFAULT, 'Ivanova', 'Marya', 'Petrovna', '18.01.1999', 'Starshiy kassir', NULL);
157INSERT INTO `Касса`.`Кассиры` (`Номер`, `Фамилия`, `Имя`, `Отчество`, `Дата рождения`, `Должность`, `Занято мест`) VALUES (DEFAULT, 'Kulibina', 'Nadehda', 'Ilinishna', '15.05.1956', 'kassir', NULL);
158
159COMMIT;
160
161
162-- -----------------------------------------------------
163-- Data for table `Касса`.`Скидки`
164-- -----------------------------------------------------
165START TRANSACTION;
166USE `Касса`;
167INSERT INTO `Касса`.`Скидки` (`Номер`, `Студенческая`, `Пенсионная`, `Кол-во накопительных`) VALUES (DEFAULT, '15', '20', 0);
168
169COMMIT;
170
171
172-- -----------------------------------------------------
173-- Data for table `Касса`.`Клиенты`
174-- -----------------------------------------------------
175START TRANSACTION;
176USE `Касса`;
177INSERT INTO `Касса`.`Клиенты` (`Номер`, `Имя`, `Купленные спектакли`, `Скидка`) VALUES (DEFAULT, 'Petrova Inna', '1', 0);
178INSERT INTO `Касса`.`Клиенты` (`Номер`, `Имя`, `Купленные спектакли`, `Скидка`) VALUES (DEFAULT, 'Gagarin Ilya', '0', 0);
179
180COMMIT;
181
182USE `Касса`;
183
184DELIMITER $$
185
186USE `Касса`$$
187DROP TRIGGER IF EXISTS `Касса`.`Клиенты_AFTER_UPDATE` $$
188USE `Касса`$$
189CREATE DEFINER = CURRENT_USER TRIGGER `Касса`.`Клиенты_AFTER_UPDATE` AFTER UPDATE ON `Клиенты` FOR EACH ROW
190BEGIN
191declare nomer INT;
192Select COUNT(*) from Касса.Клиенты where `Купленные спектакли` > 15 into nomer;
193update Скидки set `Кол-во накопительных` = nomer where Номер = 1;
194END$$
195
196
197DELIMITER ;