Advertisement
Guest User

Untitled

a guest
Dec 11th, 2018
339
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 37.73 KB | None | 0 0
  1. DROP TABLE IF EXISTS client CASCADE;
  2. DROP TABLE IF EXISTS dealer CASCADE;
  3. DROP TABLE IF EXISTS contract CASCADE;
  4. DROP TABLE IF EXISTS repair CASCADE;
  5. DROP TABLE IF EXISTS master CASCADE;
  6. DROP TABLE IF EXISTS STO CASCADE;
  7. DROP TABLE IF EXISTS fix CASCADE;
  8. DROP SEQUENCE IF EXISTS s_client CASCADE;
  9. DROP SEQUENCE IF EXISTS s_dealer CASCADE;
  10. DROP SEQUENCE IF EXISTS s_contract CASCADE;
  11. DROP SEQUENCE IF EXISTS s_repair CASCADE;
  12. DROP SEQUENCE IF EXISTS s_master CASCADE;
  13. DROP SEQUENCE IF EXISTS s_STO CASCADE;
  14. DROP SEQUENCE IF EXISTS s_fix CASCADE;
  15. DROP FUNCTION IF EXISTS sumSale(name text) CASCADE ;
  16. DROP FUNCTION IF EXISTS updatePriceSale() CASCADE ;
  17. DROP FUNCTION IF EXISTS kolv(N INT) CASCADE ;
  18. DROP FUNCTION IF EXISTS kolvD(N INT) CASCADE ;
  19. DROP TABLE IF EXISTS total_priceSale_and_commission CASCADE ;
  20. DROP FUNCTION IF EXISTS checkId() CASCADE ;
  21. DROP FUNCTION IF EXISTS add_dealer() CASCADE ;
  22.  
  23. CREATE SEQUENCE s_client;
  24. CREATE SEQUENCE s_dealer;
  25. CREATE SEQUENCE s_contract;
  26. CREATE SEQUENCE s_repair;
  27. CREATE SEQUENCE s_master;
  28. CREATE SEQUENCE s_STO;
  29. CREATE SEQUENCE s_fix;
  30.  
  31. CREATE TABLE IF NOT EXISTS STO (
  32. id INT PRIMARY KEY DEFAULT nextval('s_STO'),
  33. name text NOT NULL,
  34. address text NOT NULL,
  35. phone text NOT NULL,
  36. email text DEFAULT null,
  37. dateFounding text NOT NULL,
  38. assessment float DEFAULT NULL
  39. );
  40.  
  41. CREATE TABLE IF NOT EXISTS client (
  42. id INT PRIMARY KEY DEFAULT nextval('s_client'),
  43. fullName text NOT NULL,
  44. cityName text NOT NULL,
  45. phone text NOT NULL,
  46. address text NOT NULL
  47. );
  48.  
  49. CREATE TABLE IF NOT EXISTS dealer (
  50. id INT PRIMARY KEY DEFAULT nextval('s_dealer'),
  51. fullName text NOT NULL,
  52. carView text NOT NULL,
  53. photoNumber int NOT NULL,
  54. phone text NOT NULL,
  55. address text NOT NULL
  56. );
  57.  
  58. CREATE TABLE IF NOT EXISTS fix (
  59. id INT PRIMARY KEY DEFAULT nextval('s_fix'),
  60. nameFix text NOT NULL,
  61. specialty text NOT NULL
  62. );
  63.  
  64. CREATE TABLE IF NOT EXISTS contract (
  65. id INT PRIMARY KEY DEFAULT nextval('s_contract'),
  66. idClient int NOT NULL,
  67. idDealer int NOT NULL,
  68. dateContract DATE NOT NULL,
  69. carBrand text NOT NULL,
  70. photoCarNumber int NOT NULL,
  71. dateIssue DATE NOT NULL,
  72. mileage int NOT NULL,
  73. dateSale DATE NOT NULL,
  74. priceSale decimal(50,2) CHECK (priceSale>0) NOT NULL,
  75. commission decimal(50,2) CHECK (commission<contract.priceSale) NOT NULL,
  76. notes text DEFAULT NULL,
  77. FOREIGN KEY (idClient) REFERENCES client(id),
  78. FOREIGN KEY (idDealer) REFERENCES dealer(id)
  79. );
  80.  
  81. CREATE TABLE IF NOT EXISTS master (
  82. id INT PRIMARY KEY DEFAULT nextval('s_master'),
  83. name text NOT NULL,
  84. idSTO int NOT NULL,
  85. specialty text NOT NULL,
  86. experience int CHECK (experience>0) NOT NULL,
  87. salary decimal(50,2) CHECK (salary>0) NOT NULL,
  88. phone text NOT NULL,
  89. address text NOT NULL,
  90. FOREIGN KEY (idSTO) REFERENCES STO(id)
  91. );
  92.  
  93. CREATE TABLE IF NOT EXISTS repair (
  94. id INT PRIMARY KEY DEFAULT nextval('s_repair'),
  95. idFix int NOT NULL,
  96. idContract int NOT NULL,
  97. idMaster int NOT NULL,
  98. dateStart DATE NOT NULL,
  99. repairPeriodDay int CHECK (repairPeriodDay>0) NOT NULL,
  100. price decimal(50,2) CHECK (price>0) NOT NULL,
  101. FOREIGN KEY (idFix) REFERENCES fix (id),
  102. FOREIGN KEY (idContract) REFERENCES contract(id),
  103. FOREIGN KEY (idMaster) REFERENCES master(id)
  104. );
  105.  
  106. /*INSERT INTO fix
  107. VALUES (DEFAULT, 'Motor', 'Dvij');
  108. INSERT INTO client
  109. VALUES (DEFAULT, 'Petr Petrov Petrovich', 'Kharkov', 'Kojemako 5a', 38082928);
  110. INSERT INTO dealer
  111. VALUES (DEFAULT, 'John Bar Fergust', 1, 'Fora 3', 390827232);
  112. INSERT INTO contract
  113. VALUES (DEFAULT, 1, 1, '2018-01-18', 'BMW', 1, '2012-05-02', 50000, '2012-06-20',
  114. 20000, 2000, 'TEXT: SHOTO SLUCHILOS');
  115. INSERT INTO master
  116. VALUES (DEFAULT, 'Ivan Pedro Kurion', 1, 'All', 15, 30000, 9023842, 'pr. Lemur
  117. 45v');
  118. INSERT INTO repair
  119. VALUES (DEFAULT, 1, 1, 1, '2018-01-20', 90, 4000);
  120. SELECT * FROM contract;*/
  121.  
  122.  
  123. INSERT INTO STO
  124. VALUES (DEFAULT, 'Галиан', 'город Одесса, улица Разумовская, 14','0964553288, 0633731348, 0509285554, 0487093236', 'Lutskanandrew@gmail.com', '2010-02-01');
  125. INSERT INTO STO
  126. VALUES (DEFAULT, 'Limard', 'город Одесса, улица Приморская 18', '482342233', 'gallian@paco.net', '2012-10-20',5.0);
  127. INSERT INTO STO
  128. VALUES (DEFAULT, 'AutoHelp', 'город Одесса, улица Гаражный кооператив Ветеран 4', '380634790095, 380973328049', 'autohelp@gmail.com', '2014-09-25', 2.5);
  129. INSERT INTO STO
  130. VALUES (DEFAULT, 'Мастер Кар', 'город Одесса, улица Михаила Грушевского, 17А', '0487707788', 'g37od@mail.ru, info@mastercar-odessa', '2011-07-15',3.5);
  131. INSERT INTO STO
  132. VALUES (DEFAULT, 'Автотрейдинг–Одесса', 'город Одесса, улица 6-й км Овидиопольской дороги, 10/2, 39/4', '0487343658', '', '2015-08-09', 4.8);
  133.  
  134. /*Работники СТО Галиан*/
  135. INSERT INTO master
  136. VALUES (DEFAULT, 'Федотов Алексей Александрович', 1, 'Моторист', 3, 18000, '380673489234', 'город Одесса, улица Пантелеймоновская 76');
  137. INSERT INTO master
  138. VALUES (DEFAULT, 'Демчук Леонид Викторович', 1, 'Механик-диагност', 5, 20000, '380661398475', 'город Одесса, улица Сегедская 21');
  139. INSERT INTO master
  140. VALUES (DEFAULT, 'Арнович Борис Сергеевич', 1, 'Автоэлектрик', 4, 17000, '380965348712', 'город Одесса, улица Канатная 65');
  141. INSERT INTO master
  142. VALUES (DEFAULT , 'Радужный Дмитрий Михайлович', 1, 'Маляр', 4, 14500, '380934328412', 'город Одесса, улица Академика Королёва 70');
  143. INSERT INTO master
  144. VALUES (DEFAULT , 'Береговой Фёдр Александрович', 1, 'Автожестянщик', 2, 15000, '380934565345', 'город Одесса, улица Академика Филатова 90');
  145. INSERT INTO master
  146. VALUES (DEFAULT, 'Саратов Георгий Викторович', 1, 'Моторист', 6, 23000, '380672398475', 'город Одесса, улица Прохоровская 30');
  147. INSERT INTO master
  148. VALUES (DEFAULT , 'Бравый Александр Александрович', 1, 'Маляр', 5, 18000, '380953745890', 'город Одесса, улица Итальянский бульвар 3');
  149.  
  150. /*Работники СТО Limard*/
  151. INSERT INTO master
  152. VALUES (DEFAULT , 'Краснянский Артур Левович', 2, 'Моторист', 7, 25000,'380650449122', 'город Одесса, улица Кантная 23');
  153. INSERT INTO master
  154. VALUES (DEFAULT , 'Ягодич Максимильян Игнатиевич', 2, 'Моторист', 4, 18000,'380112876627', 'город Одесса, улица Сегедская 15');
  155. INSERT INTO master
  156. VALUES (DEFAULT , 'Мартюшев Валерьян Иванович', 2, 'Автожестянщик', 4, 20000,'380941701860', 'город Одесса, улица Ришельевская 5');
  157. INSERT INTO master
  158. VALUES (DEFAULT , 'Абушаев Адриан Севастьянович', 2, 'Автоэлектрик', 6, 24000,'380846516326', 'город Одесса, улица Шевченка, 8/3');
  159. INSERT INTO master
  160. VALUES (DEFAULT , 'Кожевин Аристарх Евлампиевич', 2, 'Автоэлектрик', 7, 27000,'380225467720', 'город Одесса, улица Екатерининська, 12');
  161. INSERT INTO master
  162. VALUES (DEFAULT , 'Абоймов Харитон Евстафиевич', 2, 'Механик-диагност', 3, 14000,'380226771478', 'город Одесса, улица Шевченка, 4Е');
  163. INSERT INTO master
  164. VALUES (DEFAULT , 'Попков Юрий Ульянович', 2, 'Механик-диагност', 4, 16000,'380780823150', 'город Одесса, улица Прохоровськая, 8');
  165. INSERT INTO master
  166. VALUES (DEFAULT , 'Попков Юрий Ульянович', 2, 'Механик-диагност', 3, 12000,'380879303623', 'город Одесса, улица Канатна, 132');
  167. INSERT INTO master
  168. VALUES (DEFAULT , 'Попков Юрий Ульянович', 2, 'Маляр', 8, 19000,'380979177143', 'город Одесса, улица Маршала Говорова, 10/1');
  169. INSERT INTO master
  170. VALUES (DEFAULT , 'Занина Лидия Василиевна', 2, 'Маляр', 4, 12000,'380696116615', 'город Одесса, улица Шевченка, 16');
  171. INSERT INTO master
  172. VALUES (DEFAULT , 'Чунца Василиса Федотовна', 2, 'Вулканизаторщик', 2, 10000,'380743976899', 'город Одесса, улица Фонтанська дорога, 61');
  173.  
  174. /*Работники СТО AutoHelp*/
  175. INSERT INTO master
  176. VALUES (DEFAULT , 'Юнге Аскольд Натанович', 3, 'Моторист', 2, 10000, '380132229055', 'город Одесса, улица Академика Королёва 12 кв. 23');
  177. INSERT INTO master
  178. VALUES (DEFAULT , 'Григорьев Никифор Игнатиевич', 3, 'Механик-диагност', 1, 7000, '380549214204', 'город Одесса, Небесной Сотни проспект 30в');
  179. INSERT INTO master
  180. VALUES (DEFAULT , 'Зёмин Андриян Вадимович', 3, 'Механик-диагност', 3, 13000, '380267453395', 'город Одесса, улица Генерала Пертрова 2 кв. 3');
  181. INSERT INTO master
  182. VALUES (DEFAULT , 'Иванков Матвей Измаилович', 3, 'Автоэлектрик', 2, 11000, '380688897133', 'город Одесса, улица Прохоровская 12');
  183. INSERT INTO master
  184. VALUES (DEFAULT , 'Бойдало Эдуард Леонович', 3, 'Маляр', 4, 10000, '380357144390', 'город Одесса, Люстдорфская дорога 14');
  185.  
  186. /*Работники СТО Мастер Кар*/
  187. INSERT INTO master
  188. VALUES (DEFAULT , 'Шерешевский Осип Прокофиевич', 4, 'Моторист', 4, 16000, '380635385405', 'город Одесса, улица Академика Глушко 3а кв.45');
  189. INSERT INTO master
  190. VALUES (DEFAULT , 'Куделин Максимильян Зиновиевич', 4, 'Моторист', 3, 15000, '380136882710', 'город Одесса, улица Марсельская 32А');
  191. INSERT INTO master
  192. VALUES (DEFAULT , 'Балахнов Степан Тимурович', 4, 'Автожестянщик', 7, 19000, '380719660773', 'город Одесса, улица Асташкина 19 кв.32');
  193. INSERT INTO master
  194. VALUES (DEFAULT , 'Федосов Валерий Ипатиевич', 4, 'Механик-диагност', 8, 25000, '380627228748', 'город Одесса, проспект Гагрина 49');
  195. INSERT INTO master
  196. VALUES (DEFAULT , 'Труш Лука Зиновиевич', 4, 'Механик-диагност', 2, 12000, '380343960401', 'город Одесса, улица Болгарская 49');
  197. INSERT INTO master
  198. VALUES (DEFAULT , 'Мамонов Максимильян Георгиевич', 4, 'Автоэлектрик', 4, 18000, '380242522147', 'город Одесса, улица Одария 12');
  199. INSERT INTO master
  200. VALUES (DEFAULT , 'Гольца Анисья Борисовна', 4, 'Автоэлектрик', 5, 20000, '380202284424', 'город Одесса, улица Высоцкого 12/3');
  201. INSERT INTO master
  202. VALUES (DEFAULT , 'Румянцева Оксана Анатолиевна', 4, 'Механик-диагност', 6, 28000, '380403646596', 'город Одесса, улица Садовая 3 кв. 39');
  203. INSERT INTO master
  204. VALUES (DEFAULT , 'Аспидов Владилен Иосифович', 4, 'Маляр', 2, 10000, '380554435759', 'город Одесса, улица Канатная 2 кв 23');
  205. INSERT INTO master
  206. VALUES (DEFAULT , 'Ольховский Парфен Фомевич', 4, 'Маляр', 7, 20000, '380736491251', 'город Одесса, улица Сегедская 15а');
  207.  
  208. /*Работники СТО Авторейдинг Одесса*/
  209. INSERT INTO master
  210. VALUES (DEFAULT , 'Чукреев Аркадий Владимирович', 5, 'Моторист', 10,18000 , '380838777704', 'город Одесса, проспект Добровольского 5');
  211. INSERT INTO master
  212. VALUES (DEFAULT , 'Филенков Дементий Модестович', 5, 'Механик-диагност', 9, 2000, '380950498104', 'город Одесса, улица Пантелеймоновская 99');
  213. INSERT INTO master
  214. VALUES (DEFAULT , 'Устинов Михей Мечиславович', 5, 'Механик-диагност', 15, 30000, '380925035772', 'город Одесса, улица Марсельская 65');
  215. INSERT INTO master
  216. VALUES (DEFAULT , 'Панюшкин Елисей Яковович', 5, 'Автоэлектрик', 9, 23000, '380631701028', 'город Одесса, улица Асташкина 37');
  217. INSERT INTO master
  218. VALUES (DEFAULT , 'Замятин Михей Никонович', 5, 'Моторист', 20, 40000, '380903923780', 'город Одесса, проспект Гагарина 34 квю 73');
  219. INSERT INTO master
  220. VALUES (DEFAULT , 'Махмудов Федот Сергеевич', 5, 'Автожестянщик', 10, 27000, '380852239808', 'город Одесса, улица Одария 2');
  221. INSERT INTO master
  222. VALUES (DEFAULT , 'Гроссман Юлиан Вячеславович', 5, 'Автожестянщик', 7, 17000, '380434230331', 'город Одесса, улица Садовая 89');
  223. INSERT INTO master
  224. VALUES (DEFAULT , 'Луньков Михей Тихонович', 5, 'Вулканизаторщик', 4, 20000, '380754129626', 'город Одесса, улица Канатная 32 кв. 54');
  225. INSERT INTO master
  226. VALUES (DEFAULT , 'Яндарбиев Потап Макарович', 5, 'Маляр', 5, 24000, '380208468539', 'город Одесса, улица Сегедская 17 кв. 42');
  227.  
  228. INSERT INTO dealer
  229. VALUES (DEFAULT , 'Интер-Авто', 'MAZDA', 1635, '565(051)747-19-50', 'город Одесса, улица Канатная 36');
  230. INSERT INTO dealer
  231. VALUES (DEFAULT , 'Palisade', 'HYUNDAI', 1157, '41(38)420-14-15', 'город Одесса, проспект Шевченка 63');
  232. INSERT INTO dealer
  233. VALUES (DEFAULT , 'Эмералд Моторс', 'BMW', 8810, '849(77)291-33-39', 'город Одесса, улица Академика Королёва 2/5');
  234. INSERT INTO dealer
  235. VALUES (DEFAULT , 'Автомоильный дом', 'WOLKSWAGEN', 4677, '8(646)649-01-19', 'город Одесса, улица Сегедская 30/4');
  236. INSERT INTO dealer
  237. VALUES (DEFAULT , 'Авто Груп', 'RENAULT', 7864, '9(65)997-53-74', 'город Одесса, улица Академика Глушко 112');
  238. INSERT INTO dealer
  239. VALUES (DEFAULT , 'Одесса-Авто', 'KIA', 6026, '1(929)814-17-23', 'город Одесса, улица Ришельевская 74');
  240. INSERT INTO dealer
  241. VALUES (DEFAULT , 'Fiat-Авто', 'FIAT', 1276, '15(25)805-80-23', 'город Одесса, улица Фонтаская 3');
  242. INSERT INTO dealer
  243. VALUES (DEFAULT , 'АВТОМИР', 'JEEP', 9440, '88(123)192-23-40', 'город Одесса, улица Левитана 41');
  244. INSERT INTO dealer
  245. VALUES (DEFAULT , 'Mersedes Company', 'MERSEDES', 4462, '81(549)948-30-63', 'город Одесса, улица Артиллерийская 14');
  246.  
  247. INSERT INTO client
  248. VALUES (DEFAULT , 'Цейдлица Зоя Данииловна', 'Одесса', '380314106225', 'город Одесса, улица Филатова 23');
  249. INSERT INTO client
  250. VALUES (DEFAULT , 'Кривоухова Милена Елизаровна', 'Одесса', '380154915929', 'город Одесса, улица Канатная 12 кв. 54');
  251. INSERT INTO client
  252. VALUES (DEFAULT , 'Десяткова Анфиса Василиевна', 'Одесса', '380513635207', 'город Одесса, улица Академика Глушко 27 кв. 56');
  253. INSERT INTO client
  254. VALUES (DEFAULT , 'Пыжалов Прокл Сигизмундович', 'Одесса', '380607363669', 'город Одесса, улица Канатная 56 кв. 19');
  255. INSERT INTO client
  256. VALUES (DEFAULT , 'Перевалова Вероника Ефимовна', 'Одесса', '380285183625', 'город Одесса, улица Сегедская 64');
  257. INSERT INTO client
  258. VALUES (DEFAULT , 'Пересторонин Варфоломей Тихонович', 'Одесса', '380963300996', 'город Одесса, улица Ришельевская 94');
  259. INSERT INTO client
  260. VALUES (DEFAULT , 'Горемыкин Эрнест Мирославович', 'Одесса', '380789579999', 'город Одесса, улица Левитана 64');
  261. INSERT INTO client
  262. VALUES (DEFAULT , 'Царегородцев Никита Всеволодович', 'Одесса', '380756445342', 'город Одесса, улица Одария 74');
  263. INSERT INTO client
  264. VALUES (DEFAULT , 'Амелина Рената Иосифовна', 'Одесса', '380531935419', 'город Одесса, улица Асташникская 32 кв.93');
  265. INSERT INTO client
  266. VALUES (DEFAULT , 'Смольникова Агата Алексеевна', 'Одесса', '380418821399', 'город Одесса, улица Марсельская 31');
  267. INSERT INTO client
  268. VALUES (DEFAULT , 'Караева Инга Георгиевна', 'Одесса', '380836010947', 'город Одесса, улица большая Арнаутская 7 кв. 24');
  269. INSERT INTO client
  270. VALUES (DEFAULT , 'Смышляев Вацлав Аполлинариевич', 'Одесса', '380439630844', 'город Одесса, улица малая Арнаутская 74');
  271. INSERT INTO client
  272. VALUES (DEFAULT , 'Якуткин Тарас Матвеевич', 'Одесса', '380518399393', 'город Одесса, улица Болгарская 71 кв. 62');
  273. INSERT INTO client
  274. VALUES (DEFAULT , 'Розенбах Григорий Прокофиевич', 'Одесса', '380661762364', 'город Одесса, улица Деребасовская 3 кв. 95');
  275. INSERT INTO client
  276. VALUES (DEFAULT , 'Труш Платон Евграфович', 'Одесса', '380123909948', 'город Одесса, улица Пантелеймоновская 18/6');
  277. INSERT INTO client
  278. VALUES (DEFAULT , 'Бурцева Агния Ростиславовна', 'Одесса', '380858060690', 'город Одесса, улица Прохоровская 29');
  279. INSERT INTO client
  280. VALUES (DEFAULT , 'Истомин Моисей Назарович', 'Одесса', '380385397683', 'город Одесса, улица Мясоедовская 15б');
  281. INSERT INTO client
  282. VALUES (DEFAULT , 'Ябурова Лариса Семеновна', 'Одесса', '380952418081', 'город Одесса, улица Троицкая 6 ка.38');
  283. INSERT INTO client
  284. VALUES (DEFAULT , 'Севостьянова Арина Захаровна', 'Одесса', '380459900252', 'город Одесса, улица Жуковского 106');
  285. INSERT INTO client
  286. VALUES (DEFAULT , 'Севостьянова Арина Захаровна', 'Одесса', '380971252202', 'город Одесса, улица Пастера 72');
  287. INSERT INTO client
  288. VALUES (DEFAULT , 'Полторак Андриян Касьянович', 'Одесса', '380720993638', 'город Одесса, улица Торговая 22 кв. 63');
  289. INSERT INTO client
  290. VALUES (DEFAULT , 'Сухомлин Даниил Архипович', 'Одесса', '380253961659', 'город Одесса, улица Приморская 82');
  291. INSERT INTO client
  292. VALUES (DEFAULT , 'Лясин Герман Иннокентиевич', 'Одесса', '380835674748', 'город Одесса, улица Успенская 9. кв. 10');
  293. INSERT INTO client
  294. VALUES (DEFAULT , 'Кайпанов Максимильян Леонидович', 'Одесса', '380515771847', 'город Одесса, улица Базарная 73');
  295. INSERT INTO client
  296. VALUES (DEFAULT , 'Ямбушева Ираида Давидовна', 'Одесса', '380201302027', 'город Одесса, улица Затишная 30 кв.30');
  297. INSERT INTO client
  298. VALUES (DEFAULT , 'Хрущёв Даниил Семенович', 'Одесса', '380250118061 ', 'город Одесса, улица Приговорская 15');
  299. INSERT INTO client
  300. VALUES (DEFAULT , 'Антипин Владислав Вадимович', 'Одесса', '380451219486', 'город Одесса, улица Семинарская 83');
  301. INSERT INTO client
  302. VALUES (DEFAULT , 'Балаев Артем Севастьянович', 'Одесса', '380592973301', 'город Одесса, улица Армейская 15/4 кв 42');
  303. INSERT INTO client
  304. VALUES (DEFAULT , 'Греф Поликарп Кондратиевич', 'Одесса', '380962720696', 'город Одесса, улица Зоопарковая 55');
  305. INSERT INTO client
  306. VALUES (DEFAULT , 'Ямковой Юлия Афанасиевна', 'Одесса', '380991937210', 'город Одесса, улица Академическая 18');
  307. INSERT INTO client
  308. VALUES (DEFAULT , 'Головченко Владлена Станиславовна', 'Одесса', '380400355539', 'город Одесса, улица Генуезькая 40 кв.72');
  309. INSERT INTO client
  310. VALUES (DEFAULT , 'Лосевский Феликс Андреевич', 'Одесса', '380907829435', 'город Одесса, улица Тернистая 90/1а');
  311. INSERT INTO client
  312. VALUES (DEFAULT , 'Шаповалов Михей Сократович', 'Одесса', '380409996826', 'город Одесса, улица Гвардейская 32');
  313. INSERT INTO client
  314. VALUES (DEFAULT , 'Поличева Стела Вячеславовна', 'Одесса', '380701488055', 'город Одесса, улица Литературная 82');
  315. INSERT INTO client
  316. VALUES (DEFAULT , 'Ярыгина Агафья Фомевна', 'Одесса', '380377421232', 'город Одесса, улица Репина 30');
  317. INSERT INTO client
  318. VALUES (DEFAULT , 'Лешев Матвей Алексеевич', 'Одесса', '380639266435', 'город Одесса, улица Куприна 23 кв.43');
  319.  
  320. /*Контракты 1 дилера*/
  321. INSERT INTO contract
  322. VALUES (DEFAULT , 1, 1, '2018-01-01', 'MAZDA', 526, '2017-12-02', 100, '2018-01-02', 150000, 6000, '');
  323. INSERT INTO contract
  324. VALUES (DEFAULT , 2, 1, '2018-02-04', 'MAZDA', 508, '2016-11-22', 345, '2018-02-04', 200000, 15000, '');
  325. INSERT INTO contract
  326. VALUES (DEFAULT , 3, 1, '2017-10-01', 'MAZDA', 672, '2015-07-14', 100, '2017-10-05', 250000, 20000, '');
  327. INSERT INTO contract
  328. VALUES (DEFAULT , 4, 1, '2017-12-20', 'MAZDA', 891, '2017-10-10', 110, '2017-12-21', 175000, 15000, '');
  329. /*Контракты 2 дилера*/
  330. INSERT INTO contract
  331. VALUES (DEFAULT , 5, 2, '2018-11-10', 'HYUNDAI', 132, '2018-11-01', 493, '2018-11-14', 700000, 80000, '');
  332. INSERT INTO contract
  333. VALUES (DEFAULT , 6, 2, '2010-05-11', 'HYUNDAI', 782, '2009-01-23', 500, '2010-05-14', 300000, 20000, '');
  334. INSERT INTO contract
  335. VALUES (DEFAULT , 7, 2, '2017-12-20', 'HYUNDAI', 912, '2016-12-02', 536, '2017-12-23', 450000, 45000, '');
  336. INSERT INTO contract
  337. VALUES (DEFAULT , 8, 2, '2017-04-18', 'HYUNDAI', 392, '2017-03-16', 254, '2016-11-02', 600000, 50000, '');
  338. /*Контракты 3 дилера*/
  339. INSERT INTO contract
  340. VALUES (DEFAULT , 9, 3, '2008-05-02', 'BMW', 113, '2007-01-01', 600, '2008-05-12', 450000, 30000, '');
  341. INSERT INTO contract
  342. VALUES (DEFAULT , 10, 3, '2018-03-03', 'BMW', 345, '2018-01-01', 543, '2018-03-11', 1100000, 100000, '');
  343. INSERT INTO contract
  344. VALUES (DEFAULT , 11, 3, '2017-04-20', 'BMW', 654, '2016-11-01', 932, '2017-04-24', 490000, 34000, '');
  345. INSERT INTO contract
  346. VALUES (DEFAULT , 12, 3, '2017-11-12', 'BMW', 962, '2015-04-01', 1100, '2017-11-17', 780000, 70000, '');
  347. /*Контракты 4 дилера*/
  348. INSERT INTO contract
  349. VALUES (DEFAULT , 13, 4, '2018-07-12', 'WOLKSWAGEN', 912, '2018-07-13', 1100, '2018-06-01', 210000, 15000, '');
  350. INSERT INTO contract
  351. VALUES (DEFAULT , 14, 4, '2018-05-12', 'WOLKSWAGEN', 254, '2015-05-13', 1200, '2017-06-29', 300000, 19000, '');
  352. INSERT INTO contract
  353. VALUES (DEFAULT , 15, 4, '2018-10-12', 'WOLKSWAGEN', 823, '2018-10-14', 943, '2018-01-12', 780000, 43000, '');
  354. INSERT INTO contract
  355. VALUES (DEFAULT , 16, 4, '2018-03-12', 'WOLKSWAGEN', 190, '2018-03-14', 892, '2018-02-20', 780000, 50000, '');
  356. /*Контракты 5 дилера*/
  357. INSERT INTO contract
  358. VALUES (DEFAULT , 17, 5, '2016-02-11', 'RENAULT', 422, '2016-01-01', 365, '2016-02-13', 190000, 30000, '');
  359. INSERT INTO contract
  360. VALUES (DEFAULT , 18, 5, '2016-11-20', 'RENAULT', 672, '2015-12-01', 542, '2016-11-24', 290000, 25000, '');
  361. INSERT INTO contract
  362. VALUES (DEFAULT , 19, 5, '2015-05-01', 'RENAULT', 825, '2015-01-10', 102, '2015-05-08', 550000, 50000, '');
  363. INSERT INTO contract
  364. VALUES (DEFAULT , 20, 5, '2017-07-15', 'RENAULT', 501, '2017-01-29', 321, '2017-07-24', 430000, 41000, '');
  365. /*Контракты 6 дилера*/
  366. INSERT INTO contract
  367. VALUES (DEFAULT , 21, 6, '2015-07-15', 'KIA', 501, '2015-06-22', 382, '2015-07-22', 354000, 24000, '');
  368. INSERT INTO contract
  369. VALUES (DEFAULT , 22, 6, '2018-06-05', 'KIA', 221, '2018-03-29', 454, '2018-06-12', 410000, 41000, '');
  370. INSERT INTO contract
  371. VALUES (DEFAULT , 23, 6, '2017-10-25', 'KIA', 532, '2016-03-10', 333, '2017-11-01', 640000, 64000, '');
  372. INSERT INTO contract
  373. VALUES (DEFAULT , 24, 6, '2016-03-18', 'KIA', 452, '2016-02-01', 205, '2017-03-24', 550000, 55000, '');
  374. /*Контракты 7 дилера*/
  375. INSERT INTO contract
  376. VALUES (DEFAULT , 25, 7, '2016-05-10', 'FIAT', 111, '2016-02-01', 205, '2016-05-23', 320000, 25000, '');
  377. INSERT INTO contract
  378. VALUES (DEFAULT , 26, 7, '2017-06-02', 'FIAT', 145, '2016-05-01', 205, '2017-06-05', 478000, 45000, '');
  379. INSERT INTO contract
  380. VALUES (DEFAULT , 27, 7, '2018-11-20', 'FIAT', 284, '2017-09-01', 205, '2018-11-23', 578000, 54000, '');
  381. INSERT INTO contract
  382. VALUES (DEFAULT , 28, 7, '2018-12-01', 'FIAT', 402, '2018-02-01', 205, '2018-12-01', 400000, 39000, '');
  383. /*Контракты 8 дилера*/
  384. INSERT INTO contract
  385. VALUES (DEFAULT , 29, 8, '2017-03-11', 'JEEP', 325, '2016-03-15', 545, '2018-12-01', 450000, 60000, '');
  386. INSERT INTO contract
  387. VALUES (DEFAULT , 30, 8, '2018-04-03', 'JEEP', 345, '2018-04-05', 265, '2018-12-01', 3600000, 400000, '');
  388. INSERT INTO contract
  389. VALUES (DEFAULT , 31, 8, '2018-05-29', 'JEEP', 432, '2018-05-030', 465, '2018-12-01', 2500000, 230000, '');
  390. INSERT INTO contract
  391. VALUES (DEFAULT , 32, 8, '2015-06-21', 'JEEP', 352, '2015-06-23', 687, '2018-12-01', 1100000, 130000, '');
  392. /*Контракты 9 дилера*/
  393. INSERT INTO contract
  394. VALUES (DEFAULT , 33, 9, '2018-04-14', 'MERSEDES', 124, '2018-04-10', 137, '2018-04-14', 1550000, 200000, '');
  395. INSERT INTO contract
  396. VALUES (DEFAULT , 34, 9, '2018-04-23', 'MERSEDES', 234, '2018-03-01', 143, '2018-04-23', 700000, 100000, '');
  397. INSERT INTO contract
  398. VALUES (DEFAULT , 35, 9, '2017-09-09', 'MERSEDES', 324, '2017-05-20', 192, '2018-09-10', 2300000, 300000, '');
  399. INSERT INTO contract
  400. VALUES (DEFAULT , 36, 9, '2018-01-15', 'MERSEDES', 941, '2018-01-10', 182, '2018-01-16', 550000, 70000, '');
  401. INSERT INTO contract
  402. VALUES (DEFAULT , 36, 7, '2018-01-15', 'MERSEDES', 941, '2018-01-10', 182, '2018-01-16', 550000, 70000, '');
  403.  
  404. /*Работы Моториста*/
  405. INSERT INTO fix
  406. VALUES (DEFAULT , 'Ремонт ходовой', 'Моторист');
  407. INSERT INTO fix
  408. VALUES (DEFAULT , 'Ремонт двигателя', 'Моторист');
  409. INSERT INTO fix
  410. VALUES (DEFAULT , 'Замена двигателя', 'Моторист');
  411. INSERT INTO fix
  412. VALUES (DEFAULT , 'Установка новых запчастей', 'Моторист');
  413. /*Работы Автоэлектрика*/
  414. INSERT INTO fix
  415. VALUES (DEFAULT , 'Устранения неполадок электрики', 'Автоэлектрик');
  416. INSERT INTO fix
  417. VALUES (DEFAULT , 'Частичная замена электрики', 'Автоэлектрик');
  418. INSERT INTO fix
  419. VALUES (DEFAULT , 'Полная замена электрики', 'Автоэлектрик');
  420. INSERT INTO fix
  421. VALUES (DEFAULT , 'Подключения к автомобилю новых девайсов', 'Автоэлектрик');
  422. /*Работы Маляра*/
  423. INSERT INTO fix
  424. VALUES (DEFAULT , 'Устранения царапин', 'Маляр');
  425. INSERT INTO fix
  426. VALUES (DEFAULT , 'Шпаклевка', 'Маляр');
  427. INSERT INTO fix
  428. VALUES (DEFAULT , 'Устранения корозии', 'Маляр');
  429. INSERT INTO fix
  430. VALUES (DEFAULT , 'Покраска', 'Маляр');
  431. INSERT INTO fix
  432. VALUES (DEFAULT , 'Полная обработка кузова', 'Маляр');
  433. /*Работы Вулканизаторщика*/
  434. INSERT INTO fix
  435. VALUES (DEFAULT , 'Установка камер', 'Вулканизаторщик');
  436. INSERT INTO fix
  437. VALUES (DEFAULT , 'Настройка камер', 'Вулканизаторщик');
  438. INSERT INTO fix
  439. VALUES (DEFAULT , 'Починка камер', 'Вулканизаторщик');
  440. /*Работы Автожестянщика*/
  441. INSERT INTO fix
  442. VALUES (DEFAULT , 'Рихтовка кузова', 'Автожестянщик');
  443. INSERT INTO fix
  444. VALUES (DEFAULT , 'Исправления вмятин', 'Автожестянщик');
  445. INSERT INTO fix
  446. VALUES (DEFAULT , 'Полная обработка кузова', 'Автожестянщик');
  447. /*Работы Механика-диагноста*/
  448. INSERT INTO fix
  449. VALUES (DEFAULT , 'Диагностика автомобиля', 'Механик-диагност');
  450. INSERT INTO fix
  451. VALUES (DEFAULT , 'Диагностика двигателя', 'Механик-диагност');
  452. INSERT INTO fix
  453. VALUES (DEFAULT , 'Диагностика ходовой', 'Механик-диагност');
  454. INSERT INTO fix
  455. VALUES (DEFAULT , 'Диагностика электрики', 'Механик-диагност');
  456.  
  457.  
  458.  
  459. INSERT INTO repair
  460. VALUES (DEFAULT , 1, 14, 24,'2018-11-20', 2, 38230);
  461. INSERT INTO repair
  462. VALUES (DEFAULT , 12, 26, 32,'2018-11-20', 20, 18655);
  463. INSERT INTO repair
  464. VALUES (DEFAULT , 14, 2, 18,'2017-11-20', 20, 11350);
  465. INSERT INTO repair
  466. VALUES (DEFAULT , 20, 31, 27,'2018-11-20', 11, 37710);
  467. INSERT INTO repair
  468. VALUES (DEFAULT , 6, 16, 3,'2018-11-20', 11, 25288);
  469. INSERT INTO repair
  470. VALUES (DEFAULT , 21, 30, 15,'2018-11-20', 20, 22208);
  471. INSERT INTO repair
  472. VALUES (DEFAULT , 2, 15, 1,'2017-11-20', 9, 15892);
  473. INSERT INTO repair
  474. VALUES (DEFAULT , 4, 11, 25,'2018-11-20', 8, 32722);
  475. INSERT INTO repair
  476. VALUES (DEFAULT , 11, 28, 16,'2018-11-20', 10, 37909);
  477. INSERT INTO repair
  478. VALUES (DEFAULT , 9, 10, 23,'2018-11-20', 18, 19248);
  479. INSERT INTO repair
  480. VALUES (DEFAULT , 18, 23, 10,'2018-11-20', 3, 18856);
  481. INSERT INTO repair
  482. VALUES (DEFAULT , 17, 23, 40,'2018-11-20', 9, 10018);
  483. INSERT INTO repair
  484. VALUES (DEFAULT , 3, 17, 34,'2017-11-20', 8, 25377);
  485. INSERT INTO repair
  486. VALUES (DEFAULT , 23, 35, 13,'2018-12-01', 11, 14097);
  487. INSERT INTO repair
  488. VALUES (DEFAULT , 14, 24, 41,'2018-11-20', 24, 11924);
  489. INSERT INTO repair
  490. VALUES (DEFAULT , 4, 11, 9,'2018-11-20', 1, 20863);
  491. INSERT INTO repair
  492. VALUES (DEFAULT , 13, 28, 33,'2018-11-20', 50, 32775);
  493. INSERT INTO repair
  494. VALUES (DEFAULT , 8, 24, 12,'2018-11-20', 20, 18768);
  495. INSERT INTO repair
  496. VALUES (DEFAULT , 16, 36, 41,'2017-11-20', 2, 23196);
  497. INSERT INTO repair
  498. VALUES (DEFAULT , 7, 19, 11,'2018-11-20', 38, 25654);
  499. INSERT INTO repair
  500. VALUES (DEFAULT , 19, 15, 39,'2018-11-20', 45, 21934);
  501.  
  502. /*Полная информация о дилерах*/
  503. CREATE VIEW FullContractInformation AS
  504. SELECT contract.id ContractId, dealer.fullName Dealer, contract.dateContract, carBrand CarBrand, client.fullName NameClient,
  505. client.cityName City, client.address, client.phone, contract.dateSale, contract.priceSale, contract.notes
  506. FROM contract
  507. RIGHT OUTER JOIN dealer ON contract.idDealer = dealer.id
  508. RIGHT OUTER JOIN client ON contract.idClient = client.id;
  509. /*SELECT * FROM FullContractInformation;*/
  510.  
  511.  
  512.  
  513. /*Сортировка клиентов*/
  514. CREATE VIEW sorting AS
  515. SELECT * FROM client
  516. ORDER BY client.fullName;
  517. /*SELECT *FROM sorting;*/
  518.  
  519. /*Вывод суммы всех продаж и коммисий*/
  520. CREATE VIEW total_priceSale_and_commission AS
  521. SELECT SUM(priceSale) TotalPriceSale, SUM(commission) TotalCommission From contract;
  522. /*SELECT * FROM total_priceSale_and_commission;*/
  523.  
  524.  
  525. /*Зароботок фирмы за все контракты*/
  526. CREATE FUNCTION sumSale(name text) RETURNS float AS
  527. $$
  528. DECLARE
  529. sum float;
  530.  
  531. BEGIN
  532. sum := (SELECT SUM(priceSale) AS q FROM contract WHERE name=(SELECT fullName FROM dealer WHERE dealer.id= contract.idDealer));
  533.  
  534. return sum;
  535. end;
  536. $$ LANGUAGE plpgsql;
  537. /*SELECT * FROM sumSale('Palisade');*/
  538.  
  539. /*Вывод контрактов которые младше определенной даты*/
  540. /*SELECT id, idDealer, idClient, notes FROM contract WHERE dateSale<'2017-08-01';*/
  541.  
  542. /*Вывод клиентов которые находятся на ремонте*/
  543. /*SELECT * FROM client WHERE id IN (SELECT idClient FROM contract WHERE id IN (SELECT idContract FROM repair));*/
  544.  
  545.  
  546. /*сколько всего заказов в дилера
  547. SELECT COUNT(*) FROM contract WHERE idDealer = 1;*/
  548.  
  549. /*Вывод ифнормации о деятельности дилере*/
  550. /*SELECT * FROM contract WHERE idDealer = 4;*/
  551.  
  552. /*Вывод суммы всех зарплат мастеров и их кол-во*/
  553. /*SELECT SUM(salary) AS Sum_Salary, COUNT(*) AS Quantity FROM master;*/
  554.  
  555. /*Вывод средней зарплаты мастеров и иx количество*/
  556. /*SELECT AVG(salary) AS average_salary, COUNT(*) AS Quantity FROM master;*/
  557.  
  558. /*Выводит 5 самых больших заказов
  559. SELECT contract.idClient, client.fullName, contract.idDealer, dealer.fullName, contract.dateContract, contract.carBrand, contract.priceSale
  560. FROM contract, client, dealer
  561. WHERE contract.idDealer = dealer.id AND contract.idClient=client.id
  562. ORDER BY contract.priceSale DESC
  563. LIMIT 5;*/
  564.  
  565. /*Выводит мастеров у которых зарплата в диапазоне до 10 000 до 15 000*/
  566. /*SELECT * FROM master WHERE salary BETWEEN 10000 AND 15000;*/
  567.  
  568. /*Вывод мастеров у которых зарплата больше средней*/
  569. SELECT * FROM master WHERE salary > (SELECT AVG(salary) FROM master);
  570.  
  571. /*Вывод имен клиентов у которых больше 1 заказа*/
  572. SELECT fullName FROM client WHERE 1<(SELECT COUNT(idClient) FROM contract WHERE idClient = client.id);
  573.  
  574. /*Подсчет количества заключенных контрактов всех клиентов*/
  575. CREATE FUNCTION kolv(N INT) RETURNS int AS
  576. $$
  577. DECLARE
  578. q INT;
  579. BEGIN
  580. q:=(SELECT COUNT(*) FROM contract WHERE idClient=N);
  581. RETURN q;
  582. END;
  583. $$LANGUAGE plpgsql;
  584. SELECT idClient, kolv(idClient) FROM contract GROUP BY idClient HAVING COUNT(*) >=1 ORDER BY idClient ;
  585.  
  586. /*Подсчет количества заключенных контрактов диллера*/
  587. CREATE FUNCTION kolvD(N INT) RETURNS int AS
  588. $$
  589. DECLARE
  590. q INT;
  591. BEGIN
  592. q:=(SELECT COUNT(*) FROM contract WHERE idDealer=N);
  593. RETURN q;
  594. END;
  595. $$LANGUAGE plpgsql;
  596. /*SELECT idDealer, kolvD(idDealer) FROM contract GROUP BY idDealer HAVING COUNT(*) >=1 ORDER BY idDealer ;*/
  597.  
  598. /*Обеспечения целотности данных*/
  599. CREATE FUNCTION checkId() RETURNS trigger AS
  600. $$
  601. DECLARE
  602. rec record;
  603. BEGIN
  604. SELECT into rec*
  605. FROM dealer WHERE id=new.idDealer;
  606. IF NULL
  607. THEN
  608. ELSE
  609. RETURN new;
  610. END IF;
  611. END;
  612. $$LANGUAGE plpgsql;
  613.  
  614. CREATE TRIGGER control
  615. BEFORE INSERT
  616. ON contract
  617. FOR EACH ROW
  618. EXECUTE PROCEDURE checkId();
  619.  
  620.  
  621. /*Тригер контроля добавления*/
  622. CREATE OR REPLACE FUNCTION add_dealer()
  623. RETURNS TRIGGER
  624. AS $$ BEGIN
  625. PERFORM id FROM dealer
  626. WHERE id=new.id;
  627. IF FOUND THEN
  628. RAISE EXCEPTION
  629. 'Error!';
  630. END IF;
  631. RETURN new;
  632. END;$$
  633. LANGUAGE 'plpgsql';
  634.  
  635. CREATE TRIGGER add_dealer
  636. BEFORE INSERT OR UPDATE ON dealer
  637. FOR EACH ROW
  638. EXECUTE PROCEDURE add_dealer();
  639.  
  640. /*Проверка уникальности нового контракта*/
  641. CREATE OR REPLACE FUNCTION add_contract()
  642. RETURNS TRIGGER
  643. AS $$ BEGIN
  644. PERFORM id FROM contract
  645. WHERE id=new.id;
  646. IF FOUND THEN
  647. RAISE EXCEPTION
  648. 'Error new id exist!';
  649. END IF;
  650. RETURN new;
  651. END;$$
  652. LANGUAGE 'plpgsql';
  653.  
  654. CREATE TRIGGER add_contract
  655. BEFORE INSERT OR UPDATE ON contract
  656. FOR EACH ROW
  657. EXECUTE PROCEDURE add_contract();
  658.  
  659. /*Проверка уникальности нового дилера*/
  660. CREATE OR REPLACE FUNCTION add_dealer()
  661. RETURNS TRIGGER
  662. AS $$ BEGIN
  663. PERFORM id FROM dealer
  664. WHERE id=new.id;
  665. IF FOUND THEN
  666. RAISE EXCEPTION
  667. 'Error new id exist!';
  668. END IF;
  669. RETURN new;
  670. END;$$
  671. LANGUAGE 'plpgsql';
  672.  
  673. CREATE TRIGGER add_dealer
  674. BEFORE INSERT OR UPDATE ON dealer
  675. FOR EACH ROW
  676. EXECUTE PROCEDURE add_dealer();
  677.  
  678. /*Проверка уникальности нового клиента*/
  679. CREATE OR REPLACE FUNCTION add_client()
  680. RETURNS TRIGGER
  681. AS $$ BEGIN
  682. PERFORM id FROM client
  683. WHERE id=new.id;
  684. IF FOUND THEN
  685. RAISE EXCEPTION
  686. 'Error new id exist!';
  687. END IF;
  688. RETURN new;
  689. END;$$
  690. LANGUAGE 'plpgsql';
  691.  
  692. CREATE TRIGGER add_client
  693. BEFORE INSERT OR UPDATE ON client
  694. FOR EACH ROW
  695. EXECUTE PROCEDURE add_client();
  696.  
  697.  
  698. /*Владелец*/
  699. CREATE ROLE ownserver WITH PASSWORD 'AFr$gX9@Bf43*7#V12=LoR-S';
  700. GRANT ALL ON ALL TABLES IN SCHEMA public TO ownserver WITH GRANT OPTION;
  701.  
  702. /*Администратор*/
  703. CREATE ROLE administrator WITH PASSWORD 'KLA(SD898%^J@h)s7KL-S,M';
  704. GRANT SELECT, UPDATE, INSERT, DELETE ON ALL TABLES IN SCHEMA public TO administrator;
  705.  
  706. /*Работник*/
  707. CREATE ROLE employee WITH PASSWORD 'JlKIl193$*&@0QmwD)';
  708. GRANT SELECT, INSERT, UPDATE ON contract, dealer, client TO employe;
  709.  
  710. /*Клиент*/
  711. CREATE ROLE client WITH PASSWORD 'IUA)S$D5b56DNA2';
  712. GRANT SELECT ON dealer TO client;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement