CSV Formatındaki Dosyayı Postgresql’e Import

Comma Separated Values (CSV): (Virgül ile ayrılmış değerler dosyası). Bir veri listesi
içeren düz metin dosyasıdır. Genellikle farklı uygulamalar arasında veri alışverişinde
kullanılırlar. Veritabanları çoğunlukla CSV dosyalarını desteklemektedir.

Öncelikle veritabanımızda personel isimli tabloyu create ediyoruz.

CREATE TABLE personel (
  id INT,
  ad VARCHAR(50),
  soyad VARCHAR(50),
  sehir VARCHAR(255),
PRIMARY KEY (id) ) ;

İkinci olarak belirtilen formatta bir CSV dosyası hazırlıyoruz.
Dosyayı windowsta Excel’de hazırladık. Linux’ta istediğimiz dizine almak için
alternatifler şu şekildedir.

1. Alternatif

Postgresql dizininde pwd komutunu çalıştırıp bulunduğumuz full path’i kopyalıyoruz.

Mobaxterm programında kopyaladığımız dizini işaretlediğimiz yere yapıştırıp o dizinin
altına gidiyoruz.

İşaretlediğimiz yere tıklayıp csv formatındaki dosyayı seçiyoruz ve böylelikle istediğimiz
dizinin altına dosyayı kopyalamış oluyoruz.

Aşağıdaki komutları çalıştırıp gerekli izin ve sahiplikleri düzenliyoruz. (Dizinler
düzenlenebilir.)

chown postgres:postgres /var/lib/pgsql/personnel.csv

2. Alternatif

WinSCP (windows secure copy) kullanılarak windows ile linux arasında veri transferi
yapılabilir.

Import

Dosyanın bulunduğu dizini kullanarak aşağıdaki komutu çalıştırıyoruz. Böylelikle csv
dosyasında virgül (,) ile ayrılan değerleri tabloya import etmiş oluyoruz.

COPY staff
FROM '/var/lib/pgsql/personnel.csv'
DELIMITER ','
CSV HEADER;

# To check
SELECT * FROM staff ;

Export

İlk olarak belirttiğimiz dizinde .csv uzantısı ile dosya oluşturuyoruz. İzin ve sahipliklerini
tanımlıyoruz.

touch personel.csv

chown postgres:postgres personel.csv

İkinci olarak tablodaki verilerin ‘,’ formatı ile dizindeki dosyaya kopyalanması için
aşağıdaki komutu çalıştırıyoruz.

COPY staff TO '/var/lib/pgsql/personnel.csv' DELIMITER ','
CSV HEADER;

**cat komutu ile dosyanın içini okuduğumuzda verileri görebiliriz.
Dosyayı windows tarafına almak için yine WinSCP programından ya da Mobaxterm
programından faydalanabiliriz.

Mobaxtermde; windows tarafına almak istediğimiz dosyayı seçtikten sonra
işaretlediğimiz butona tıklıyoruz.

Tablonun Bazi Kolonlarını Export Etmek

COPY personel (id, ad, soyad) TO ‘/var/lib/pgsql/personeller.csv’
DELIMITER ‘,’ CSV HEADER;

Tablonun Sütun Adlarını İçeren Başlığı Export Etmemek

COPY personel(ad,soyad) TO ‘/var/lib/pgsql/ad_soyad.csv’ DELIMITER ‘,’ CSV;

(ad_soyad.csv adlı dosyayı Linux’ta oluşturduk. Kopyalama işleminden sonra
dosyayı windows tarafına alabilirsiniz.)