Guest User

Untitled

a guest
May 4th, 2016
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.20 KB | None | 0 0
  1. --TODO: delete reports ??? I don't know if I have to
  2. --TODO: delete views ??? I don't know if I have to
  3.  
  4. --TODO: enter spool, pagesize and etc. on command line
  5.  
  6. --Drop tables.
  7. DROP TABLE CITY;
  8. DROP TABLE AIRPORT;
  9. DROP TABLE FLIGHT_ROUTE;
  10. DROP TABLE AIRCRAFT_MODEL;
  11. DROP TABLE AIRCRAFT;
  12. DROP TABLE CUSTOMER;
  13. DROP TABLE FLIGHT;
  14. DROP TABLE RESERVATIONS;
  15. COMMIT;
  16.  
  17. --
  18. --Create Tables
  19. --
  20. CREATE TABLE CITY (
  21. CITY# NUMBER(3) NOT NULL,
  22. CITY VARCHAR(32) NOT NULL,
  23. STATE CHAR(2) CONSTRAINT CK_state CHECK(STATE IN('AL','AK','AS','AZ','AR','CA','CO','CT','DE','DC','FL','GA','GU','HI','ID','IL','IN','IN','IA','KS','KY','LA','ME','MD','MH','MA','MI','FM','MN','MS','MO','MT','NE','NV','NH','NJ','NM','NY','NC','ND','MP','OH','OK','OR','PW','PA','PR','RI','SC','SD','TN','TX','UT','VT','VA','VI','WA','WV','WI','WY'))NOT NULL,
  24. CONSTRAINT PK_city_city#_state PRIMARY KEY (CITY#, STATE)
  25. );
  26.  
  27. CREATE TABLE AIRPORT (
  28. AIRPORT# CHAR(3) UNIQUE NOT NULL ,
  29. AIRPORT_NAME VARCHAR(50) NOT NULL,
  30. CITY# NUMBER(3) NOT NULL,
  31. CONSTRAINT PK_airport_airport# PRIMARY KEY (AIRPORT#),
  32. CONSTRAINT FK_airport_city# FOREIGN KEY (CITY#) REFERENCES CITY(CITY#)
  33. );
  34.  
  35. CREATE TABLE FLIGHT_ROUTE (
  36. FLIGHT# NUMBER(3) UNIQUE NOT NULL,
  37. D_AIRPORT NUMBER (3) NOT NULL,
  38. A_AIRPORT NUMBER (3) NOT NULL,
  39. Time_Of_Departure NUMBER (4) NOT NULL,
  40. Time_Of_Arrival NUMBER (4) NOT NULL,
  41. CONSTRAINT PK_flightRoute_flightNum PRIMARY KEY (FLIGHT#),
  42. CONSTRAINT FK_flightRoute_depApt FOREIGN KEY (D_AIRPORT) REFERENCES AIRPORT(AIRPORT#),
  43. CONSTRAINT FK_flightRoute_arrApt FOREIGN KEY (A_AIRPORT) REFERENCES AIRPORT(AIRPORT#),
  44. CONSTRAINT CK_depTime CHECK (DEP_TIME BETWEEN ('0000') AND ('2400')),
  45. CONSTRAINT CK_arrTime CHECK (ARR_TIME BETWEEN ('0000') AND ('2400'))
  46. );
  47.  
  48. CREATE TABLE AIRCRAFT_MODEL (
  49. MODEL# VARCHAR(5) UNIQUE NOT NULL,
  50. DESCRIPTION VARCHAR(32),
  51. CAPACITY NUMBER(3),
  52. RANGE NUMBER (4),
  53. CONSTRAINT PK_aircraftModel_model# PRIMARY KEY (MODEL#)
  54. );
  55.  
  56. CREATE TABLE AIRCRAFT (
  57. SERIAL# VARCHAR(7) UNIQUE NOT NULL,
  58. MODEL# VARCHAR(5) NOT NULL,
  59. CONSTRAINT PK_aircraft_serial# PRIMARY KEY (SERIAL#),
  60. CONSTRAINT FK_aircraftModel_model# FOREIGN KEY (MODEL#) REFERENCES AIRCRAFT_MODEL(MODEL#)
  61. );
  62.  
  63. CREATE TABLE CUSTOMER (
  64. CUSTOMER# NUMBER(4) UNIQUE NOT NULL,
  65. CUSTOMER_NAME VARCHAR(50) NOT NULL,
  66. CONSTRAINT PK_customer_customer# PRIMARY KEY (CUSTOMER#)
  67. );
  68.  
  69. CREATE TABLE FLIGHT (
  70. FLIGHT# NUMBER(3) NOT NULL ,
  71. SERIAL# VARCHAR(8),
  72. FLIGHT_DATE DATE NOT NULL ,
  73. CONSTRAINT PK_flight_flight#_serial#_flight_date PRIMARY KEY (FLIGHT#,SERIAL#,FLIGHT_DATE),
  74. CONSTRAINT FK_flight_flight# FOREIGN KEY (FLIGHT#) REFERENCES FLIGHT_ROUTE(FLIGHT#),
  75. CONSTRAINT FK_flight_serial# FOREIGN KEY (SERIAL#) REFERENCES AIRCRAFT(SERIAL#)
  76. );
  77.  
  78. CREATE TABLE RESERVATIONS (
  79. CUSTOMER# NUMBER(4) NOT NULL,
  80. FLIGHT# NUMBER(3) NOT NULL,
  81. FLIGHT_DATE DATE NOT NULL,
  82. QTY_RESERVED_SEATS NUMBER(3),
  83. CONSTRAINT PK_reservations_customer#_flight#_flightDate PRIMARY KEY (CUSTOMER#,FLIGHT#,FLIGHT_DATE),
  84. CONSTRAINT FK_reservations_customer# FOREIGN KEY (CUSTOMER#) REFERENCES CUSTOMER(CUSTOMER#),
  85. CONSTRAINT FK_reservations_flight# FOREIGN KEY (FLIGHT#) REFERENCES FLIGHT(FLIGHT#),
  86. CONSTRAINT FK_reservations_flightDate FOREIGN KEY (FLIGHT_DATE) REFERENCES FLIGHT(FLIGHT_DATE)
  87. );
  88. COMMIT;
  89.  
  90. --
  91. --Describing all tables.
  92. --
  93.  
  94. DESC CUSTOMER;
  95. DESC AIRCRAFT_MODEL;
  96. DESC AIRCRAFT;
  97. DESC CITY;
  98. DESC AIRPORT;
  99. DESC FLIGHT_ROUTE;
  100. DESC FLIGHT;
  101. DESC RESERVATIONS;
  102.  
  103. --
  104. --Inserting data into tables.
  105. --
  106. INSERT INTO CUSTOMER VALUES ('1001','Ford');
  107. INSERT INTO CUSTOMER VALUES ('1004','Pfeiffer');
  108. INSERT INTO CUSTOMER VALUES ('1055','Harris');
  109. INSERT INTO CUSTOMER VALUES ('1058','Codd');
  110. INSERT INTO CUSTOMER VALUES ('1077','Nelson');
  111. INSERT INTO CUSTOMER VALUES ('1080','Cassatt');
  112. INSERT INTO CUSTOMER VALUES ('1100','Streep');
  113. INSERT INTO CUSTOMER VALUES ('1155','Lechowick');
  114. INSERT INTO CUSTOMER VALUES ('1158','Hilbert');
  115.  
  116. INSERT INTO AIRCRAFT_MODEL VALUES ('BO727','5-seat, 2-engine jet','110','1800');
  117. INSERT INTO AIRCRAFT_MODEL VALUES ('DC9','6-seat, prop w/jet','168','2800');
  118. INSERT INTO AIRCRAFT_MODEL VALUES ('BO737','6-seat, 2-engine jet','174','2500');
  119. INSERT INTO AIRCRAFT_MODEL VALUES ('BO747','10-seat, 4-engine jet','300','3500');
  120.  
  121. INSERT INTO AIRCRAFT VALUES ('T100-001','BO727');
  122. INSERT INTO AIRCRAFT VALUES ('T100-004','DC9');
  123. INSERT INTO AIRCRAFT VALUES ('T100-007','BO737');
  124. INSERT INTO AIRCRAFT VALUES ('T200-002','BO747');
  125. INSERT INTO AIRCRAFT VALUES ('T200-004','DC9');
  126. INSERT INTO AIRCRAFT VALUES ('T300-005','BO737');
  127. INSERT INTO AIRCRAFT VALUES ('T300-009','BO727');
  128.  
  129. INSERT INTO CITY VALUES ('025','Austin','TX');
  130. INSERT INTO CITY VALUES ('052','Houston','TX');
  131. INSERT INTO CITY VALUES ('520','Chicago','IL');
  132. INSERT INTO CITY VALUES ('380','Memphis','TN');
  133.  
  134. INSERT INTO AIRPORT VALUES ('AUS','Austin Municpl. Airport','025');
  135. INSERT INTO AIRPORT VALUES ('HOU','Houston Internat. Airport', '052');
  136. INSERT INTO AIRPORT VALUES ('MEM', 'Memphis Internat. Airport', '520');
  137. INSERT INTO AIRPORT VALUES ('ORD', 'Chicago Internat. Airport', '380');
  138.  
  139. INSERT INTO FLIGHT_ROUTE VALUES ('110','025','380','0800','0935');
  140. INSERT INTO FLIGHT_ROUTE VALUES ('181','052','520','0830','1130');
  141. INSERT INTO FLIGHT_ROUTE VALUES ('285','025','052','0800','0845');
  142. INSERT INTO FLIGHT_ROUTE VALUES ('333','520','052','1700','2000');
  143. INSERT INTO FLIGHT_ROUTE VALUES ('359','052','025','2130','2215');
  144. INSERT INTO FLIGHT_ROUTE VALUES ('887','380','520','1045','1215');
  145. INSERT INTO FLIGHT_ROUTE VALUES ('899','380','025','1400','1545');
  146. INSERT INTO FLIGHT_ROUTE VALUES ('950','520','380','1300','1500');
  147.  
  148. INSERT INTO FLIGHT VALUES ('110','T100-001','7/12/2000');
  149. INSERT INTO FLIGHT VALUES ('181','T200-002','7/12/2000');
  150. INSERT INTO FLIGHT VALUES ('285','T100-007','7/12/2000');
  151. INSERT INTO FLIGHT VALUES ('333','T200-002','7/12/2000');
  152. INSERT INTO FLIGHT VALUES ('887','T200-004','7/12/2000');
  153. INSERT INTO FLIGHT VALUES ('899','T300-009','7/12/2000');
  154.  
  155. INSERT INTO FLIGHT VALUES ('110','T100-001','7/13/2000');
  156. INSERT INTO FLIGHT VALUES ('181','T200-002','7/13/2000');
  157. INSERT INTO FLIGHT VALUES ('285','T300-005','7/13/2000');
  158. INSERT INTO FLIGHT VALUES ('333','T200-002','7/13/2000');
  159. INSERT INTO FLIGHT VALUES ('887','','7/13/2000');
  160. INSERT INTO FLIGHT VALUES ('899','T100-001','7/13/2000');
  161. INSERT INTO FLIGHT VALUES ('950','T100-007','7/13/2000');
  162.  
  163. INSERT INTO FLIGHT VALUES ('110','T100-001','7/14/2000');
  164. INSERT INTO FLIGHT VALUES ('285','T300-005','7/14/2000');
  165. INSERT INTO FLIGHT VALUES ('359','','7/14/2000');
  166. INSERT INTO FLIGHT VALUES ('899','T300-009','7/14/2000');
  167.  
  168. INSERT INTO RESERVATIONS VALUES ('1004','110','7/12/2000','');
  169. INSERT INTO RESERVATIONS VALUES ('1077','110','7/12/2000','');
  170. INSERT INTO RESERVATIONS VALUES ('1158','110','7/12/2000','');
  171. INSERT INTO RESERVATIONS VALUES ('1001','181','7/13/2000','');
  172. INSERT INTO RESERVATIONS VALUES ('1080','333','7/13/2000','');
  173. INSERT INTO RESERVATIONS VALUES ('1055','359','7/13/2000','');
  174. INSERT INTO RESERVATIONS VALUES ('1155','359','7/13/2000','');
  175. INSERT INTO RESERVATIONS VALUES ('1100','899','7/14/2000','');
  176. INSERT INTO RESERVATIONS VALUES ('1158','899','7/13/2000','');
  177. INSERT INTO RESERVATIONS VALUES ('1004','899','7/14/2000','');
  178. INSERT INTO RESERVATIONS VALUES ('1058','899','7/14/2000','');
  179. INSERT INTO RESERVATIONS VALUES ('1058','950','7/13/2000','');
  180.  
  181. COMMIT;
  182.  
  183. SELECT * FROM CUSTOMER;
  184. SELECT * FROM RESERVATIONS;
  185. SELECT * FROM FLIGHT;
  186. SELECT * FROM AIRCRAFT;
  187. SELECT * FROM AIRCRAFT_MODEL;
  188. SELECT * FROM FLIGHT_ROUTE;
  189. SELECT * FROM AIRPORT;
  190. SELECT * FROM CITY;
  191.  
  192. --[X](1) report #1
  193. CREATE VIEW Report#1(Serial#, Model#, Description, Capacity#, Range#) AS
  194. SELECT AIRCRAFT.SERIAL#, AIRCRAFT.MODEL#, AIRCRAFT_MODEL.DESCRIPTION, AIRCRAFT_MODEL.CAPACITY, AIRCRAFT_MODEL.RANGE
  195. FROM AIRCRAFT, AIRCRAFT_MODEL
  196. WHERE AIRCRAFT.MODEL# = AIRCRAFT_MODEL.MODEL#;
  197.  
  198. CLEAR COLUMNS
  199. CLEAR COMPUTES
  200. CLEAR BREAKS
  201. TTITLE OFF
  202.  
  203. SELECT * FROM Report#1
  204. ORDER BY AIRCRAFT.SERIAL#;
  205.  
  206. COLUMN Serial# HEADING 'Serial#' FORMAT A18
  207. COLUMN Model# HEADING 'Type' FORMAT A18
  208. COLUMN Description HEADING 'Description' FORMAT A18
  209. COLUMN Capacity# HEADING 'Capacity' FORMAT A18
  210. COLUMN Range# HEADING 'Range' FORMAT A18
  211.  
  212. BREAK ON Report#1
  213. COMPUTE SUM LABEL 'Number of Aircraft' OF AIRCRAFT.SERIAL# ON Report#1.SERIAL#
  214. COMPUTE SUM LABEL 'Total Capacity' OF AIRCRAFT_MODEL.CAPACITY ON Report#1.CAPACITY
  215. COMPUTE AVG LABEL 'Average Capacity' OF AIRCRAFT_MODEL.RANGE ON Report#1.RANGE
Add Comment
Please, Sign In to add comment