Advertisement
kadyr

Untitled

Apr 8th, 2022
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.30 KB | None | 0 0
  1. CREATE database sales;
  2. USE sales;
  3. #Карагишиев Абдулкадыр
  4. CREATE TABLE k_staff (
  5. staff_num INT NOT NULL AUTO_INCREMENT,
  6. staff_name VARCHAR(45) NOT NULL,
  7. staff_post VARCHAR(45) NULL,
  8. staff_hiredate DATE NULL,
  9. staff_termdate DATE NULL,
  10. k_dept_dept_num INT NOT NULL,
  11. PRIMARY KEY (staff_num));
  12.  
  13. CREATE TABLE k_dept (
  14. dept_num INT NOT NULL AUTO_INCREMENT,
  15. dept_full_name VARCHAR(45),
  16. dept_short_name VARCHAR(10),
  17. k_staff_staff_num INT NULL DEFAULT NULL,
  18. PRIMARY KEY (dept_num));
  19.  
  20. alter table k_staff add CONSTRAINT fk_k_staff_k_dept1 FOREIGN KEY (k_dept_dept_num) REFERENCES k_dept (dept_num) ON DELETE NO ACTION ON UPDATE NO ACTION;
  21.  
  22. alter table k_dept add CONSTRAINT fk_k_dept_k_staff1 FOREIGN KEY (k_staff_staff_num) REFERENCES k_staff (staff_num) ON DELETE NO ACTION ON UPDATE NO ACTION;
  23.  
  24. CREATE TABLE k_firm (
  25. firm_num INT NOT NULL AUTO_INCREMENT,
  26. firm_name VARCHAR(45) NOT NULL,
  27. firm_addr VARCHAR(45) NULL,
  28. firm_phone VARCHAR(20) NULL,
  29. PRIMARY KEY (firm_num));
  30.  
  31. CREATE TABLE k_contract (
  32. contract_num INT NOT NULL AUTO_INCREMENT,
  33. contract_date DATE NOT NULL,
  34. contract_type ENUM('A','B','C') NOT NULL,
  35. k_firm_firm_num INT NOT NULL,
  36. k_staff_staff_num INT NOT NULL,
  37. PRIMARY KEY (contract_num),
  38. CONSTRAINT fk_k_kontrakt_k_firm1
  39. FOREIGN KEY (k_firm_firm_num) REFERENCES k_firm (firm_num)
  40. ON DELETE NO ACTION ON UPDATE NO ACTION,
  41. CONSTRAINT fk_k_kontrakt_k_staff1
  42. FOREIGN KEY (k_staff_staff_num) REFERENCES k_staff (staff_num)
  43. ON DELETE NO ACTION ON UPDATE NO ACTION);
  44.  
  45. CREATE TABLE k_bill (
  46. bill_num INT NOT NULL AUTO_INCREMENT,
  47. bill_date DATE NOT NULL,
  48. bill_sum DECIMAL(9,2) NOT NULL,
  49. bill_term DATE NOT NULL,
  50. bill_peni DECIMAL(6,2) NULL,
  51. k_contract_contract_num INT NOT NULL,
  52. PRIMARY KEY (bill_num),
  53. CONSTRAINT fk_k_bill_k_contract1
  54. FOREIGN KEY (k_contract_contract_num) REFERENCES k_contract (contract_num)
  55. ON DELETE NO ACTION ON UPDATE NO ACTION);
  56.  
  57. CREATE TABLE k_payment (
  58. payment_num INT NOT NULL,
  59. payment_date DATE NOT NULL,
  60. payment_sum DECIMAL(9,2) NOT NULL,
  61. k_bill_bill_num INT NOT NULL,
  62. PRIMARY KEY (payment_num, k_bill_bill_num),
  63. CONSTRAINT fk_k_payment_k_bill1
  64. FOREIGN KEY (k_bill_bill_num) REFERENCES k_bill (bill_num)
  65. ON DELETE NO ACTION ON UPDATE NO ACTION);
  66. CREATE TABLE k_staff_archive (
  67. staff_num INT NOT NULL AUTO_INCREMENT,
  68. staff_name VARCHAR(45) NOT NULL,
  69. staff_post VARCHAR(45) NULL DEFAULT NULL,
  70. staff_hiredate DATE NULL DEFAULT NULL,
  71. staff_termdate DATE NULL DEFAULT NULL,
  72. k_dept_dept_num INT NULL DEFAULT NULL,
  73. PRIMARY KEY (staff_num));
  74.  
  75.  
  76.  
  77. CREATE TABLE k_price (
  78. price_num INT NOT NULL AUTO_INCREMENT,
  79. price_name VARCHAR(45) NOT NULL,
  80. price_sum DECIMAL(9,2) NULL,
  81. price_type VARCHAR(1) NULL,
  82. PRIMARY KEY (price_num));
  83.  
  84. CREATE TABLE k_protokol (
  85. k_bill_bill_num INT NOT NULL,
  86. k_price_price_num INT NOT NULL,
  87. kolvo INT NOT NULL,
  88. price_sum DECIMAL(9,2) NOT NULL,
  89. PRIMARY KEY (K_bill_bill_num, k_price_price_num),
  90. CONSTRAINT fk_k_bill_has_k_price_k_bill1
  91. FOREIGN KEY (k_bill_bill_num) REFERENCES k_bill (bill_num)
  92. ON DELETE NO ACTION ON UPDATE NO ACTION,
  93. CONSTRAINT fk_k_bill_has_k_price_K_price1
  94. FOREIGN KEY (k_price_price_num) REFERENCES k_price (price_num)
  95. ON DELETE NO ACTION ON UPDATE NO ACTION);
  96.  
  97. # Заполнение
  98.  
  99. INSERT INTO k_firm (firm_name, firm_addr)
  100. VALUES('Альфа', 'Москва');
  101. INSERT INTO k_firm (firm_name, firm_addr)
  102. VALUES('Бета', 'Казань');
  103. INSERT INTO k_firm (firm_name, firm_addr)
  104. VALUES('Гамма', 'Париж');
  105. INSERT INTO k_firm (firm_name, firm_addr)
  106. VALUES('Дельта', 'Лондон');
  107. INSERT INTO k_firm (firm_name, firm_addr)
  108. VALUES('Омега', 'Токио');
  109. #Карагишиев
  110. INSERT INTO k_dept (dept_short_name, dept_full_name)
  111. VALUES('Sales', 'Отдел продаж');
  112. INSERT INTO k_dept (dept_short_name, dept_full_name)
  113. VALUES('Mart', 'Отдел маркетинга');
  114. INSERT INTO k_dept (dept_short_name, dept_full_name)
  115. VALUES('Cust', 'Отдел гарантийного обслуживания');
  116. #Карагишиев
  117. INSERT INTO k_staff (staff_name, k_dept_dept_num, staff_hiredate, staff_post)
  118. VALUES('Иванов', 1, '1999-01-01', 'Менеджер');
  119. INSERT INTO k_staff (staff_name, k_dept_dept_num, staff_hiredate, staff_post)
  120. VALUES('Петров', 2, '2010-10-13','Менеджер');
  121. INSERT INTO k_staff (staff_name, k_dept_dept_num, staff_hiredate, staff_post)
  122. VALUES('Сидоров', 3, '2005-12-01','Менеджер');
  123. INSERT INTO k_staff (staff_name, k_dept_dept_num, staff_hiredate, staff_post)
  124. VALUES('Семенов', 1, '1990-01-01','Директор');
  125. INSERT INTO k_staff (staff_name, k_dept_dept_num, staff_hiredate, staff_post)
  126. VALUES('Григорьев', 3, '2008-12-19','Программист');
  127. #Карагишиев
  128. INSERT INTO k_contract
  129. (contract_type, k_firm_firm_num, k_staff_staff_num, contract_date) VALUES('A', 1, 1,'2011-11-01');
  130. INSERT INTO k_contract
  131. (contract_type, k_firm_firm_num, k_staff_staff_num, contract_date) VALUES('B', 1, 2,'2011-10-01');
  132. INSERT INTO k_contract
  133. (contract_type, k_firm_firm_num, k_staff_staff_num, contract_date) VALUES('C', 1, 1,'2011-09-01');
  134. INSERT INTO k_contract
  135. (contract_type, k_firm_firm_num, k_staff_staff_num, contract_date) VALUES('A', 2, 2,'2011-11-15');
  136. INSERT INTO k_contract
  137. (contract_type, k_firm_firm_num, k_staff_staff_num, contract_date) VALUES('B', 2, 2,'2011-08-01');
  138. INSERT INTO k_contract
  139. (contract_type, k_firm_firm_num, k_staff_staff_num, contract_date) VALUES('C', 3, 1,'2011-07-15');
  140. INSERT INTO k_contract
  141. (contract_type, k_firm_firm_num, k_staff_staff_num, contract_date) VALUES('A', 4, 1,'2011-11-12');
  142.  
  143. INSERT INTO k_bill
  144. (k_contract_contract_num, bill_date, bill_term, bill_sum)
  145. VALUES(1, '2011-11-12', '2011-12-12', 1000);
  146. INSERT INTO k_bill
  147. (k_contract_contract_num, bill_date, bill_term, bill_sum)
  148. VALUES(1, '2011-12-12', '2012-01-12', 2000);
  149. INSERT INTO k_bill
  150. (k_contract_contract_num, bill_date, bill_term, bill_sum)
  151. VALUES(1, '2012-01-12', '2012-02-12',2000);
  152. INSERT INTO k_bill
  153. (k_contract_contract_num, bill_date, bill_term, bill_sum)
  154. VALUES(2, '2011-12-12', '2012-01-12', 6000);
  155. INSERT INTO k_bill
  156. (k_contract_contract_num, bill_date, bill_term, bill_sum)
  157. VALUES(2, '2012-01-12', '2012-02-12', 2000);
  158. INSERT INTO k_bill
  159. (k_contract_contract_num, bill_date, bill_term, bill_sum)
  160. VALUES(3, '2012-01-12', '2012-02-12', 2500);
  161. INSERT INTO k_bill
  162. (k_contract_contract_num, bill_date, bill_term, bill_sum)
  163. VALUES(4, '2011-12-12', '2012-01-12', 1500);
  164. INSERT INTO k_bill
  165. (k_contract_contract_num, bill_date, bill_term, bill_sum)
  166. VALUES(5, '2011-12-12', '2012-01-12', 1200);
  167. INSERT INTO k_bill
  168. (k_contract_contract_num, bill_date, bill_term, bill_sum)
  169. VALUES(5, '2012-01-12', '2012-02-12', 10000);
  170.  
  171. INSERT INTO k_price (price_num, price_name, price_sum, price_type)
  172. VALUES (1, 'Материализация духов', 1000.00, 'У');
  173. INSERT INTO k_price (price_num, price_name, price_sum, price_type)
  174. VALUES (2, 'Раздача слонов', 100.00, 'У');
  175. INSERT INTO k_price (price_num, price_name, price_sum, price_type)
  176. VALUES (3, 'Слоновый бивень', 3000.00, 'Т');
  177. INSERT INTO k_price (price_num, price_name, price_sum, price_type)
  178. VALUES (4, 'Моржовый клык', 1500.00, 'Т');
  179. INSERT INTO k_price (price_num, price_name, price_sum, price_type)
  180. VALUES (5, 'Копыто пегаса', 5000.00, 'Т');
  181.  
  182. # Отключение режима safe mode (запрет изменений без указания первичного ключа)
  183. # при помощи команды SQL
  184. # Если режим safe mode включен, то MySQL-сервер выдает ошибку 1175
  185.  
  186. SET SQL_SAFE_UPDATES = 0;
  187.  
  188. UPDATE k_dept SET k_staff_staff_num=2
  189. WHERE dept_short_name='Mart';
  190. UPDATE k_dept SET k_staff_staff_num=3
  191. WHERE dept_short_name='Cust';
  192. UPDATE k_dept SET k_staff_staff_num=1
  193. WHERE dept_short_name='Sales';
  194.  
  195. INSERT INTO k_protokol (k_bill_bill_num, k_price_price_num, kolvo, price_sum)
  196. VALUES (1, 1, 1, 1000.00);
  197. INSERT INTO k_protokol (k_bill_bill_num, K_price_price_num, kolvo, price_sum)
  198. VALUES (2, 1, 2, 1000.00);
  199. INSERT INTO k_protokol (K_bill_bill_num, K_price_price_num, kolvo, price_sum)
  200. VALUES (3, 2, 20, 100.00);
  201. INSERT INTO k_protokol (K_bill_bill_num, K_price_price_num, kolvo, price_sum)
  202. VALUES (4, 3, 2, 3000.00);
  203. INSERT INTO k_protokol (k_bill_bill_num, k_price_price_num, kolvo, price_sum)
  204. VALUES (5, 1, 1, 1000.00);
  205. INSERT INTO k_protokol (k_bill_bill_num, k_price_price_num, kolvo, price_sum)
  206. VALUES (5, 2, 10, 100.00);
  207. INSERT INTO k_protokol (k_bill_bill_num, K_price_price_num, kolvo, price_sum)
  208. VALUES (6, 1, 2, 1000.00);
  209. INSERT INTO k_protokol (k_bill_bill_num, k_price_price_num, kolvo, price_sum)
  210. VALUES (6, 2, 5, 100.00);
  211. INSERT INTO k_protokol (k_bill_bill_num, K_price_price_num, kolvo, price_sum)
  212. VALUES (7, 4, 1, 1500.00);
  213. INSERT INTO k_protokol (k_bill_bill_num, K_price_price_num, kolvo, price_sum)
  214. VALUES (8, 1, 1, 1000.00);
  215. INSERT INTO k_protokol (k_bill_bill_num, k_price_price_num, kolvo, price_sum)
  216. VALUES (8, 2, 2, 100.00);
  217. INSERT INTO k_protokol (k_bill_bill_num, k_price_price_num, kolvo, price_sum)
  218. VALUES (9, 5, 2, 5000.00);
  219.  
  220. INSERT INTO k_payment (payment_num, payment_date, payment_sum, k_bill_bill_num)
  221. VALUES (1, '2011-12-15', 1000.00, 2);
  222. INSERT INTO k_payment (payment_num, payment_date, payment_sum, k_bill_bill_num)
  223. VALUES (1, '2012-01-13', 1500.00, 3);
  224. INSERT INTO k_payment (payment_num, payment_date, payment_sum, k_bill_bill_num)
  225. VALUES (1, '2012-01-12', 1000.00, 4);
  226. INSERT INTO k_payment (payment_num, payment_date, payment_sum, k_bill_bill_num)
  227. VALUES (1, '2012-01-05', 100.00, 7);
  228. INSERT INTO k_payment (payment_num, payment_date, payment_sum, k_bill_bill_num)
  229. VALUES (1, '2011-12-25', 1000.00, 8);
  230. INSERT INTO k_payment (payment_num, payment_date, payment_sum, k_bill_bill_num)
  231. VALUES (2, '2012-01-15', 500.00, 3);
  232. INSERT INTO k_payment (payment_num, payment_date, payment_sum, k_bill_bill_num)
  233. VALUES (2, '2012-01-12', 900.00, 7);
  234.  
  235.  
  236. #Карагишиев
  237. call show_contracts("Петров");
  238.  
  239. #Карагишиев
  240. call clearance(10);
  241.  
  242. #Карагишиев
  243. call show_fname("Менеджер");
  244.  
  245. #Карагишиев
  246. call show_bill_info(3);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement