AleksandarH

Y2S1 DML & DDL Homework

Dec 4th, 2021 (edited)
374
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. CREATE TABLE "Position"
  2. (
  3.     P_ID INTEGER NOT NULL,
  4.     P_Name VARCHAR(30),
  5.     CONSTRAINT Position_PK PRIMARY KEY (P_ID)
  6. );
  7.  
  8. INSERT INTO "Position" VALUES (1, 'Store Manager');
  9. INSERT INTO "Position" VALUES (2, 'Assistant Store Manager');
  10. INSERT INTO "Position" VALUES (3, 'Cashier');
  11. INSERT INTO "Position" VALUES (4, 'Clerk');
  12. INSERT INTO "Position" VALUES (5, 'bagger'); -- Position name is written wrong. (Later updated)
  13. INSERT INTO "Position" VALUES (6, 'Mechanic'); -- We do not offer such job positions. (Later deleted)
  14.  
  15. -- Fixing grammar.
  16. UPDATE "Position"
  17. SET P_Name = 'Bagger'
  18. WHERE P_ID = 5;
  19.  
  20. -- Deleting a position that is not appropriate for the store.
  21. DELETE FROM "Position"
  22. WHERE P_ID = 6;
  23.  
  24. CREATE TABLE Employee
  25. (
  26.     E_ID INTEGER NOT NULL,
  27.     E_Name VARCHAR(30),
  28.     E_Phone_Number VARCHAR(30),
  29.     Position_P_ID INTEGER NOT NULL,
  30.     CONSTRAINT Employee_PK PRIMARY KEY (E_ID),
  31.     CONSTRAINT Employee_Position_FK FOREIGN KEY (Position_P_ID) REFERENCES "Position" (P_ID)
  32. );
  33.  
  34. INSERT INTO Employee VALUES (1, 'Aleksandar H.', '+359882702937', 1);
  35. INSERT INTO Employee VALUES (2, 'Nikola G.', '+359881074536', 2);
  36. INSERT INTO Employee VALUES (3, 'Mihail K.', '+359895603179', 3);
  37. INSERT INTO Employee VALUES (4, 'Yancho S.', '+359892852965', 3);
  38. INSERT INTO Employee VALUES (5, 'Svilen S.', '+359884916041', 3);
  39. INSERT INTO Employee VALUES (6, 'Kaloyan A.', '+359886831943', 4);
  40. INSERT INTO Employee VALUES (7, 'Darina U.', '+359892830965', 4);
  41. INSERT INTO Employee VALUES (8, 'Emil K.', '+359899533930', 5);
  42. INSERT INTO Employee VALUES (9, 'Nikolai K.', '+359881805433', 4); -- Employee is being moved to another position to compensate for the fired staff member. (Later updated)
  43. INSERT INTO Employee VALUES (10, 'Stefan C.', '+359896031865', 5); -- This employee did not do their job well, thus he is getting fired. (Later deleted)
  44.  
  45. -- Moving employee to another position.
  46. UPDATE Employee
  47. SET Position_P_ID = 5
  48. WHERE E_ID = 9;
  49.  
  50. -- Employee is being fired from the job.
  51. DELETE FROM Employee
  52. WHERE E_ID = 10;
  53.  
  54. CREATE TABLE Customer
  55. (
  56.     C_ID INTEGER NOT NULL,
  57.     C_Name VARCHAR(30),
  58.     C_Phone_Number VARCHAR(30),
  59.     CONSTRAINT Customer_PK PRIMARY KEY (C_ID)
  60. );
  61.  
  62. INSERT INTO Customer VALUES (1, 'Shaquille O.', '+359892988957');
  63. INSERT INTO Customer VALUES (2, 'LeBron J.', '+359880592638');
  64. INSERT INTO Customer VALUES (3, 'Kobe B.', '+359898964562');
  65. INSERT INTO Customer VALUES (4, 'Dennis R.', '359881059382'); -- Wrong phone number format. (Later updated)
  66. INSERT INTO Customer VALUES (5, 'Michael J.', '+359893892403'); -- Customer is being kicked out of the store for inappropriate actions. (Later deleted)
  67.  
  68. -- Fixing phone number format.
  69. UPDATE Customer
  70. SET C_Phone_Number = '+359881059382'
  71. WHERE C_ID = 4;
  72.  
  73. -- Kicking customer out for inappropriate actions.
  74. DELETE FROM Customer
  75. WHERE C_ID = 5;
  76.  
  77. CREATE TABLE "Transaction"
  78. (
  79.     T_ID INTEGER NOT NULL,
  80.     T_Date DATE,
  81.     Customer_C_ID INTEGER NOT NULL,
  82.     Employee_E_ID INTEGER NOT NULL,
  83.     CONSTRAINT Transaction_PK PRIMARY KEY (T_ID),
  84.     CONSTRAINT Transaction_Customer_FK FOREIGN KEY (Customer_C_ID) REFERENCES Customer (C_ID),
  85.     CONSTRAINT Transaction_Employee_FK FOREIGN KEY (Employee_E_ID) REFERENCES Employee (E_ID)
  86. );
  87.  
  88. INSERT INTO "Transaction" VALUES (1, '18-JAN-21', 1, 5);
  89. INSERT INTO "Transaction" VALUES (2, '21-FEB-21', 2, 4);
  90. INSERT INTO "Transaction" VALUES (3, '10-MAR-23', 3, 3); -- Wrong year on transaction date. (Later updated)
  91. INSERT INTO "Transaction" VALUES (4, '23-AUG-21', 4, 5);
  92. INSERT INTO "Transaction" VALUES (5, '14-OCT-21', 4, 4);
  93. INSERT INTO "Transaction" VALUES (6, '30-DEC-21', 3, 3);
  94. INSERT INTO "Transaction" VALUES (7, '03-JUL-21', 2, 5);
  95. INSERT INTO "Transaction" VALUES (8, '20-SEP-21', 1, 4);
  96. INSERT INTO "Transaction" VALUES (9, '09-JUN-21', 1, 3);
  97. INSERT INTO "Transaction" VALUES (10, '27-NOV-21', 2, 4);
  98. INSERT INTO "Transaction" VALUES (11, '27-NOV-21', 2, 4); -- Our cashier accidentally created a duplicate transaction, so it has to be deleted. (Later deleted)
  99.  
  100. -- Fixing the year of the transaction date.
  101. UPDATE "Transaction"
  102. SET T_Date = '10-MAR-21'
  103. WHERE T_ID = 3;
  104.  
  105. -- Deleting the duplicate transaction.
  106. DELETE FROM "Transaction"
  107. WHERE T_ID = 11;
  108.  
  109. CREATE TABLE "Group"
  110. (
  111.     G_ID INTEGER NOT NULL,
  112.     G_Name VARCHAR(30),
  113.     CONSTRAINT Group_PK PRIMARY KEY (G_ID)
  114. );
  115.  
  116. INSERT INTO "Group" VALUES (1, 'Fruits');
  117. INSERT INTO "Group" VALUES (2, 'Vegetables');
  118. INSERT INTO "Group" VALUES (3, 'Meats'); -- Product category name is written wrong. (Later updated)
  119. INSERT INTO "Group" VALUES (4, 'Dairy');
  120. INSERT INTO "Group" VALUES (5, 'Drinks');
  121. INSERT INTO "Group" VALUES (6, 'Snacks');
  122. INSERT INTO "Group" VALUES (7, 'Tools'); -- A tools product category exists, it has to be deleted as this is a grocery store. (Later deleted)
  123.  
  124. -- Fixing grammar for product category name.
  125. UPDATE "Group"
  126. SET G_Name = 'Meat'
  127. WHERE G_ID = 3;
  128.  
  129. -- Deleting product category, as this is a grocery store. We do not sell tools.
  130. DELETE FROM "Group"
  131. WHERE G_ID = 7;
  132.  
  133. CREATE TABLE Product
  134. (
  135.     P_ID INTEGER NOT NULL,
  136.     P_Name VARCHAR(30),
  137.     Group_G_ID INTEGER NOT NULL,
  138.     CONSTRAINT Product_PK PRIMARY KEY (P_ID),
  139.     CONSTRAINT Product_Group_FK FOREIGN KEY (Group_G_ID) REFERENCES "Group" (G_ID)
  140. );
  141.  
  142. -- Fruits
  143. INSERT INTO Product VALUES (1, 'Apple', 1);
  144. INSERT INTO Product VALUES (2, 'Banana', 1);
  145. INSERT INTO Product VALUES (3, 'Strawberries', 1);
  146. INSERT INTO Product VALUES (4, 'Grapes', 1);
  147. INSERT INTO Product VALUES (5, 'Orange', 1);
  148. INSERT INTO Product VALUES (6, 'Fruit Juice', 1); -- Product has been placed in the wrong product category. (Later deleted)
  149.  
  150. -- Vegetables
  151. INSERT INTO Product VALUES (7, 'Potato', 2);
  152. INSERT INTO Product VALUES (8, 'Tomato', 2);
  153. INSERT INTO Product VALUES (9, 'Onion', 2);
  154. INSERT INTO Product VALUES (10, 'Carrot', 2);
  155. INSERT INTO Product VALUES (11, 'Lettuce', 2);
  156. INSERT INTO Product VALUES (12, 'Cucumber', 2);
  157.  
  158. -- Meat
  159. INSERT INTO Product VALUES (13, 'Ham', 3);
  160. INSERT INTO Product VALUES (14, 'Chicken', 3);
  161. INSERT INTO Product VALUES (15, 'Porkchop', 3);
  162. INSERT INTO Product VALUES (16, 'Steak', 3);
  163. INSERT INTO Product VALUES (17, 'Bacon', 3);
  164. INSERT INTO Product VALUES (18, 'Sausage', 3);
  165.  
  166. -- Dairy
  167. INSERT INTO Product VALUES (19, 'Milk', 4);
  168. INSERT INTO Product VALUES (20, 'Cheese', 4);
  169. INSERT INTO Product VALUES (21, 'Yellow Cheese', 4);
  170. INSERT INTO Product VALUES (22, 'Yogurt', 4);
  171. INSERT INTO Product VALUES (23, 'Cream', 4);
  172. INSERT INTO Product VALUES (24, 'Butter', 4);
  173.  
  174. -- Drinks
  175. INSERT INTO Product VALUES (25, 'Coca-Cola', 5);
  176. INSERT INTO Product VALUES (26, 'Fanta', 5);
  177. INSERT INTO Product VALUES (27, 'Sprite', 5);
  178. INSERT INTO Product VALUES (28, 'Ice Tea', 5);
  179. INSERT INTO Product VALUES (29, 'Energy Drink', 5);
  180. INSERT INTO Product VALUES (30, 'Bottled Water', 5);
  181. INSERT INTO Product VALUES (31, 'Grapefruit', 5); -- A fruit is placed in the drink category, instead, it should be placed in the fruit category. (Later updated)
  182.  
  183. -- Snacks
  184. INSERT INTO Product VALUES (32, 'Ruffles', 6);
  185. INSERT INTO Product VALUES (33, 'Cookies', 6);
  186. INSERT INTO Product VALUES (34, 'Doritos', 6);
  187. INSERT INTO Product VALUES (35, 'Snickers', 6);
  188. INSERT INTO Product VALUES (36, 'Pringles', 6);
  189. INSERT INTO Product VALUES (37, 'Cheetos', 6);
  190.  
  191. -- Rearranging the fruit, out of the drinks category, back into the fruits category.
  192. UPDATE Product
  193. SET Group_G_ID = 1
  194. WHERE P_ID = 31;
  195.  
  196. -- Deleting a product that shouldn't be in that product category.
  197. DELETE FROM Product
  198. WHERE P_ID = 6;
  199.  
  200. CREATE TABLE Cart
  201. (
  202.     C_ID INTEGER NOT NULL,
  203.     Quantity INTEGER, -- Quantity of the product bought.
  204.     Product_P_ID INTEGER NOT NULL,
  205.     CONSTRAINT Cart_PK PRIMARY KEY (C_ID),
  206.     CONSTRAINT Cart_Product_FK FOREIGN KEY (Product_P_ID) REFERENCES Product (P_ID)
  207. );
  208.  
  209. INSERT INTO Cart VALUES (1, 1, 1);
  210. INSERT INTO Cart VALUES (2, 2, 19);
  211. INSERT INTO Cart VALUES (3, 4, 7);
  212. INSERT INTO Cart VALUES (4, 2, 16);
  213. INSERT INTO Cart VALUES (5, 4, 30);
  214. INSERT INTO Cart VALUES (6, 2, 35);
  215. INSERT INTO Cart VALUES (7, 4, 18);
  216. INSERT INTO Cart VALUES (8, 8, 29);
  217. INSERT INTO Cart VALUES (9, 3, 5);
  218. INSERT INTO Cart VALUES (10, 4, 8); -- Cashier did not scan the last item, they are supposed to be five. (Later updated)
  219. INSERT INTO Cart VALUES (11, 6, 17); -- One of our customers changed their mind and decided not to buy anything. (Later deleted)
  220.  
  221. -- Scanning the last item.
  222. UPDATE Cart
  223. SET Quantity = 5
  224. WHERE C_ID = 10;
  225.  
  226. -- Removing products from cart.
  227. DELETE FROM Cart
  228. WHERE C_ID = 11;
  229.  
  230. CREATE TABLE Receipt
  231. (
  232.     R_ID INTEGER NOT NULL,
  233.     Total NUMBER(7,2), -- Total in BGN.
  234.     Transaction_T_ID INTEGER NOT NULL,
  235.     Cart_C_ID INTEGER NOT NULL,
  236.     CONSTRAINT Receipt_PK PRIMARY KEY (R_ID),
  237.     CONSTRAINT Receipt_Transaction_FK FOREIGN KEY (Transaction_T_ID) REFERENCES "Transaction" (T_ID),
  238.     CONSTRAINT Receipt_Cart_FK FOREIGN KEY (Cart_C_ID) REFERENCES Cart (C_ID)
  239. );
  240.  
  241. INSERT INTO Receipt VALUES (1, 3.75, 1, 1);
  242. INSERT INTO Receipt VALUES (2, 5.00, 2, 2);
  243. INSERT INTO Receipt VALUES (3, 4.00, 3, 3);
  244. INSERT INTO Receipt VALUES (4, 9.50, 4, 4);
  245. INSERT INTO Receipt VALUES (5, 3.00, 5, 5);
  246. INSERT INTO Receipt VALUES (6, 2.50, 6, 6);
  247. INSERT INTO Receipt VALUES (7, 10.00, 7, 7);
  248. INSERT INTO Receipt VALUES (8, 7.60, 8, 8); -- The total for the products bought is incorrect, the total has to be recalculated. (Later updated)
  249. INSERT INTO Receipt VALUES (9, 5.25, 9, 9);
  250. INSERT INTO Receipt VALUES (10, 6.75, 10, 10);
  251. INSERT INTO Receipt VALUES (11, 6.75, 10, 10); -- Our cashier printed a receipt twice, so we have to dispose of the duplicate receipt. (Later deleted)
  252.  
  253. -- Fixing the total for the receipt.
  254. UPDATE Receipt
  255. SET Total = 8.00
  256. WHERE R_ID = 8;
  257.  
  258. -- Disposing of the duplicate receipt.
  259. DELETE FROM Receipt
  260. WHERE R_ID = 11;
Add Comment
Please, Sign In to add comment