Spaces:
Sleeping
Sleeping
File size: 1,651 Bytes
20fcb23 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
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()
|