Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2018
279
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.53 KB | None | 0 0
  1. CREATE SCHEMA Golf_Trips;
  2. SET SEARCH_PATH = 'golf_trips';
  3.  
  4. CREATE DOMAIN customerID int;
  5. CREATE DOMAIN customerName varchar(20);
  6. CREATE DOMAIN customerSurname varchar(20);
  7. CREATE DOMAIN address varchar(40);
  8. CREATE DOMAIN country varchar(40);
  9. CREATE DOMAIN zip varchar(5);
  10. CREATE DOMAIN email varchar(40);
  11. CREATE DOMAIN phone varchar(12);
  12.  
  13. CREATE TABLE Employee (
  14. empID int,
  15. empName varchar(20),
  16. empSurname varchar(20),
  17. dateOfBirth date,
  18. email varchar(40),
  19. phone varchar(12),
  20. address varchar(40),
  21. zip varchar(5),
  22. position varchar(10),
  23. courtID int,
  24. PRIMARY KEY (empID)
  25. );
  26.  
  27. CREATE INDEX FK_courtID ON Employee (courtID);
  28.  
  29. CREATE TABLE Customer (
  30. customerID customerID,
  31. custName customerName,
  32. custSurname customerSurname,
  33. address address,
  34. country country,
  35. zip zip,
  36. email email,
  37. phone phone,
  38. PRIMARY KEY (customerID)
  39. );
  40.  
  41. CREATE TABLE Golf_Court (
  42. courtID int,
  43. courtName varchar(50),
  44. location varchar(50),
  45. pricePerHour real,
  46. noOfHoles smallint,
  47. carrier boolean,
  48. trainer boolean,
  49. clubsRent boolean,
  50. cartRent boolean,
  51. PRIMARY KEY (courtID)
  52. );
  53.  
  54. CREATE TABLE Cart (
  55. cartID int,
  56. noOfSeats smallint,
  57. courtID int,
  58. PRIMARY KEY (cartID)
  59. );
  60.  
  61. ALTER TABLE Cart ADD CONSTRAINT FK_courtID FOREIGN KEY (courtID) REFERENCES golf_court (courtID) ON UPDATE CASCADE ON DELETE SET NULL ;
  62.  
  63. CREATE TABLE Hole (
  64. holeID int,
  65. length real,
  66. difficulty smallint,
  67. courtID int,
  68. PRIMARY KEY (holeID)
  69. );
  70.  
  71. ALTER TABLE Hole ADD CONSTRAINT FK_courtID FOREIGN KEY (courtID) REFERENCES golf_court (courtID) ON UPDATE CASCADE ON DELETE SET NULL ;
  72.  
  73. CREATE TABLE Booking (
  74. bookingID int,
  75. arrivalDate timestamp,
  76. departureDate timestamp,
  77. additionalService varchar(80),
  78. courtID int,
  79. customerID int,
  80. PRIMARY KEY (bookingID)
  81. );
  82.  
  83. ALTER TABLE Booking ADD CONSTRAINT FK_courtID FOREIGN KEY (courtID) REFERENCES golf_court (courtID) ON UPDATE CASCADE ON DELETE SET NULL ;
  84. ALTER TABLE Booking ADD CONSTRAINT FK_customerID FOREIGN KEY (customerID) REFERENCES customer (customerID) ON UPDATE CASCADE ON DELETE SET NULL ;
  85.  
  86.  
  87.  
  88. CREATE TABLE Clubs (
  89. clubsID int,
  90. material varchar(20),
  91. courtID int,
  92. PRIMARY KEY (clubsID)
  93. );
  94.  
  95. ALTER TABLE Clubs ADD CONSTRAINT FK_courtID FOREIGN KEY (courtID) REFERENCES golf_court (courtID) ON UPDATE CASCADE ON DELETE SET NULL ;
  96.  
  97.  
  98. INSERT INTO Customer VALUES (1, 'John', 'Johnson', 'Frederiksgade', 'Denmark', '8700', 'johsenen@gmail.com', '45501142');
  99. INSERT INTO Customer VALUES (2, 'Anders', 'Dernando', 'Amaliegade', 'Denmark', '9000', 'andersdernando@gmail.com', '45501122');
  100. INSERT INTO Customer VALUES (3, 'Joanna', 'Pedersen', 'Sundvej', 'Denmark', '1500', 'joannapedersen@gmail.com', '45513142');
  101. INSERT INTO Customer VALUES (4, 'Mikkel', 'Drytkov', 'Daukanto', 'Lithuania', '20175', 'mikkeldrytkov@gmail.com', '45171142');
  102. INSERT INTO Customer VALUES (5, 'Peter', 'Spoder', 'Fredericiagade', 'Denmark', '5000', 'peterspoder@gmail.com', '45502442');
  103. INSERT INTO Customer VALUES (6, 'Smith', 'Deshen', 'Danskegade', 'Denmark', '1770', 'peterspoder@gmail.com', '45312342');
  104.  
  105. INSERT INTO Employee values
  106. (1,'Vladimir','Petkov','01-03-1943','vladimirpetkov@gmail.com','0416235','Flowers Street 4231','4213','Trainer',1),
  107. (2,'Igor','Chernyi','05-07-1966','igorchernyi@gmail.com','0423152','Castle Street 4231','4213','Trainer',1),
  108. (3,'Vasiliy','Beliy','09-02-1988','vasilyibeliy@gmail.com','0425123','Glen Park 3215','4213','Carrier',1),
  109. (4,'Viktor','Zelenyi','02-10-1999','viktorzelenyi@gmail.com','0429182','Jefersson Motel 3215','4111','Trainer',2),
  110. (5,'Sasha','Seriy','02-22-1988','sashaseriy@gmail.com','0411123','El Corona 3215','4912','Trainer',2),
  111. (6,'Kiril','Tarakan','09-02-1812','kiriltarakan@gmail.com','0423123','Idlewood 3215','4213','Carrier',2),
  112. (7,'Gosha','Rubchinskiy','09-12-1712','gosharubchinskyi@gmail.com','0465423','Grove Street 3215','4213','Trainer',3),
  113. (8,'Komar','Beliy','09-02-1988','komarbeliy@gmail.com','0425123','Glen Park 2231','4213','Carrier',3);
  114.  
  115. INSERT INTO Golf_Court VALUES (1, 'Golden Dragon Court', 'Tokyo', 250.0, 14, true, true, true, true);
  116. INSERT INTO Golf_Court VALUES (2, 'Virgin Beach Court', 'Hawaii', 430.4, 14, true, false, true, true);
  117. INSERT INTO Golf_Court VALUES (3, 'Stormy Sea Court', 'Copenhagen', 130.0, 14, true, true, false, true);
  118. INSERT INTO Golf_Court VALUES (4, 'Privjat Russia Court', 'St.Peterburg', 607.5, 14, false, false, false, false);
  119.  
  120. INSERT INTO Cart VALUES (1, 2, 1);
  121. INSERT INTO Cart VALUES (2, 2, 2);
  122. INSERT INTO Cart VALUES (3, 4, 3);
  123. INSERT INTO Cart VALUES (4, 6, 1);
  124. INSERT INTO Cart VALUES (5, 2, 2);
  125. INSERT INTO Cart VALUES (6, 4, 3);
  126.  
  127. INSERT INTO Hole VALUES (1, 275.5, 3, 1);
  128. INSERT INTO Hole VALUES (2, 100.0, 5, 2);
  129. INSERT INTO Hole VALUES (3, 125.9, 8, 3);
  130. INSERT INTO Hole VALUES (4, 367.0, 4, 1);
  131. INSERT INTO Hole VALUES (5, 525.4, 2, 2);
  132. INSERT INTO Hole VALUES (6, 232.4, 10, 3);
  133.  
  134. INSERT INTO Clubs VALUES (1, 'Wood', 1);
  135. INSERT INTO Clubs VALUES (2, 'Steel', 2);
  136. INSERT INTO Clubs VALUES (3, 'Plastic', 3);
  137. INSERT INTO Clubs VALUES (4, 'Steel', 1);
  138. INSERT INTO Clubs VALUES (5, 'Steel', 2);
  139. INSERT INTO Clubs VALUES (6, 'Steel', 3);
  140.  
  141. INSERT INTO Booking VALUES (1, '05-12-2018','05-17-2018','club',1,1);
  142. INSERT INTO Booking VALUES (2, '05-15-2018','05-21-2018','cart',2,2);
  143. INSERT INTO Booking VALUES (3, '06-07-2018','06-10-2018','null',3,3);
  144. INSERT INTO Booking VALUES (4, '06-12-2018','06-15-2018','cart',1,4);
  145. INSERT INTO Booking VALUES (5, '06-20-2018','06-25-2018','null',2,5);
  146. INSERT INTO Booking VALUES (6, '07-02-2018','07-07-2018','club cart',3,6);
  147.  
  148. -- rich clients want to see list of the golf courts with descending price
  149. SELECT courtID,
  150. courtname,
  151. location,
  152. priceperhour
  153. FROM golf_court
  154. WHERE priceperhour <= 720
  155. ORDER BY priceperhour DESC;
  156.  
  157. -- client wants to see holes and difficulties of the court (we can select 1 court {in WHERE} AND golf_court.courtID = 2)
  158. SELECT golf_court.courtID,
  159. courtname,
  160. hole.difficulty
  161. FROM golf_court, hole
  162. WHERE golf_court.courtID = hole.courtID
  163. GROUP BY golf_court.courtID, hole.difficulty;
  164.  
  165. --Selecting a relation with a simple rule
  166. SELECT *
  167. FROM golf_court
  168. WHERE priceperhour > 300;
  169.  
  170. --Ordering in descension of courtid
  171. SELECT *
  172. FROM golf_court
  173. ORDER BY courtid DESC;
  174.  
  175. --Selecting one column of a relation
  176. SELECT COUNT(courtid), location
  177. FROM golf_court
  178. GROUP BY location;
  179.  
  180. --Displays what employees are working on a specific court
  181. SELECT golf_court.courtname, employee.empname
  182. FROM employee
  183. INNER JOIN golf_court ON employee.courtid = golf_court.courtid;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement