SGBD/main.py

97 lines
2.8 KiB
Python

import os
from table import Table
from sql import SQL
import mysql.connector
from mysql.connector import Error
def main():
print("Bem-vindo!")
print("Deseja utilizar um banco de dados (BD) ou um arquivo .csv (CSV)?")
escolha = input()
if escolha == "CSV":
print("Espere os arquivos.csv carregarem...")
#print("Digite a pasta onde estão os arquivos CSV:")
#csv_folder = input()
csv_folder = "./source"
tables = {}
# Seleciona todos o csv presentes na pasta
for file in os.listdir(csv_folder):
if file.endswith(".csv"):
table_name = file.split(".")[0]
table = Table(table_name)
table.load_from_csv(f"{csv_folder}/{file}")
tables[table_name] = table
print("Tabelas carregadas:")
print(tables.keys())
while True:
print("Digite a query [0 para sair]:")
query = input()
if query == "0":
break
sql = SQL(tables, query)
sql.execute()
print()
elif escolha == "BD":
try:
tables = {}
connection = mysql.connector.connect(host='localhost',
database='employees',
user='employeesdb',
password='Employees1!')
if connection.is_connected():
print("Conectado ao employees-db")
cursor = connection.cursor()
cursor.execute("SHOW TABLES")
tables_names = cursor.fetchall()
for table_name in tables_names:
# table_name = ('departments', )
table_name = table_name[0]
# table_name = 'departments'
print('Carregando', table_name)
tables[table_name] = Table(table_name)
tables[table_name].load_from_mysql(table_name,cursor)
tables[table_name].save_to_csv()
print('Carregado', table_name)
print("\n")
while True:
print("Digite a query [0 para sair]:")
query = input()
if query == "0":
break
sql = SQL(tables, query)
sql.execute()
print()
except Error as e:
print("Error while connecting to MySQL", e)
finally:
if connection.is_connected():
cursor.close()
connection.close()
print("MySQL connection is closed")
else:
print("Fora do intervalo!")
if __name__ == "__main__":
main()