Advertisement
Guest User

Untitled

a guest
Nov 14th, 2018
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.06 KB | None | 0 0
  1. from pprint import pprint
  2. import psycopg2
  3. import random, datetime
  4. from dateutil.relativedelta import relativedelta
  5.  
  6. conn = psycopg2.connect(
  7.     # database='db',
  8.     user='HEHEHEHE',
  9.     password='froglemboss123'
  10. )
  11.  
  12. cur = conn.cursor()
  13.  
  14. cur.execute("""-- Tworzenie tabel --
  15. create table Typ_pojazdu ( typ_pojazdu_id int, nazwa varchar(30)) ;
  16. create table Linia ( numer_linii int, typ_pojazdu int) ;
  17. create table Przystanek ( przystanek_id int, nazwa varchar(30), autobusy boolean, tramwaje boolean ) ;
  18. create table Linia_Przystanek ( przystanek_id int, numer_linii int, godzina time without time zone ) ;
  19.  
  20. alter table Typ_pojazdu add primary key (typ_pojazdu_id) ;
  21. alter table Linia add primary key (numer_linii) ;
  22. alter table Przystanek add primary key (przystanek_id) ;
  23. alter table Linia_Przystanek add primary key (przystanek_id, numer_linii, godzina) ;
  24.  
  25. alter table Linia add foreign key (typ_pojazdu) references Typ_pojazdu ( typ_pojazdu_id) ;
  26. alter table Linia_Przystanek add foreign key (przystanek_id) references Przystanek ( przystanek_id) ;
  27. alter table Linia_Przystanek add foreign key (numer_linii) references Linia ( numer_linii) ;
  28.  
  29. insert into Typ_pojazdu  values
  30. ( 0, 'Autobus'),
  31. ( 1, 'Tramwaj');
  32.  
  33. """)
  34.  
  35. polecenie = "insert into Linia  values"
  36. for i in range(1, 25):
  37.     polecenie += "\n(" + str(i) + ", " + str(random.randrange(0, 2)) + "), "
  38. polecenie = polecenie[:-2] + ";"
  39. cur.execute(polecenie)
  40.  
  41. polecenie = "insert into Przystanek  values"
  42. for i in range(1, 45):
  43.     polecenie += "\n(" + str(i) + ", 'Przystanek nr. " + str(i) + "', True, True), "
  44. polecenie = polecenie[:-2] + ";"
  45. cur.execute(polecenie)
  46.  
  47. for linia in range(1, 25):
  48.     liczba_przystankow = random.randrange(10, 21)
  49.     linieprzystankow = set()
  50.     while (len(linieprzystankow) < liczba_przystankow):
  51.         linieprzystankow.add(random.randrange(1, 45))
  52.     czas_odjazdu = datetime.datetime(year=2000, day=1, month=1, hour=random.randrange(0, 24),
  53.                                      minute=random.randrange(0, 60))
  54.     new_time = czas_odjazdu + relativedelta(hours=8)
  55.     new_time2 = czas_odjazdu + relativedelta(hours=16)
  56.     for przystanek in linieprzystankow:
  57.         czas_odjazdu += relativedelta(minutes=2)
  58.         new_time += relativedelta(minutes=2)
  59.         new_time2 += relativedelta(minutes=2)
  60.         cur.execute(
  61.             "insert into Linia_Przystanek  values (" + str(przystanek) + ", " + str(linia) + ", " + "'{0:02d}".format(
  62.                 czas_odjazdu.hour) + ":" + "{0:02d}'".format(czas_odjazdu.minute) + ");")
  63.         cur.execute(
  64.             "insert into Linia_Przystanek  values (" + str(przystanek) + ", " + str(linia) + ", " + "'{0:02d}".format(
  65.                 new_time.hour) + ":" + "{0:02d}'".format(new_time.minute) + ");")
  66.         cur.execute(
  67.             "insert into Linia_Przystanek  values (" + str(przystanek) + ", " + str(linia) + ", " + "'{0:02d}".format(
  68.                 new_time2.hour) + ":" + "{0:02d}'".format(new_time2.minute) + ");")
  69.  
  70. cur.execute("SELECT * FROM Linia")
  71. pprint(cur.fetchall())
  72.  
  73. cur.execute("SELECT * FROM Przystanek")
  74. pprint(cur.fetchall())
  75.  
  76. cur.execute("SELECT * FROM Linia_Przystanek")
  77. pprint(cur.fetchall())
  78.  
  79. cur.execute(
  80.     "SELECT Linia.numer_linii, Linia_Przystanek.przystanek_id FROM Linia, Linia_Przystanek WHERE Linia.numer_linii = Linia_Przystanek.numer_linii AND Linia_Przystanek.przystanek_id = 1 group by Linia.numer_linii, Linia_Przystanek.przystanek_id")
  81. pprint(cur.fetchall())
  82. print("\n\n")
  83.  
  84. cur.execute(
  85.     "SELECT Linia.numer_linii, Przystanek.nazwa, Linia_Przystanek.godzina  FROM Linia, Linia_Przystanek, Przystanek WHERE Linia.numer_linii = 5 AND Linia_Przystanek.numer_linii = 5 AND Linia_Przystanek.przystanek_id = 1 AND Przystanek.przystanek_id = 1" )
  86. pprint(cur.fetchall())
  87. print("\n\n")
  88.  
  89.  
  90. cur.execute(
  91.     "SELECT Linia.numer_linii, Przystanek.nazwa, Linia_Przystanek.godzina  FROM Linia, Linia_Przystanek, Przystanek WHERE Linia.numer_linii = 5 AND Linia_Przystanek.numer_linii = 5 AND Linia_Przystanek.przystanek_id = Przystanek.przystanek_id " )
  92. pprint(cur.fetchall())
  93. # conn.commit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement