Sandaru2's picture
Upload 2 files
20fcb23 verified
import pandas as pd
import gradio as gr
def generate_sql(file, operation, table_name):
if file is None or not table_name:
return "Please upload a CSV file and enter a table name."
df = pd.read_csv(file.name)
columns = df.columns.tolist()
queries = []
if operation == "ADD":
for _, row in df.iterrows():
values = tuple(row)
query = f"INSERT INTO {table_name} ({', '.join(columns)}) VALUES {values};"
queries.append(query)
elif operation == "UPDATE":
primary_key = columns[0] # Assuming the first column is the primary key
for _, row in df.iterrows():
set_clause = ', '.join([f"{col}='{row[col]}'" for col in columns[1:]])
query = f"UPDATE {table_name} SET {set_clause} WHERE {primary_key}='{row[primary_key]}';"
queries.append(query)
elif operation == "DELETE":
primary_key = columns[0]
for _, row in df.iterrows():
query = f"DELETE FROM {table_name} WHERE {primary_key}='{row[primary_key]}';"
queries.append(query)
return "\n".join(queries)
iface = gr.Interface(
fn=generate_sql,
inputs=[
gr.File(label="Upload CSV File"),
gr.Radio(["ADD", "UPDATE", "DELETE"], label="Select Operation"),
gr.Textbox(label="Enter Table Name")
],
outputs=gr.Textbox(label="Generated SQL Queries"),
title="CSV to SQL Query Converter",
description="<div style='text-align: center; margin-top: 20px;'>© 2025 Sandaru Abeykoon. All rights reserved.</div>",
)
iface.launch()