Ne işe yarar
Bir elektronik tabloyu veritabanına yüklemek genellikle tablo tanımını ve uzun bir INSERT ifadesi listesini elle yazmak, her kesme işaretini tek tek kaçışlamak demektir. Bu araç bunu sizin yerinize yapar: CSV’yi yapıştırın, bir CREATE TABLE ifadesi ve toplu hâlde çok satırlı INSERT ifadeleri içeren, çalıştırmaya hazır bir SQL betiği alın.
RFC 4180’e uyar: tırnak içindeki alanları, hücre içindeki virgülleri ve satır sonlarını, çift yazılmış tırnakları işler. Dizeler seçilen veritabanına göre doğru kaçışlanır; MySQL’deki ters eğik çizgiler ve SQL Server’ın N'…' Unicode dizeleri de dahil.
Nasıl kullanılır
- CSV yapıştırın, bir
.csvveya.tsvdosyası yükleyin ya da Örnek’e tıklayın. - Tablo adı’nı girin. Şema için nokta kullanın, örneğin
public.ordersveyadbo.orders. - Lehçe’yi seçin: MySQL / MariaDB, PostgreSQL, SQLite veya SQL Server.
- INSERT başına satır sayısını seçin; tablo zaten varsa CREATE TABLE’ı kapatın.
- SQL’i kopyalayın ya da
.sqldosyası olarak indirip veritabanı istemcinizle çalıştırın.
Ayırıcı otomatik algılanır; virgül, noktalı virgül, sekme veya dikey çizgiyi açıkça da seçebilirsiniz. İlk satır sütun adları değil de veri içeriyorsa İlk satır başlık seçeneğini kapatın; sütunlar column_1, column_2 vb. olarak adlandırılır.
Örnek
Şu CSV:
id,name,price,in_stock
1,Ada's Tea,4.50,true
2,Coffee,,false
PostgreSQL için şu betiğe dönüşür:
CREATE TABLE "products" (
"id" INTEGER,
"name" TEXT,
"price" NUMERIC(3, 2),
"in_stock" BOOLEAN
);
INSERT INTO "products" ("id", "name", "price", "in_stock") VALUES
(1, 'Ada''s Tea', 4.50, TRUE),
(2, 'Coffee', NULL, FALSE);
Ada's içindeki kesme işareti iki kez yazılır, boş fiyat NULL olur, sayılar ve mantıksal değerler tırnaksız yazılır.
Türler ve lehçeler
- MySQL / MariaDB: ters tırnaklı tanımlayıcılar,
INT,DECIMAL,BOOLEAN,DATE,DATETIME,VARCHAR(255)veyaTEXT; dizelerdeki ters eğik çizgiler kaçışlanır. - PostgreSQL: çift tırnaklı tanımlayıcılar,
INTEGER,NUMERIC,BOOLEAN,DATE,TIMESTAMPveTEXT. - SQLite: çift tırnaklı tanımlayıcılar ve SQLite’ın depolama sınıfları
INTEGER,REALveTEXT; mantıksal değerler 1 ve 0 olarak yazılır. - SQL Server: köşeli parantezli tanımlayıcılar,
INT,DECIMAL,BIT,DATE,DATETIME2veNVARCHAR; dize sabitleriN'…'biçimindedir ve INSERT başına en fazla 1000 satır vardır. - Boş hücreler
NULLolur. Metin sütunlarında boş dizeleri korumak için Boş hücreler NULL olsun seçeneğini kapatın. - Betiği üretim verisinde çalıştırmadan önce çıkarılan türleri kontrol edin: örnekte yalnızca küçük sayılar bulunan bir sütun ileride daha geniş bir tür gerektirebilir.
SSS
› Hangi veritabanları destekleniyor?
MySQL (ve MariaDB), PostgreSQL, SQLite ve Microsoft SQL Server. Seçilen lehçe; tablo ve sütun adlarının nasıl tırnaklanacağını, dizelerin nasıl kaçışlanacağını, hangi sütun türlerinin kullanılacağını ve mantıksal değerlerin nasıl yazılacağını belirler.
› Sütun türleri nasıl seçilir?
Her sütun taranır: tam sayılar INT veya BIGINT, ondalık sayılar yeterli hassasiyette DECIMAL, true/false BOOLEAN (SQL Server’da BIT), ISO tarihleri DATE veya DATETIME, geri kalan her şey metin olur. Posta kodları gibi başında sıfır olan sayılar metin olarak kalır. Tüm sütunları metin yapmak için Türleri algıla’yı kapatın.
› SQL Server neden INSERT başına 1000 satırla sınırlı?
SQL Server 1000 satırdan uzun bir VALUES listesini reddeder; bu yüzden bu lehçede daha büyük toplu boyutlar 1000 ile sınırlanır. Diğer veritabanları daha büyük toplu işlemleri kabul eder, ama ifade başına 100–1000 satır hız ile boyut arasında iyi bir dengedir.
› CSV dosyam bir yere yükleniyor mu?
Hayır. Ayrıştırma ve SQL üretimi tamamen tarayıcınızda yapılır; veriler cihazınızdan hiç çıkmaz.