diff --git a/main.py b/main.py index bd5e29c..389988a 100644 --- a/main.py +++ b/main.py @@ -7,7 +7,7 @@ def main(): print("Bem vindo ao SGBD") print("Digite a pasta onde está os arquivos CSV:") #csv_folder = input() - csv_folder = "/mnt/c/Users/jose/Desktop/jcSQL-main/source" + csv_folder = "./source" tables = {} diff --git a/sql.py b/sql.py index 307eb33..5b7a4bc 100644 --- a/sql.py +++ b/sql.py @@ -38,19 +38,7 @@ class SQL: # parse TABLE table = self.tables[query_parts[3]] - # parse SELECT COLUMNS - column_list = query_parts[1].split(",") - for i in range(len(column_list)): - column_list[i] = column_list[i].strip() - - if column_list[0] == '*': - column_list = table.columns - - # print the columns - print(', '.join(column_list)) - print('-' * 20) - - # print the rows + # join columns tables_columns = table.columns tables_rows = table.rows @@ -58,19 +46,29 @@ class SQL: join_table = join_stmt[0] join_column = join_stmt[1] - for row in table.rows: - column_index = table.columns.index(join_column) - row_value = row[column_index] + for i in range(len(tables_rows)): + for j in range(len(join_table.rows)): + row_column_index = table.columns.index(join_column) + join_row_column_index = join_table.columns.index(join_column) - for join_row in join_table.rows: - join_column_index = join_table.columns.index(join_column) - join_row_value = join_row[join_column_index] - - if row_value == join_row_value: - tables_rows.append(row + join_row) + if tables_rows[i][row_column_index] == join_table.rows[j][join_row_column_index]: + tables_rows[i] += join_table.rows[j] tables_columns = table.columns + join_table.columns + # parse SELECT COLUMNS + column_list = query_parts[1].split(",") + for i in range(len(column_list)): + column_list[i] = column_list[i].strip() + + if column_list[0] == '*': + column_list = tables_columns + + # print the columns + print(', '.join(column_list)) + print('-' * 20) + + # print the rows for row in tables_rows: if where_filter is not None: column_index = tables_columns.index(where_filter[0])