Konuyu Açan #1
SQL CSV Dosyasından Veri Aktarma

CSV (Virgülle Ayrılmış Değerler) dosyaları, veri aktarımında sıkça kullanılan, basit ve taşınabilir formatlardır. SQL veritabanına CSV dosyasından veri aktarmak, özellikle büyük hacimli verilerle çalışırken zaman kazandırıcı ve pratik bir yöntemdir. Bu işlem, kullanılan veritabanı yönetim sistemine göre farklılık gösterebilir; en yaygın olanları MySQL, PostgreSQL ve SQL Server’dır.

İlk olarak, CSV dosyasının uygun formatta olması gerekir. Her satır, bir kaydı temsil etmeli ve alanlar (sütunlar) virgülle ayrılmış olmalıdır. Ayrıca, dosyada başlık satırı varsa, bu satırın atlanması veya uygun şekilde kullanılması gerekir.

MySQL’de veri aktarımı için LOAD DATA INFILE komutu kullanılır. Örneğin:

KOD
1234567
LOAD DATA INFILE '/path/to/dosya.csv'
INTO TABLE tablo_adı
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;


Burada, IGNORE 1 ROWS ifadesi, başlık satırını atlamak içindir.

PostgreSQL’de ise COPY komutu tercih edilir. Aynı işlemi aşağıdaki gibi yapabilirsiniz:

KOD
12
COPY tablo_adı FROM '/path/to/dosya.csv' WITH (FORMAT csv, HEADER true);


Bu komut, CSV dosyasındaki başlık satırını dikkate alır ve uygun şekilde veri aktarımı sağlar.

SQL Server’da ise BULK INSERT komutunu kullanmak yaygındır:

KOD
123456789
BULK INSERT tablo_adı
FROM 'C:\\path\\to\\dosya.csv'
WITH (
    FIRSTROW = 2,
    FIELDTERMINATOR = ',',
    ROWTERMINATOR = '\n',
    TABLOCK
);


Burada da ilk satırın başlık olduğunu varsayıp, ikinci satırdan başlaması sağlanır.

Veri aktarımında dikkat edilmesi gerekenler şunlardır:
  • Dosya yollarının doğru ve erişilebilir olması
  • Alan ve satır ayırıcıların (delimiter, terminator) uygun seçilmesi
  • Uygun karakter kodlamasının kullanılması (örn. UTF-8)
  • Veri tiplerinin tabloda uygun şekilde tanımlanması


Sonuç olarak, CSV'den SQL’e veri aktarmak, doğru araç ve komutlar kullanıldığında oldukça sorunsuz ve hızlı gerçekleşir. Bu yöntem, özellikle veri göçü ve yedekleme işlemlerinde büyük avantaj sağlar.

Bu konuda farklı veritabanı sistemleri ve özel durumlar ile ilgili deneyimleri ve önerileri paylaşmak ilgilenenler için faydalı olacaktır.

Yanıt vermek için giriş yapmış olmalısınız.

Bu konuyu görüntüleyen kullanıcılar (Toplam: 2, Üyeler: 2, Misafirler: 0)
Toplam: 2 (üyeler: 2, misafirler: 0)
0 alıntı seçildi