Mengentry data MySql dari Excel
Pada sebuah kasus terdapat sebuah data pada file excel yang perlu di inputkan pada table mysql. Apabila jumlah data tersebut hanya beberapa buah menginputkan data dengan cara manual yaitu, memasukan satu persatu data tersebut ke table database melalui aplikasi atau SQL mungkin terasa ringan, tetapi bila jumlah data tersebut berjumlah puluhan ribu, rasanya sangat melelahkan dan memerlukan waktu yang lama sekali untuk melakukannya.
Pada Database MySQL memiliki fitur LOAD DATA INFILE. fitur tersebut adalah untuk memasukan data ke table database dengan sumber data berasal dari file.
Database MySQL yang saya gunakan versi 5.1 dengan Operation System Ubuntu 11.04 - the Natty Narwhal
Berikut ini adalah langkah-langkah nya
1. Rubah data pada Excel menjadi bertipe CSV
a. Hilangkan Judul Kolom pada File Excel, menjadi seperti contoh dibawah ini
b .Lakukan konversi ke csv dan berikan delimiter koma (koma sebagai contoh) untuk membedakan antar field.
c. Bila konversi Excel ke CSV berhasil maka akan menghasilkan file berekstensi *.csv yang bila file tersebut dibuka akan tampak seperti dibawah ini
2. Lakukan perintah load file csv seperti ini contoh dibawah ini, sebelumnya Anda masuk terlebih dahulu ke prompt command line mysql melalui console
Pola
- mysql -u[username] -p[password mysql] -e "LOAD DATA LOCAL INFILE '[alamat file csv]' INTO TABLE [nama table tujuan] FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'" [nama database tujuan]
- mysql -uroot -ppass -e "LOAD DATA LOCAL INFILE '/home/dendie/Desktop/negara.csv' INTO TABLE tbl_negara FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'" db_teritorial
Berikut ini adalah penjelasan dari script diatas.
- mysql mengartikan menggunakan service database mysql
- -u adalah untuk memasukan username database mysql
- -p adalah untuk memasukan password database mysql
- -e adalah argumen untuk memberikan perintah eksekusi kepada mysql
- LOAD DATA LOCAL INFILE adalah perintah untuk melakukan load/memuat data dari sebuah file
- INTO TABLE adalah tujuan table untuk data yang di load
- FIELDS TERMINATED BY ',' mengartikan bahwa karakter koma sebagai pemisah antar kolom dari data yang di load
- TERMINATED BY '\n' mengartikan bawah karakter \n atau baris baru sebagai pemisah setiap baris dari data yang di load
- db_teritorial adalah nama tujuan database untuk data yang di load
Berikut ini adalah contoh hasil import data menggunakan LOAD DATA LOCAL INFILE
Data ditampilkan menggunakan software MySQL Query Browser Versi 1.2.12 by MySQL AB
sumber : http://dendieisme.blogspot.com