Advertisement
pgapr14

DB_H2_till_4_beta_1

Nov 27th, 2015
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 4.58 KB | None | 0 0
  1. -- sheqmna
  2.  
  3. CREATE schema IF NOT EXISTS flights_DB;
  4.  
  5. CREATE TABLE IF NOT EXISTS airports(
  6.   airport_code VARCHAR(3) NOT NULL,
  7.     airport_name VARCHAR(2048),
  8.     airport_city_ID INT(11),
  9. --    airport_country_ID int(10),
  10.     PRIMARY KEY (airport_code)
  11. );
  12.  
  13. CREATE TABLE IF NOT EXISTS cities(
  14.   city_ID INT(11) NOT NULL AUTO_INCREMENT,
  15.     city_name VARCHAR(2048),
  16.     city_country_ID INT(11),
  17.     PRIMARY KEY (city_ID)
  18. );
  19.  
  20. ALTER TABLE airports ADD CONSTRAINT FK_airport_to_city FOREIGN KEY (airport_city_ID) REFERENCES cities(city_ID);
  21.  
  22. CREATE TABLE IF NOT EXISTS countries(
  23.   country_ID INT(11) NOT NULL AUTO_INCREMENT,
  24.     country_name VARCHAR(2048),
  25.     PRIMARY KEY (country_ID)
  26. );
  27.  
  28. ALTER TABLE cities ADD CONSTRAINT FK_city_to_country FOREIGN KEY (city_country_ID) REFERENCES countries(country_ID);
  29.  
  30. CREATE TABLE IF NOT EXISTS flight_codes(
  31.     flight_code VARCHAR(20) NOT NULL,
  32.     flight_code_dep_airport VARCHAR(3),
  33.     flight_code_arr_airport VARCHAR(3),
  34.    
  35.     PRIMARY KEY (flight_code)
  36. );
  37.  
  38. ALTER TABLE flight_codes ADD CONSTRAINT FK_flight_code_to_dep_airport FOREIGN KEY (flight_code_dep_airport) REFERENCES airports(airport_code);
  39.  
  40. ALTER TABLE flight_codes ADD CONSTRAINT FK_flight_code_to_arr_airport FOREIGN KEY (flight_code_arr_airport) REFERENCES airports(airport_code);
  41.  
  42.  
  43. CREATE TABLE IF NOT EXISTS flights(
  44.   flight_ID INT(11) NOT NULL AUTO_INCREMENT,
  45.     flight_code VARCHAR(20),
  46.   -- flight_dep_country_ID int(10),
  47.   -- flight_dep_city_ID int(10),
  48.   -- flight_dep_airport_ID VARCHAR(5),
  49.     flight_dep_time TIMESTAMP,
  50.   -- flight_arr_country_ID int(10),
  51.   -- flight_arr_city_ID int(10),
  52.   --   flight_arr_airport_ID VARCHAR(5),
  53.     flight_arr_time TIMESTAMP,
  54.     flight_price DOUBLE(19,2),
  55.    
  56.     PRIMARY KEY (flight_ID)
  57. );
  58.  
  59. ALTER TABLE flights ADD CONSTRAINT FK_flight_code_to_flight_code FOREIGN KEY (flight_code) REFERENCES flight_codes(flight_code);
  60.  
  61.  
  62. -- sheyra
  63.  
  64. INSERT INTO countries(country_name)
  65.   SELECT DISTINCT dep_country FROM flights_all
  66.     UNION
  67.     SELECT DISTINCT arr_country FROM flights_all;
  68.    
  69. SELECT * FROM countries;
  70.  
  71. INSERT cities(city_name, city_country_ID)
  72. SELECT dep_city, country_ID FROM
  73. (SELECT DISTINCT dep_city, dep_country FROM flights_all
  74. UNION
  75. SELECT DISTINCT arr_city, arr_country FROM flights_all) AS A JOIN countries C
  76. ON A.dep_country= C.country_name;
  77.  
  78. SELECT * FROM cities;
  79.  
  80. INSERT airports(airport_code, airport_name, airport_city_ID)
  81. SELECT dep_airport, dep_airport_name, city_ID FROM
  82. (SELECT DISTINCT dep_airport, dep_airport_name, dep_city FROM flights_all
  83. UNION
  84. SELECT DISTINCT arr_airport, arr_airport_name, arr_city FROM flights_all) AS A JOIN cities C
  85. ON A.dep_city= C.city_name;
  86.  
  87. SELECT * FROM flight_codes;
  88.  
  89. SELECT flight_code, dep_time, arr_time, price FROM flights_all;
  90.  
  91. INSERT INTO flights(flight_code, flight_dep_time, flight_arr_time, flight_price)
  92. SELECT flight_code, dep_time, arr_time, price FROM flights_all;
  93.  
  94. SELECT * FROM flights F
  95. JOIN flight_codes C
  96. ON F.flight_code = C.flight_code;
  97.  
  98. SELECT * FROM flights;
  99.  
  100.  
  101. SELECT DISTINCT F.flight_ID AS f_id, F.flight_code AS f_c, F.flight_price AS f_p, Cdep.city_name AS dep_city, Carr.city_name AS arr_city
  102.     FROM
  103.         flights F, flight_codes FC, airports Adep, airports Aarr, cities Cdep, cities Carr
  104.     WHERE
  105.         F.flight_code = FC.flight_code
  106.         AND
  107.         FC.flight_code_dep_airport = Adep.airport_code AND FC.flight_code_arr_airport = Aarr.airport_code
  108.         AND
  109.         Adep.airport_city_ID = Cdep.city_ID AND Aarr.airport_city_ID = Carr.city_ID
  110.         AND
  111.         Cdep.city_name = 'Vilnius' AND Carr.city_name = 'Kutaisi'
  112.     ORDER BY f_p ASC LIMIT 1;
  113.  
  114.    
  115. SELECT F1.flight_ID, FC1.flight_code, Cdep.city_name, Cmid.city_name, Carr.city_name, F1.flight_price, F2.flight_price
  116.     FROM
  117.         flights F1, flights F2, flight_codes FC1, flight_codes FC2, airports Adep, airports Amidarr, airports Amiddep, airports Aarr, cities Cdep, cities Cmid, cities Carr
  118.     WHERE
  119.         F1.flight_code = FC1.flight_code
  120.         AND
  121.         FC1.flight_code_dep_airport = Adep.airport_code AND FC1.flight_code_arr_airport = Amidarr.airport_code
  122.         AND
  123.         Adep.airport_city_ID = Cdep.city_ID AND Amidarr.airport_city_ID = Cmid.city_ID
  124.         AND
  125.         Cdep.city_name = 'Vilnius'
  126.         AND
  127.         F2.flight_code = FC2.flight_code
  128.         AND
  129.         FC2.flight_code_dep_airport = Amiddep.airport_code AND FC2.flight_code_arr_airport = Aarr.airport_code
  130.         AND
  131.         Amiddep.airport_city_ID = Cmid.city_ID AND Aarr.airport_city_ID = Carr.city_ID
  132.         AND
  133.         Carr.city_name = 'Warsaw'
  134.         AND
  135.         Amiddep.airport_city_ID = Amidarr.airport_city_ID;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement