Advertisement
ademosh

Untitled

Jan 30th, 2020
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.77 KB | None | 0 0
  1. CREATE DATABASE
  2.  
  3. CREATE TABLE `Clients` (
  4. `Client_ID` INT NOT NULL AUTO_INCREMENT,
  5. `First_Name` VARCHAR(255) NOT NULL,
  6. `Second_Name` VARCHAR(255) NOT NULL,
  7. `Phone_Number` VARCHAR(255) NOT NULL,
  8. PRIMARY KEY (`Client_ID`)
  9. );
  10.  
  11. CREATE TABLE `Technique` (
  12. `Technique_ID` INT NOT NULL AUTO_INCREMENT,
  13. `Manufacturer` VARCHAR(255) NOT NULL,
  14. `Model` VARCHAR(255) NOT NULL,
  15. PRIMARY KEY (`Technique_ID`)
  16. );
  17.  
  18. CREATE TABLE `Orders` (
  19. `Order_ID` INT NOT NULL AUTO_INCREMENT,
  20. `Client_ID` INT NOT NULL,
  21. `Work_ID` INT NOT NULL,
  22. `Cost` FLOAT NOT NULL,
  23. `Status` BOOLEAN NOT NULL,
  24. `Payment_ID` INT NOT NULL,
  25. `Date` TIME NOT NULL,
  26. PRIMARY KEY (`Order_ID`)
  27. );
  28.  
  29. CREATE TABLE `Purchase_Parts` (
  30. `Work_ID` INT NOT NULL,
  31. `Detail_ID` INT NOT NULL,
  32. `Amount` INT NOT NULL
  33. );
  34.  
  35. CREATE TABLE `Details` (
  36. `Detail_ID` INT NOT NULL AUTO_INCREMENT,
  37. `Name` VARCHAR(255) NOT NULL,
  38. `Availability` BINARY NOT NULL,
  39. `Cost` FLOAT NOT NULL,
  40. PRIMARY KEY (`Detail_ID`)
  41. );
  42.  
  43. CREATE TABLE `Providers` (
  44. `Provider_ID` INT NOT NULL AUTO_INCREMENT,
  45. `Detail_ID` INT NOT NULL,
  46. PRIMARY KEY (`Provider_ID`)
  47. );
  48.  
  49. CREATE TABLE `Works` (
  50. `Order_ID` INT NOT NULL,
  51. `Work_ID` INT NOT NULL AUTO_INCREMENT,
  52. `Technique_ID` INT NOT NULL,
  53. `Worker_ID` INT NOT NULL,
  54. `Details_ID` INT NOT NULL,
  55. `Work_Price` FLOAT NOT NULL,
  56. PRIMARY KEY (`Work_ID`)
  57. );
  58.  
  59. CREATE TABLE `Payment` (
  60. `Payment_ID` INT NOT NULL AUTO_INCREMENT,
  61. `Payment_Type` VARCHAR(255) NOT NULL,
  62. `Payment_Fees` INT NOT NULL,
  63. PRIMARY KEY (`Payment_ID`)
  64. );
  65.  
  66. CREATE TABLE `Workers` (
  67. `Worker_ID` INT NOT NULL,
  68. `Department` INT NOT NULL,
  69. `First_Name` VARCHAR(255) NOT NULL,
  70. `Second_Name` VARCHAR(255) NOT NULL,
  71. `Phone_Number` INT NOT NULL,
  72. PRIMARY KEY (`Worker_ID`)
  73. );
  74.  
  75. CREATE TABLE `Department` (
  76. `Department_ID` INT NOT NULL AUTO_INCREMENT,
  77. `Department_Name` VARCHAR(255) NOT NULL,
  78. PRIMARY KEY (`Department_ID`)
  79. );
  80.  
  81. ALTER TABLE `Orders` ADD CONSTRAINT `Orders_fk0` FOREIGN KEY (`Client_ID`) REFERENCES `Clients`(`Client_ID`);
  82.  
  83. ALTER TABLE `Orders` ADD CONSTRAINT `Orders_fk1` FOREIGN KEY (`Payment_ID`) REFERENCES `Payment`(`Payment_ID`);
  84.  
  85. ALTER TABLE `Purchase_Parts` ADD CONSTRAINT `Purchase_Parts_fk0` FOREIGN KEY (`Work_ID`) REFERENCES `Works`(`Work_ID`);
  86.  
  87. ALTER TABLE `Purchase_Parts` ADD CONSTRAINT `Purchase_Parts_fk1` FOREIGN KEY (`Detail_ID`) REFERENCES `Details`(`Detail_ID`);
  88.  
  89. ALTER TABLE `Providers` ADD CONSTRAINT `Providers_fk0` FOREIGN KEY (`Detail_ID`) REFERENCES `Details`(`Detail_ID`);
  90.  
  91. ALTER TABLE `Works` ADD CONSTRAINT `Works_fk0` FOREIGN KEY (`Order_ID`) REFERENCES `Orders`(`Order_ID`);
  92.  
  93. ALTER TABLE `Works` ADD CONSTRAINT `Works_fk1` FOREIGN KEY (`Technique_ID`) REFERENCES `Technique`(`Technique_ID`);
  94.  
  95. ALTER TABLE `Works` ADD CONSTRAINT `Works_fk2` FOREIGN KEY (`Worker_ID`) REFERENCES `Workers`(`Worker_ID`);
  96.  
  97. ALTER TABLE `Workers` ADD CONSTRAINT `Workers_fk0` FOREIGN KEY (`Department`) REFERENCES `Department`(`Department_ID`);
  98.  
  99.  
  100. INSERT INTO Payment VALUES
  101. (2,N'Безналичный расчет',2),
  102. (3,N'Банковский перевод',5);
  103.  
  104. INSERT INTO department VALUES
  105. (1,N'Ремонт бытовой техники'),
  106. (2,N'Ремонт компьютеров'),
  107. (3,N'Ремонт мобильной техники');
  108.  
  109. INSERT INTO workers VALUES
  110. (1,1,'Владислав','Петров',123123),
  111. (2,1,'Алексий','Петро',123123),
  112. (3,2,'Евгений','Петров',123123),
  113. (4,3,'Иван','Иванов',123123),
  114. (5,1,'Максим','Максимов',123123),
  115. (6,3,'Александр','Александров',123123),
  116. (7,3,'Александр','Сидоров',123123),
  117. (8,1,'Алексей','Алексеев',123123);
  118.  
  119. INSERT INTO details VALUES
  120. (2,'GTX660',1,1300),
  121. (3,'Ryzen 3600',1,4100),
  122. (4,'GTX1660',1,1040),
  123. (5,'GTX1660 Super',1,1800),
  124. (6,'GTX 2060',1,10405),
  125. (7,'9400f',1,1030),
  126. (8,'Test16',1,1005),
  127. (9,'ARMv7',1,1400);
  128.  
  129.  
  130.  
  131. /* Декартово произв.*/
  132. SELECT * from Workers CROSS JOIN Payment
  133.  
  134.  
  135. /* объединение по условию*/
  136. SELECT Workers.Worker_ID, Workers.Second_Name,Department.Department_Name
  137. FROM Workers
  138. INNER JOIN Department ON (Workers.Department=Department.Department_ID);
  139.  
  140. SELECT * from Workers
  141. WHERE Second_Name IN('Иванов','Алексеев');
  142.  
  143.  
  144. SELECT DISTINCT Payment_Type,Payment_fees,
  145. CASE
  146. WHEN Payment_fees < 3.0 THEN'Все норм'
  147. ELSE 'Дороговато'
  148. END Vyvod
  149. FROM Payment;
  150.  
  151. SELECT * FROM Payment ORDER BY Payment_fees DESC;
  152. SELECT * FROM Payment ORDER BY Payment_fees ASC;
  153.  
  154. SELECT MIN(Payment_fees) AS Min_fees
  155. FROM Payment;
  156.  
  157.  
  158. SELECT MAX(Detail_ID),Name from Details GROUP BY Name HAVING Name LIKE '%16%';
  159.  
  160. SELECT DATE_ADD('2018-01-27T13:00:00', interval '01T00:00:15' DAY_SECOND);
  161.  
  162. SELECT * from Worker
  163. WHERE Worker_ID BETWEEN 2 AND 3
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement