Excel'den MySQL'e Veri Import Etmek

Merhaba,

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

CSV dosya formatı bu iş için biçilmiş kaftandır. CSV yani comma-seperated values formatında excel tablomuzu kaydedelim.

* Birden çok CSV kaydetme alternatifi görebilirsiniz, “Virgülle ayrılmış CSV” seçeneği ile ilgileniyoruz şuanda. 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.

*** Referanslı veri hücrelerini de CSV’ye çevirebilirsiniz, ancak bu pek tavsiye edilen bir yöntem değil, plain text olarak veri barındıran hücrelerden bu işlemin yapılması öngörülüyor.

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 ;

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 ;

PhpMyAdmin imkanı olmayanlarda nasiplenmiş olsun (:

“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;

Üst menüden “İçeri Aktar” seçeneğini, eğer İngilizce kurulu ise “Import” seçeneğini ve ardından CSV dosyamızı seçelim ;

“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.

php.ini dosyanız içerisinde ki;

“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 belirteyim, 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ığında ki “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. Sorgu olarak ise bunu ;

bu şekilde gerçekleştirebilirsiniz.

Kolay gelsin.

9 thoughts on “Excel'den MySQL'e Veri Import Etmek”

  1. hocam anlattıgnız gıbı msqlde var olan verı tabanına csv den verı eklemeye calıstıgımda sonuc alamıyorum yardımınız olurmu acaba phpmyadmınde ımport ettıkden sonra şöyle bir sorgu cıkıyor yardımcı oma durumun varsa sevınırım

  2. ımport sonrasında cıkan ekran ama bakıyorum verıtabanına mus tablosuna atıyorum verıyı ama sayıda hıc coğalma yok

  3. Bu arada, tabloya eklenen kayıtlarda türkçe karakter problemi oluştu, sayfalarım utf-8, tablolarda öyle. Nasıl düzeltebiliriz ? Tşk

    1. Selamlar. Dosyayı import ederken (son resim), karakter grubu olarak utf8, utf8 general vb. seçip tekrar deneyebilirsiniz. Ek olarak Excel’de, Dosya => Farklı Kaydet => Virgülle Ayrılmış CSV => Araçlar => Web Seçenekleri => Bu Belgeyi Farklı Kaydet => Türkçe seçebilirsiniz.

  4. denedim sorgu çalıştı ancak türkçe karakter olan kısımlardan itibaren diğer karakterleri de tabloya kayıt etmedi…

    csv dosyamı farklı kaydedip -> araçlar web seçenekleri -> kodlama -> Bu belgeyi farklı kaydet -> Türkçe(Windows) seçili [Not bu menüde Türkçe(ISO) da mevcut onu da seçtim sonuç yine aynı]

    mysql tablom utf8_turkish_ci

    csv dosyasını import ederken utf-8 seçiliydi

    ama yine de türkçe karakterleri import etmiyor… Farklı karakterler ile kaydetme sorunu yok, o karakteri ve ondan sonra gelen hiç bir karakteri kaydetmiyor

Leave a Reply