Advertisement
Guest User

Untitled

a guest
Oct 19th, 2017
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.33 KB | None | 0 0
  1. SQL code
  2.  
  3. -- Dropping the tables so we can continuously run the code
  4. DROP TABLE Venue;
  5. DROP TABLE Coach;
  6. DROP TABLE Achievement;
  7. DROP TABLE Booking;
  8. DROP TABLE TrainingItems;
  9. DROP TABLE Client;
  10.  
  11. -- Creating the tables
  12. CREATE TABLE Venue(
  13. venueId VARCHAR(20) NOT NULL PRIMARY KEY,
  14. vName CHAR(20) NOT NULL,
  15. telephoneNumber INT NOT NULL,
  16. vAddress VARCHAR(50) NOT NULL,
  17. postcode INT NOT NULL
  18. );
  19.  
  20. CREATE TABLE TrainingItems(
  21. trainingItemsId VARCHAR(20) NOT NULL PRIMARY KEY,
  22. tType VARCHAR(20) NOT NULL
  23. );
  24.  
  25. CREATE TABLE Client(
  26. clientId VARCHAR(20) NOT NULL PRIMARY KEY,
  27. fName VARCHAR(20) NOT NULL,
  28. lName VARCHAR(20) NOT NULL,
  29. phoneNumber INT NOT NULL,
  30. email VARCHAR(30) NOT NULL
  31. );
  32.  
  33. CREATE TABLE Achievement(
  34. achievementId VARCHAR(20) NOT NULL PRIMARY KEY,
  35. aName CHAR(20) NOT NULL,
  36. aType VARCHAR(20) NOT NULL,
  37. aDateAchieved DATE NOT NULL
  38. );
  39.  
  40. CREATE TABLE Booking(
  41. bookingId VARCHAR(20) NOT NULL PRIMARY KEY,
  42. dateOfBooking DATE NOT NULL,
  43. startTime TIME NOT NULL,
  44. endTime TIME NOT NULL,
  45. totalHoursBooked INT NOT NULL,
  46. totalCost MONEY NOT NULL,
  47. totalPaid MONEY NOT NULL,
  48. paymentStatus VARCHAR(20) NOT NULL,
  49. completionStatus VARCHAR(20) NOT NULL,
  50. travellingTime DECIMAL(10,2) NOT NULL,
  51. clientId VARCHAR(20) FOREIGN KEY REFERENCES Client
  52. );
  53.  
  54. CREATE TABLE Coach(
  55. coachId VARCHAR(20) NOT NULL PRIMARY KEY,
  56. cName CHAR(20) NOT NULL,
  57. cEmail VARCHAR(30) NOT NULL,
  58. cPhoneNumber INT NOT NULL,
  59. cAddress VARCHAR(50) NOT NULL,
  60. postcode INT NOT NULL,
  61. achievementId VARCHAR(20) FOREIGN KEY REFERENCES Achievement,
  62. bookingId VARCHAR(20) FOREIGN KEY REFERENCES Booking,
  63. venueId VARCHAR(20) FOREIGN KEY REFERENCES Venue,
  64. trainingItemsId VARCHAR(20) FOREIGN KEY REFERENCES trainingItems
  65. );
  66.  
  67. -- Adding values into the tables
  68. INSERT INTO Achievement
  69. VALUES ('a1', 'Hollow Slaying', 'Lieutenant', '1/1/0487');
  70. INSERT INTO Achievement
  71. VALUES ('a2', 'Magic', 'PhD', '8/7/1867');
  72. INSERT INTO Achievement
  73. VALUES ('a3', 'Sharpshooting', 'PhD', '6/18/2015');
  74. INSERT INTO Achievement
  75. VALUES ('a4', 'Programming', 'PhD', '9/16/2017');
  76.  
  77. INSERT INTO Booking
  78. VALUES ('b1', '10/18/2017', '10:00', '2', '1000', '300', 'Partial', 'Complete', '1.2', '1');
  79. INSERT INTO Booking
  80. VALUES ('b2', '10/17/2017', '11:00', '3', '500', '500', 'Paid', 'Incomplete', '0', '2');
  81. INSERT INTO Booking
  82. VALUES ('b3', '10/16/2017', '12:00', '4', '300', '0', 'Not Paid', 'Incomplete', '2', '3');
  83. INSERT INTO Booking
  84. VALUES ('b4', '10/15/2017', '13:00', '2', '100', '50', 'Partial', 'Complete', '0.5', '4');
  85.  
  86. INSERT INTO Venue
  87. VALUES ('v1', 'Sokyoku', '29573817', 'Sokyoku Hill, Soul Society', '6728');
  88. INSERT INTO Venue
  89. VALUES ('v2', 'Kuoh Academy', '29573817', 'Kuoh, Japan', '9268');
  90. INSERT INTO Venue
  91. VALUES ('v3', 'Bonyari High', '29573817', 'Bonyari, Japan', '2245');
  92. INSERT INTO Venue
  93. VALUES ('v4', 'Blacktown Library', '29573817', 'Blacktown, Sydney', '2148');
  94.  
  95. INSERT INTO TrainingItems
  96. VALUES ('t1', 'Slaying');
  97. INSERT INTO TrainingItems
  98. VALUES ('t2', 'Not Science');
  99. INSERT INTO TrainingItems
  100. VALUES ('t3', 'Sports');
  101. INSERT INTO TrainingItems
  102. VALUES ('t4', 'Science');
  103.  
  104. INSERT INTO Client
  105. VALUES ('1', 'Lirin', 'Kinamoto', '0758392010', 'captain@eliteenforcers.com');
  106. INSERT INTO Client
  107. VALUES ('2', 'Akeno', 'Himejima', '0867463529', 'best@girl.com');
  108. INSERT INTO Client
  109. VALUES ('3', 'Chitoge', 'Kirisaki', '0987654321', 'successor@beehive.com');
  110. INSERT INTO Client
  111. VALUES ('4', 'Hiten', 'Bhudia', '0584939587', 'goblinbarrel@gmail.com');
  112.  
  113. INSERT INTO Coach
  114. VALUES ('c1', 'Akimei Izayumi', 'akimeiizayumi@gmail.com', '0293857382', '1 Kido St, Soul Society', '0014', 'a1', 'b1', 'v1', 't1');
  115. INSERT INTO Coach
  116. VALUES ('c2', 'Rosuvaise Wang', 'rosuvaise<3@gmail.com', '0858392948', '654 Demonic St, Valhalla', '0100', 'a2', 'b2', 'v2', 't2');
  117. INSERT INTO Coach
  118. VALUES ('c3', 'Seishiro Tsugumi', 'ojousama@gmail.com', '0843986043', '2 Black Tiger st, Bonyari', '0001', 'a3', 'b3', 'v3', 't3');
  119. INSERT INTO Coach
  120. VALUES ('c4', 'Dylan Wang', 'gibberish69@gmail.com', '0968472658', '4 Trash Can, Sydney', '6996', 'a4', 'b4', 'v4', 't4');
  121.  
  122. /*
  123. -- Viewing everything from the tables
  124. SELECT * FROM Venue;
  125. SELECT * FROM Coach;
  126. SELECT * FROM Achievement;
  127. SELECT * FROM TrainingItems;
  128. SELECT * FROM Booking;
  129. SELECT * FROM Client;
  130. */
  131.  
  132. -- SQL question 2
  133. --a
  134. SELECT c.fName, c.lName, b.dateOfBooking
  135. FROM Client c, Booking b
  136. WHERE c.clientId = b.clientId
  137. ORDER BY c.fName;
  138.  
  139. SELECT Client.fName, Client.lName, Booking.dateOfBooking
  140. FROM Client
  141. FULL OUTER JOIN Booking ON Client.clientId = Booking.clientId;
  142.  
  143. --b
  144. SELECT c.cName, b.totalHoursBooked
  145. FROM Coach c, Booking b
  146. WHERE c.bookingId = b.bookingId
  147. ORDER BY c.cName;
  148.  
  149. SELECT Coach.cName, Booking.totalHoursBooked
  150. FROM Coach
  151. FULL OUTER JOIN Booking ON Coach.bookingId = Booking.bookingId;
  152.  
  153. SELECT Coach.cName, sum(Booking.totalHoursBooked)
  154. FROM Coach
  155. INNER JOIN Booking ON Coach.bookingId = Booking.bookingId
  156. GROUP BY Coach.cName;
  157.  
  158. -- (MOVE FOREIGN KEY FROM COACH TO BOOKING)
  159. SELECT Coach.cName, sum(Booking.totalHoursBooked)
  160. FROM Booking
  161. INNER JOIN Coach ON Booking.BookingId = Coach.bookingId
  162. GROUP BY Coach.cName;
  163.  
  164. --c
  165. SELECT c.cName, b.dateOfBooking, v.vName, t.fName
  166. FROM Coach c, Booking b, Venue v, Client t
  167. WHERE c.bookingId = b.bookingId
  168. AND c.venueId = v.venueId
  169. AND t.clientId = b.bookingId
  170. AND b.dateOfBooking = '10/1/2017'
  171. ORDER BY c.cName;
  172.  
  173. -- (CHECK THE FOREIGN KEYS)
  174. SELECT Coach.cName, Venue.vName, Booking.dateOfBooking, Client.fName
  175. INNER JOIN Booking ON Client.clientId = Booking.clientId
  176. INNER JOIN Coach ON CoachId = Booking.CoachId
  177. INNER JOIN Venue ON Coach.venueId = Venue.venueId
  178. WHERE CONVERT(DATE, Booking.startTime) = '10/1/2017';
  179.  
  180. --d
  181. SELECT c.cName, b.startTime, v.vName, t.trainingItemsId
  182. FROM Coach c, Booking b, Venue v, TrainingItems t
  183. WHERE c.bookingId = b.bookingId
  184. AND c.venueId = v.venueId
  185. AND c.trainingItemsId = t.trainingItemsId
  186. AND b.dateOfBooking = '10/1/2017'
  187. AND b.startTime = '10:00'
  188. ORDER BY c.cName;
  189.  
  190. -- (CHECK FOREIGN KEYS AND ADDED BOOKING.ENDTIME)
  191. SELECT Coach.cName
  192. FROM TrainingItems
  193. INNER JOIN Client ON Client.trainingId = TrainingItems.trainingId
  194. INNER JOIN Booking ON Booking.clientId = Client.clientId
  195. INNER JOIN Coach ON Coach.coachId = Booking.coachId
  196. WHERE TrainingItems.tType = 'Slaying'
  197. AND CONVERT(DATE, Booking.startTime) = '10/1/2017'
  198. AND (CONVERT(time, Booking.startTime) != '10:00'
  199. AND CONVERT(TIME, booking.endTime) != '12:00');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement