İçeriğe geç
🛠️ToolsShed

CSV'den SQL INSERT Oluşturucu

CSV verilerini SQL INSERT ifadelerine dönüştürün. Otomatik algılanan sütun tipleriyle isteğe bağlı CREATE TABLE DDL üretin.

Bu araç hakkında

CSV'den SQL INSERT Oluşturucu, elektronik tablo verilerini yürütülebilir SQL INSERT deyimlerine dönüştüren tarayıcı tabanlı bir araçtır. Bu uygulamayı CSV dosyalarındaki verileri SQL veritabanlarına taşıması gereken, test veritabanlarını hızla doldurması gereken veya herhangi bir SQL veritabanı sistemine karşı doğrudan yürütülebilir bir biçimde veri paylaşması gereken geliştiriciler ve veritabanı yöneticileri için kullanmak gereklidir.

Bu aracı kullanmak için CSV verilerinizi yapıştırın veya yükleyin; araç otomatik olarak sütun başlıklarını ve veri türlerini algılar. Daha sonra mevcut tablolar için basit INSERT deyimleri oluşturabilir veya çıkarsanan sütun tanımlamalarıyla bir CREATE TABLE deyimi ekleyebilirsiniz. Araç, tablo adı belirtme, NULL değerlerini işleme ve farklı SQL lehçeleri veya tırnak işareti stilleri arasından seçme gibi özelleştirme seçeneklerini destekler.

Bu araç, virgüllü tırnak işareti içine alınan alanlar, hücreler içindeki satır sonları ve özel karakterler gibi sınır durumlarını zarif bir şekilde işler. Tek seferlik veri içe aktarmaları, geliştirme veritabanlarını doldurmayı veya komut satırı araçları veya veritabanı istemci yazılımı gerektirmeyen yedekleme ve geri yükleme iş akışları için veri kümeleri hazırlamak için özellikle yararlıdır.

Sıkça Sorulan Sorular

Kod Uygulaması

import csv
import io

def csv_to_sql(csv_text, table_name="my_table", include_create=True):
    reader = csv.reader(io.StringIO(csv_text.strip()))
    rows = list(reader)
    if len(rows) < 2:
        return ""

    headers = rows[0]
    data_rows = rows[1:]

    def infer_type(values):
        for v in values:
            v = v.strip()
            if v == "":
                continue
            try:
                int(v)
                return "INT"
            except ValueError:
                try:
                    float(v)
                    return "FLOAT"
                except ValueError:
                    return "VARCHAR(255)"
        return "VARCHAR(255)"

    types = [infer_type([r[i] for r in data_rows if i < len(r)])
             for i in range(len(headers))]

    sql = []
    if include_create:
        cols = ", ".join(f"{h} {t}" for h, t in zip(headers, types))
        sql.append(f"CREATE TABLE {table_name} ({cols});")

    for row in data_rows:
        values = []
        for i, val in enumerate(row):
            if types[i] == "VARCHAR(255)":
                values.append(f"'{val.replace(chr(39), chr(39)*2)}'")
            else:
                values.append(val if val.strip() else "NULL")
        cols_str = ", ".join(headers)
        vals_str = ", ".join(values)
        sql.append(f"INSERT INTO {table_name} ({cols_str}) VALUES ({vals_str});")

    return "\n".join(sql)

csv_data = """id,name,score
1,Alice,95.5
2,Bob,87"""

print(csv_to_sql(csv_data))

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.