| | import pandas as pd |
| | import sqlite3 |
| |
|
| |
|
| | def csv_to_sqlite(csv_file, db_name, table_name): |
| | |
| | df = pd.read_csv(csv_file) |
| |
|
| | |
| | conn = sqlite3.connect(db_name) |
| | cursor = conn.cursor() |
| |
|
| | |
| | def create_table_from_df(df, table_name): |
| | |
| | col_types = [] |
| | for col in df.columns: |
| | dtype = df[col].dtype |
| | if dtype == "int64": |
| | col_type = "INTEGER" |
| | elif dtype == "float64": |
| | col_type = "REAL" |
| | else: |
| | col_type = "TEXT" |
| | col_types.append(f'"{col}" {col_type}') |
| |
|
| | |
| | col_definitions = ", ".join(col_types) |
| | create_table_query = ( |
| | f"CREATE TABLE IF NOT EXISTS {table_name} ({col_definitions});" |
| | ) |
| | |
| |
|
| | |
| | cursor.execute(create_table_query) |
| | print(f"Table '{table_name}' created with schema: {col_definitions}") |
| |
|
| | |
| | create_table_from_df(df, table_name) |
| |
|
| | |
| | df.to_sql(table_name, conn, if_exists="replace", index=False) |
| |
|
| | |
| | conn.commit() |
| | conn.close() |
| | print(f"Data loaded into '{table_name}' table in '{db_name}' SQLite database.") |
| |
|
| |
|
| | def run_sql_query(db_name, query): |
| | """ |
| | Executes a SQL query on a SQLite database and returns the results. |
| | |
| | Args: |
| | db_name (str): The name of the SQLite database file. |
| | query (str): The SQL query to run. |
| | |
| | Returns: |
| | list: Query result as a list of tuples, or an empty list if no results or error occurred. |
| | """ |
| | try: |
| | |
| | conn = sqlite3.connect(db_name) |
| | cursor = conn.cursor() |
| |
|
| | |
| | cursor.execute(query) |
| |
|
| | |
| | results = cursor.fetchall() |
| |
|
| | |
| | conn.close() |
| |
|
| | |
| | return results if results else [] |
| |
|
| | except sqlite3.Error as e: |
| | print(f"An error occurred while executing the query: {e}") |
| | return [] |
| |
|
| |
|
| | def get_table_schema(db_name, table_name): |
| | """ |
| | Retrieves the schema (columns and data types) for a given table in the SQLite database. |
| | |
| | Args: |
| | db_name (str): The name of the SQLite database file. |
| | table_name (str): The name of the table. |
| | |
| | Returns: |
| | list: A list of tuples with column name, data type, and other info. |
| | """ |
| | conn = sqlite3.connect(db_name) |
| | cursor = conn.cursor() |
| |
|
| | |
| | cursor.execute(f"PRAGMA table_info({table_name});") |
| | schema = cursor.fetchall() |
| |
|
| | conn.close() |
| | return schema |
| |
|