diff --git a/main.py b/main.py index 389988a..dfd548c 100644 --- a/main.py +++ b/main.py @@ -2,37 +2,47 @@ import os from table import Table from sql import SQL +import mysql.connector def main(): - print("Bem vindo ao SGBD") - print("Digite a pasta onde está os arquivos CSV:") - #csv_folder = input() - csv_folder = "./source" + print("Bem-vindo!") + print("Deseja utilizar um banco de dados (BD) ou um arquivo .csv (CSV)?") + escolha = input() - tables = {} + if escolha == "CSV": + print("Digite a pasta onde estão os arquivos CSV:") + #csv_folder = input() + csv_folder = "./source" - # get all csv files in the folder - 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 + tables = {} - print("Tabelas carregadas:") - print(tables.keys()) + # 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 - while True: - print("Digite a query [0 para sair]:") - query = input() + print("Tabelas carregadas:") + print(tables.keys()) - if query == "0": - break + while True: + print("Digite a query [0 para sair]:") + query = input() - sql = SQL(tables, query) - sql.execute() + if query == "0": + break - print() + sql = SQL(tables, query) + sql.execute() + + print() + + elif escolha == "BD": + print("BD") + else: + print("Fora do intervalo!") if __name__ == "__main__": main() \ No newline at end of file diff --git a/sql.py b/sql.py index 5b7a4bc..1ba7528 100644 --- a/sql.py +++ b/sql.py @@ -8,28 +8,28 @@ class SQL: def __str__(self) -> str: pass - # SELECIONAR * DE tabela + # ISCOLHE * DE tabela def execute(self): query_parts = self.query.split(" ") - if query_parts[0] == "SELECIONAR": + if query_parts[0] == "ISCOLHE": self.select(query_parts) else: pass - # SELECIONAR * DE tabela JUNTAR tabela2 coluna ONDE coluna = valor + # ISCOLHE * DE tabela AJUNTAR tabela2 coluna DONDE coluna = valor def select(self, query_parts: list) -> None: where_filter = None join_stmt = None - if "JUNTAR" in query_parts: - index = query_parts.index("JUNTAR") + if "AJUNTAR" in query_parts: + index = query_parts.index("AJUNTAR") join_table = query_parts[index + 1] join_column = query_parts[index + 2] join_stmt = [self.tables[join_table], join_column] - if "ONDE" in query_parts: - index = query_parts.index("ONDE") + if "DONDE" in query_parts: + index = query_parts.index("DONDE") where_filter_column = query_parts[index + 1] where_filter_operator = query_parts[index + 2] where_filter_value = query_parts[index + 3] diff --git a/table.py b/table.py index 610bec9..0320fd5 100644 --- a/table.py +++ b/table.py @@ -14,7 +14,7 @@ class Table: with open(csv_file, 'r') as f: reader = f.read().splitlines() - # First line is the column names + # Primeira linha contêm o nome das colunas self.columns = reader[0].split(',') reader.pop(0)