Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from pprint import pprint
- import psycopg2
- import random, datetime
- from dateutil.relativedelta import relativedelta
- conn = psycopg2.connect(
- # database='db',
- user='HEHEHEHE',
- password='froglemboss123'
- )
- cur = conn.cursor()
- cur.execute("""-- Tworzenie tabel --
- create table Typ_pojazdu ( typ_pojazdu_id int, nazwa varchar(30)) ;
- create table Linia ( numer_linii int, typ_pojazdu int) ;
- create table Przystanek ( przystanek_id int, nazwa varchar(30), autobusy boolean, tramwaje boolean ) ;
- create table Linia_Przystanek ( przystanek_id int, numer_linii int, godzina time without time zone ) ;
- alter table Typ_pojazdu add primary key (typ_pojazdu_id) ;
- alter table Linia add primary key (numer_linii) ;
- alter table Przystanek add primary key (przystanek_id) ;
- alter table Linia_Przystanek add primary key (przystanek_id, numer_linii, godzina) ;
- alter table Linia add foreign key (typ_pojazdu) references Typ_pojazdu ( typ_pojazdu_id) ;
- alter table Linia_Przystanek add foreign key (przystanek_id) references Przystanek ( przystanek_id) ;
- alter table Linia_Przystanek add foreign key (numer_linii) references Linia ( numer_linii) ;
- insert into Typ_pojazdu values
- ( 0, 'Autobus'),
- ( 1, 'Tramwaj');
- """)
- polecenie = "insert into Linia values"
- for i in range(1, 25):
- polecenie += "\n(" + str(i) + ", " + str(random.randrange(0, 2)) + "), "
- polecenie = polecenie[:-2] + ";"
- cur.execute(polecenie)
- polecenie = "insert into Przystanek values"
- for i in range(1, 45):
- polecenie += "\n(" + str(i) + ", 'Przystanek nr. " + str(i) + "', True, True), "
- polecenie = polecenie[:-2] + ";"
- cur.execute(polecenie)
- for linia in range(1, 25):
- liczba_przystankow = random.randrange(10, 21)
- linieprzystankow = set()
- while (len(linieprzystankow) < liczba_przystankow):
- linieprzystankow.add(random.randrange(1, 45))
- czas_odjazdu = datetime.datetime(year=2000, day=1, month=1, hour=random.randrange(0, 24),
- minute=random.randrange(0, 60))
- new_time = czas_odjazdu + relativedelta(hours=8)
- new_time2 = czas_odjazdu + relativedelta(hours=16)
- for przystanek in linieprzystankow:
- czas_odjazdu += relativedelta(minutes=2)
- new_time += relativedelta(minutes=2)
- new_time2 += relativedelta(minutes=2)
- cur.execute(
- "insert into Linia_Przystanek values (" + str(przystanek) + ", " + str(linia) + ", " + "'{0:02d}".format(
- czas_odjazdu.hour) + ":" + "{0:02d}'".format(czas_odjazdu.minute) + ");")
- cur.execute(
- "insert into Linia_Przystanek values (" + str(przystanek) + ", " + str(linia) + ", " + "'{0:02d}".format(
- new_time.hour) + ":" + "{0:02d}'".format(new_time.minute) + ");")
- cur.execute(
- "insert into Linia_Przystanek values (" + str(przystanek) + ", " + str(linia) + ", " + "'{0:02d}".format(
- new_time2.hour) + ":" + "{0:02d}'".format(new_time2.minute) + ");")
- cur.execute("SELECT * FROM Linia")
- pprint(cur.fetchall())
- cur.execute("SELECT * FROM Przystanek")
- pprint(cur.fetchall())
- cur.execute("SELECT * FROM Linia_Przystanek")
- pprint(cur.fetchall())
- cur.execute(
- "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")
- pprint(cur.fetchall())
- print("\n\n")
- cur.execute(
- "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" )
- pprint(cur.fetchall())
- print("\n\n")
- cur.execute(
- "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 " )
- pprint(cur.fetchall())
- # conn.commit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement