Files
m1_bdd_comparaison_perf/PostgreSQL.py
Minh VU 091cbc8995 Init
add code
2024-12-03 13:24:32 +01:00

107 lines
3.3 KiB
Python

import time
import psycopg2
def connect_postgres():
return psycopg2.connect(
host="localhost",
database="postgres",
user="postgres",
password="1"
)
def create_tables():
sql_command_create_table= (
"""CREATE TABLE airlines
(
IATA_CODE VARCHAR(2),
AIRLINE VARCHAR(30)
)
""",
"""CREATE TABLE airports
(
IATA_CODE VARCHAR(3),
AIRPORT VARCHAR(100),
CITY VARCHAR(40),
STATE VARCHAR(2),
COUNTRY VARCHAR(40),
LATITUDE REAL,
LONGITUDE REAL
)
""",
"""CREATE TABLE flights
(
YEAR INTEGER,
MONTH INTEGER,
DAY INTEGER,
DAY_OF_WEEK INTEGER,
AIRLINE VARCHAR(2),
FLIGHT_NUMBER INTEGER,
TAIL_NUMBER VARCHAR(6),
ORIGIN_AIRPORT VARCHAR(5),
DESTINATION_AIRPORT VARCHAR(5),
SCHEDULED_DEPARTURE INTEGER,
DEPARTURE_TIME INTEGER,
DEPARTURE_DELAY INTEGER,
TAXI_OUT INTEGER,
WHEELS_OFF INTEGER,
SCHEDULED_TIME INTEGER,
ELAPSED_TIME INTEGER,
AIR_TIME INTEGER,
DISTANCE INTEGER,
WHEELS_ON INTEGER,
TAXI_IN INTEGER,
SCHEDULED_ARRIVAL INTEGER,
ARRIVAL_TIME INTEGER,
ARRIVAL_DELAY INTEGER,
DIVERTED INTEGER,
CANCELLED INTEGER,
CANCELLATION_REASON VARCHAR(1),
AIR_SYSTEM_DELAY INTEGER,
SECURITY_DELAY INTEGER,
AIRLINE_DELAY INTEGER,
LATE_AIRCRAFT_DELAY INTEGER,
WEATHER_DELAY INTEGER
)
""")
try:
with connect_postgres() as conn:
with conn.cursor() as cursor:
for command in sql_command_create_table:
cursor.execute(command)
conn.commit()
cursor.close()
conn.close()
except (psycopg2.DatabaseError, Exception) as error:
print(error)
def create_data():
sql_command_copy =(
"""COPY airlines FROM 'C://Users//Public//2015_Flight_Delay_and_cancellations//airlines.csv' DELIMITER ',' NULL AS ''""",
"""COPY airports FROM 'C://Users//Public//2015_Flight_Delay_and_cancellations//airports.csv' DELIMITER ',' NULL AS ''""",
"""COPY flights FROM 'C://Users//Public//2015_Flight_Delay_and_cancellations//flights.csv' DELIMITER ',' NULL AS ''""")
try:
with connect_postgres() as conn:
with conn.cursor() as cursor:
for command in sql_command_copy:
cursor.execute(command)
conn.commit()
cursor.close()
conn.close()
except (psycopg2.DatabaseError, Exception) as error:
print(error)
def requete_lecture(str):
try:
with connect_postgres() as conn:
with conn.cursor() as cursor:
start = time.time()
cursor.execute(str)
conn.commit()
temps = time.time() -start
print("Cette requête prends:", temps, "seconde")
cursor.close()
conn.close()
except (psycopg2.DatabaseError, Exception) as error:
print(error)