9090
This commit is contained in:
parent
fbecdd5af4
commit
01858f0ba6
74
main.py
74
main.py
|
@ -1,23 +1,28 @@
|
||||||
import os
|
import os
|
||||||
|
import getpass
|
||||||
|
import mysql.connector
|
||||||
|
|
||||||
from table import Table
|
from table import Table
|
||||||
from sql import SQL
|
from sql import SQL
|
||||||
import mysql.connector
|
|
||||||
from mysql.connector import Error
|
from mysql.connector import Error
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
print("Bem-vindo!")
|
print("Bem-vindo!")
|
||||||
print("Deseja utilizar um banco de dados (BD) ou um arquivo .csv (CSV)?")
|
print("Inicialmente, os dados precisam ser importados do MySQL")
|
||||||
|
print("Caso isso já tenha sido feito, os arquivos .csv serao sobreescritos")
|
||||||
|
print("Se algum update,insert ou delete tenha sido feito, ele sera perdido")
|
||||||
|
print("Eh recomendado importar as tabelas do bando de dados pelo menos no primeiro acesso")
|
||||||
|
print("Deseja importar os dados (digite BD) ou utilizar os arquivos.csv (digite CSV)?")
|
||||||
escolha = input()
|
escolha = input()
|
||||||
|
|
||||||
|
tables = {}
|
||||||
|
|
||||||
if escolha == "CSV":
|
if escolha == "CSV":
|
||||||
print("Espere os arquivos.csv carregarem...")
|
print("Espere os arquivos.csv carregarem...")
|
||||||
#print("Digite a pasta onde estão os arquivos CSV:")
|
#print("Digite a pasta onde estão os arquivos CSV:")
|
||||||
#csv_folder = input()
|
#csv_folder = input()
|
||||||
csv_folder = "./source"
|
csv_folder = "./source"
|
||||||
|
|
||||||
tables = {}
|
|
||||||
|
|
||||||
# Seleciona todos o csv presentes na pasta
|
# Seleciona todos o csv presentes na pasta
|
||||||
for file in os.listdir(csv_folder):
|
for file in os.listdir(csv_folder):
|
||||||
if file.endswith(".csv"):
|
if file.endswith(".csv"):
|
||||||
|
@ -26,8 +31,8 @@ def main():
|
||||||
table.load_from_csv(f"{csv_folder}/{file}")
|
table.load_from_csv(f"{csv_folder}/{file}")
|
||||||
tables[table_name] = table
|
tables[table_name] = table
|
||||||
|
|
||||||
print("Tabelas carregadas:")
|
print("\nTabelas carregadas:")
|
||||||
print(tables.keys())
|
print(', '.join(tables.keys())+"\n")
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
print("Digite a query [0 para sair]:")
|
print("Digite a query [0 para sair]:")
|
||||||
|
@ -42,13 +47,24 @@ def main():
|
||||||
print()
|
print()
|
||||||
|
|
||||||
elif escolha == "BD":
|
elif escolha == "BD":
|
||||||
try:
|
|
||||||
tables = {}
|
|
||||||
|
|
||||||
connection = mysql.connector.connect(host='localhost',
|
print("Host (localhost):")
|
||||||
database='employees',
|
host_name = input()
|
||||||
user='employeesdb',
|
|
||||||
password='Employees1!')
|
print("Database (employees):")
|
||||||
|
database_name = input()
|
||||||
|
|
||||||
|
print("User:")
|
||||||
|
user_name = input()
|
||||||
|
|
||||||
|
password_name = getpass.getpass()
|
||||||
|
|
||||||
|
try:
|
||||||
|
|
||||||
|
connection = mysql.connector.connect(host=host_name,
|
||||||
|
database=database_name,
|
||||||
|
user=user_name,
|
||||||
|
password=password_name)
|
||||||
|
|
||||||
if connection.is_connected():
|
if connection.is_connected():
|
||||||
print("Conectado ao employees-db")
|
print("Conectado ao employees-db")
|
||||||
|
@ -68,7 +84,31 @@ def main():
|
||||||
tables[table_name].save_to_csv()
|
tables[table_name].save_to_csv()
|
||||||
print('Carregado', table_name)
|
print('Carregado', table_name)
|
||||||
|
|
||||||
print("\n")
|
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")
|
||||||
|
|
||||||
|
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("\nTabelas carregadas:")
|
||||||
|
print(', '.join(tables.keys())+"\n")
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
print("Digite a query [0 para sair]:")
|
print("Digite a query [0 para sair]:")
|
||||||
|
@ -82,14 +122,6 @@ def main():
|
||||||
|
|
||||||
print()
|
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:
|
else:
|
||||||
print("Fora do intervalo!")
|
print("Fora do intervalo!")
|
||||||
|
|
||||||
|
|
29
table.py
29
table.py
|
@ -79,32 +79,3 @@ class Table:
|
||||||
f.write(data_line + '\n')
|
f.write(data_line + '\n')
|
||||||
|
|
||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
def print_columns(self, column_list: list, where_filter: list = None, join_stmt: list = None):
|
|
||||||
if column_list[0] == '*':
|
|
||||||
column_list = self.columns
|
|
||||||
|
|
||||||
print(', '.join(column_list))
|
|
||||||
print('-' * 20)
|
|
||||||
|
|
||||||
for row in self.rows:
|
|
||||||
if where_filter is not None:
|
|
||||||
column_index = self.columns.index(where_filter[0])
|
|
||||||
row_value = row[column_index]
|
|
||||||
|
|
||||||
if where_filter[1] == '=':
|
|
||||||
if row_value != where_filter[2]:
|
|
||||||
continue
|
|
||||||
elif where_filter[1] == '>':
|
|
||||||
if row_value <= where_filter[2]:
|
|
||||||
continue
|
|
||||||
elif where_filter[1] == '<':
|
|
||||||
if row_value >= where_filter[2]:
|
|
||||||
continue
|
|
||||||
|
|
||||||
row_values = []
|
|
||||||
for column in column_list:
|
|
||||||
column_index = self.columns.index(column)
|
|
||||||
row_values.append(row[column_index])
|
|
||||||
|
|
||||||
print(', '.join(row_values))
|
|
||||||
|
|
Loading…
Reference in New Issue