HELLO, I’M SERHAT AND THIS IS MY FANCY TITLE.

Excel'den MySQL'e veri import etmek

Şöyle bir excel tablo yapımız olduğunu ve bunu MySQL'e import etmek istediğimizi düşünelim:

id    names    edu
1    serhat    omu
2    mustafa    odtu
3    dundar    ytu

CSV dosya formatı bu iş için biçilmiş kaftandır. Excel'de bulunan verilerimizi CSV yani comma-seperated values formatında kaydedelim.

Kayıt esnasında birden çok CSV kaydetme alternatifi görebilirsiniz, biz virgülle ayrılmış CSV seçeneği ile ilgileniyoruz şu anda. Zaten yalnızca CSV dosya tipine mahkumda değiliz. Tabi ki .txt .xml gibi başka formatlarda da benzer adımlarla import edebiliriz.

CSV olarak kaydetme işlemi tek bir sayfa için çalışmaktadır, çoklu sayfalar içeren veri tablolarınızı ayrı excel dosyaları haline getirip CSV'ye çevirin.

Kaydettiğiniz CSV dosyasını herhangi bir text editörü ile açın ve kolon isimlerini (id, names, edu) silin - kaydedin. Artık elimizde şöyle bir CSV dosyası olması gerekiyor:

1;serhat;omü
2;mustafa;odtü
3;dündar;ytü

Sütun başlıklarınızı artık MySQL'de oluşturabiliriz. Ben en basit ve pratik yöntem olan PhpMyAdmin üzerinden bu işlemi yapacağım. Sorgu çalıştırarakta pekala yapılabilecek bir işlem. Madem sorgudan bahsettim, yazayım ki içimde kalmasın:

CREATE TABLE `serhat`.`mustafa` (
`id` INT(8) NOT NULL AUTO_INCREMENT,
`names` VARCHAR(15) CHARACTER SET latin5 COLLATE latin5_turkish_ci NOT NULL,
`edu` INT(15) NOT NULL,
PRIMARY KEY (`id`))
ENGINE = MyISAM CHARACTER SET latin5 COLLATE latin5_turkish_ci;

serhat isimli veritabanıma 3 alandan oluşan mustafa isimli bir tablo oluşturuyorum, bu alanları şu şekilde düzenledim, siz ihtiyaca göre değiştirebilirsiniz:

excel-mysql-import-1

Üst menüden İçeri Aktar seçeneğini, eğer İngilizce PhpMyAdmin kurulu ise Import seçeneğini seçin ve ardından CSV dosyanızı seçin:

excel-mysql-import-2

"Kısmi içeri aktarma" başlığı altında uyguladığım değeri siz es geçebilirsiniz, buna takılmayın şimdilik, o konuya sonra değineceğim.

Lokal'de çalışıyorsanız sorun yok ancak sanal hosting üzerinden bu işlemi yapıyorsanız veri-sorgu boyutuna göre, hosting firmanızın php.ini dosyası üzerinde belirlediği sınırlar ile yetinmek zorundasınız. Bu dosyaya erişme imkanınız varsa php.ini dosyanız içerisinde ki şu satırları bulun:

; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 2M

Daha sonra upload_max_filesize değerini arttırarak, import edilebilecek dosya boyutunu da arttırmış olursunuz.

Eski MS Office sürümlerinde gördüğüm bir şeyi de belirtmekte yarar var. Bizim CVS dosyamız noktalı virgül (;) işaretini ayraç olarak kullanıyor, ancak eski Office sürümlerinde bunun sadece virgül (,) olduğunu görmüştüm. Bu durumda "Seçenekler" başlığındaki "Alanı sonlandıran değer" girdisini virgül (,) ile değiştirmeniz gerekiyor.

Tüm bunları uyguladıktan sonra import etme işleminiz başarıyla gerçekleşmiştir.

Eğer hatalı bir işlem yaptıysanız, tabloyu boşaltıp tekrar import edebilirsiniz. SQL sorgusu olarak ise bunu;

TRUNCATE  TABLE 'mustafa'

komutuyla gerçekleştirebilirsiniz.

Başarılar.


Share this post!


Blog Comments powered by Disqus.