Belajar MySQL Part 16 : Menambah Data dari File (LOAD DATA INFILE)
Pada tutorial MySQL sebelumnya: Cara Menambahkan data ke dalam Tabel (INSERT), kita menambahkan data langsung pada cmd MySQL. Untuk keperluan menambahkan data dalam jumlah besar, akan lebih efisien dan mudah jika data tersebut kita siapkan dalam bentuk file terlebih dahulu, dan kemudian diload ke dalam tabel. Untuk keperluan ini MySQL menyediakan query LOAD DATA INFILE.
Mempersiapkan Table Contoh : Daftar_dosen
Sebagai tabel contoh untuk mempelajari cara menambahkan data menggunakan query LOAD DATA INFILE, kita akan mempersiapkan tabel daftar_dosen, dengan query sebagai berikut:
Cara Penulisan dasar query LOAD DATA INFILE
Query MySQL: LOAD DATA INFILE digunakan untuk menginput data kedalam tabel dimana data yang diinput berasal dari sebuah file. Kita akan mempelajari cara penggunaannya dengan contoh dalam tutorial kali ini.
Query lengkap dari LOAD DATA INFILE sesuai dari manual MySQL adalah sebagai berikut:
Dapat kita lihat bahwa MySQL menyediakan banyak pilihan opsional (dalam tanda kurung siku) yang dapat digunakan tergantung kebutuhan. Dalam tutorial MySQL ini, kita akan membahas beberapa diantaranya.
Cara Penggunaan query LOAD DATA INFILE dalam MySQL
Agar lebih gampang dipahami, kita akan langsung mencoba query LOAD DATA INFILE, dengan membuat sebuah file input_data.txt. Anda bebas untuk meletakkan file tersebut. Pada contoh ini, saya akan menempatkannya pada folder “/home/forbbiden/”.
Buka gedit, lalu tuliskan data berikut ke dalam file text tersebut, dan save sebagai input_data.txt :
lalu Save Ctrl + X -> Y -> Enter .
Berikut Tampilan file input_data.txt
Pada saat membuat file, pastikan menekan Enter di akhir baris untuk membuat baris baru. Selanjutnya buka MySQL Client command prompt dan jalankan query berikut:
Mari kita bahas tentang penulisan perintah LOAD DATA INFILE diatas:
Berbagai pilihan instruksi dari query LOAD DATA INFILE
Jika kita melihat format penulisan query LOAD DATA INFILE, terdapat beberapa pilihan opsi lainnya, kita akan membahas beberapa diantaranya:
Penjelasan Opsi LOCAL
Opsi LOCAL disini digunakan untuk menentukan lokasi dari text yang diinput. Jika kita menuliskan LOCAL, maka file text akan dicari dalam komputer Client MySQL. Namun jika tidak ditulis, maka lokasi file akan dicari pada komputer MySQL Server. Karena kita mengistall MySQL pada satu komputer, opsi LOCAL tidak akan berpengaruh, karena MySQL Server dan MySQL Client berada pada komputer yang sama, dan juga folder yang sama (file mysqld.exe adalah MySQL Server, dan file mysql.exe adalah MySQL Client). Contoh penggunaan query-nya: LOAD DATA LOCAL INFILE ‘path_to_file’.
Penjelasan Opsi [ REPLACE | IGNORE ]
Opsi [REPLACE | IGNORE] berkaitan dengan cara MySQL menangani duplikasi data pada kolom PRIMARY KEY. Jika opsi REPLACE digunakan, maka saat ditemukan data yang sama, maka data yang baru akan menimpa data lama, namun jika menggunakan opsi IGNORE, data yang baru akan diabaikan dan MySQL akan menjalankan baris berikutnya.
Penjelasan opsi LINES STARTING BY ‘string’ dan TERMINATED BY ‘string’
Opsi ini digunakan untuk menentukan awal dari data dan akhir dari data. String disini dapat berupa karakter seperti “,” atau “*”, maupun karakter new line dan carriage return.
Penggunaan karakter-karakter khusus dapat dilihat dari tabel dibawah ini:
Penjelasan opsi IGNORE number
Opsi IGNORE dapat digunakan untuk mengistruksikan MySQL agar melompati beberapa baris dan memulai dari baris ke sekian. Hal ini berguna jika pada awal text merupakan penjelasan nama kolom.
Contoh Cara Penggunaan query LOAD DATA INFILE dengan opsi LOCAL, REPLACE dan LINES STARTING BY
Agar memahami penggunaan LOCAL, REPLACE dan LINES STARTING BY, kita akan mencoba menggunakan query LOAD DATA INFILE untuk file kedua berikut.
Kali ini saya akan membuat file data_lagi.txt, dengan isian sebagai berikut:
Perhatikan bahwa setiap baris diawali dengan tanda bintang dua kali (**), diakhiri dengan karakter pipa (|) dan setiap kolom dibatasi dengan tab. Juga pada baris ke 2 dan 3 akan terdapat duplikasi untuk kolom NIP dengan data sebelumnya. Baris pertama dari text adalah judul kolom.
Agar file diatas dapat diproses oleh MySQL, kita perlu menggunakan perintah tambahan. Penulisan query untuk menginput file ini adalah sebagai berikut:
Query diatas menambahkan 4 baris dan menghapus 2 baris, hal ini dapat dilihat setelah query dijalankan Records: 4 Deleted: 2 Skipped: 0 Warnings: 0. Hal ini dikarenakan opsi REPLACE yang menggantikan 2 baris yang memiliki NIP yang sama.
Kesimpulan !
Dalam tutorial belajar MySQL kali ini kita telah membahas cara menambahkan data ke tabel MySQL dari sebuah file text external menggunakan query LOAD DATA INFILE. Melanjutkan pembahasan mengenai query dasar MySQL, berikutnya kita akan membahas tentang Cara Menampilkan Data MySQL dengan query SELECT.
Mempersiapkan Table Contoh : Daftar_dosen
Sebagai tabel contoh untuk mempelajari cara menambahkan data menggunakan query LOAD DATA INFILE, kita akan mempersiapkan tabel daftar_dosen, dengan query sebagai berikut:
Cara Penulisan dasar query LOAD DATA INFILE
Query MySQL: LOAD DATA INFILE digunakan untuk menginput data kedalam tabel dimana data yang diinput berasal dari sebuah file. Kita akan mempelajari cara penggunaannya dengan contoh dalam tutorial kali ini.
Query lengkap dari LOAD DATA INFILE sesuai dari manual MySQL adalah sebagai berikut:
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
[REPLACE | IGNORE]
INTO TABLE tbl_name
[CHARACTER SET charset_name]
[{FIELDS | COLUMNS}
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char']
]
[LINES
[STARTING BY 'string']
[TERMINATED BY 'string']
]
[IGNORE number {LINES | ROWS}]
[(col_name_or_user_var,...)]
[SET col_name = expr,...]
Dapat kita lihat bahwa MySQL menyediakan banyak pilihan opsional (dalam tanda kurung siku) yang dapat digunakan tergantung kebutuhan. Dalam tutorial MySQL ini, kita akan membahas beberapa diantaranya.
Cara Penggunaan query LOAD DATA INFILE dalam MySQL
Agar lebih gampang dipahami, kita akan langsung mencoba query LOAD DATA INFILE, dengan membuat sebuah file input_data.txt. Anda bebas untuk meletakkan file tersebut. Pada contoh ini, saya akan menempatkannya pada folder “/home/forbbiden/”.
Buka gedit, lalu tuliskan data berikut ke dalam file text tersebut, dan save sebagai input_data.txt :
lalu Save Ctrl + X -> Y -> Enter .
Berikut Tampilan file input_data.txt
Pada saat membuat file, pastikan menekan Enter di akhir baris untuk membuat baris baru. Selanjutnya buka MySQL Client command prompt dan jalankan query berikut:
Mari kita bahas tentang penulisan perintah LOAD DATA INFILE diatas:
- Hal pertama yang kita tulis setelah perintah LOAD DATA INFILE adalah lokasi tempat file input_data.txt berada. Dalam query diatas, file tersebut berada pada /home/forbidden/input_data.txt . Jika lokasi file anda berbeda, tinggal menyesuaikan saja.
- Setelah lokasi file, selanjutnya kita menambahkan perintah ke tabel mana file tersebut akan diinput. Pada contoh kita, tabel tersebut adalah daftar_dosen, sehingga ditulis …INTO TABLE daftar_dosen…
- Perintah FIELDS TERMINATED BY ‘,’ dimaksudkan sebagai instruksi pada MySQL bahwa setiap kolom pada input_data.txt dipisahkan oleh karakter koma ‘,’. Namun tidak harus tanda koma, tanda lain seperti titik, tanda ‘|’, maupun karakter tab bisa kita gunakan sebagai tanda pemisah, dan instruksikan MySQL untuk menggunakan tanda tersebut sebagai penanda kolom.
- Instruksi ENCLOSED BY ‘”‘ memberitahu MySQL agar menghapus penanda kutip dua (“) dari tiap kolom. Namun jika pada daftar_dosen.txt kita tidak menambahkan tanda kutip dua diawal data, MySQL tetap akan menerima data tersebut.
- Pada akhir query, perintah …LINES TERMINATED BY ‘\r\n’ menginstruksikan MySQL agar tiap baris diakhiri dengan karakter new line dan carriage return. Karakter khusus ini terbentuk ketika kita menekan Enter pada keyboard untuk pindah baris pada notepad. ‘\r‘ merupakan cara penulisan untuk karakter carriage return, sedangkan ‘\n‘ adalah karakter new line.
Berbagai pilihan instruksi dari query LOAD DATA INFILE
Jika kita melihat format penulisan query LOAD DATA INFILE, terdapat beberapa pilihan opsi lainnya, kita akan membahas beberapa diantaranya:
Penjelasan Opsi LOCAL
Opsi LOCAL disini digunakan untuk menentukan lokasi dari text yang diinput. Jika kita menuliskan LOCAL, maka file text akan dicari dalam komputer Client MySQL. Namun jika tidak ditulis, maka lokasi file akan dicari pada komputer MySQL Server. Karena kita mengistall MySQL pada satu komputer, opsi LOCAL tidak akan berpengaruh, karena MySQL Server dan MySQL Client berada pada komputer yang sama, dan juga folder yang sama (file mysqld.exe adalah MySQL Server, dan file mysql.exe adalah MySQL Client). Contoh penggunaan query-nya: LOAD DATA LOCAL INFILE ‘path_to_file’.
Penjelasan Opsi [ REPLACE | IGNORE ]
Opsi [REPLACE | IGNORE] berkaitan dengan cara MySQL menangani duplikasi data pada kolom PRIMARY KEY. Jika opsi REPLACE digunakan, maka saat ditemukan data yang sama, maka data yang baru akan menimpa data lama, namun jika menggunakan opsi IGNORE, data yang baru akan diabaikan dan MySQL akan menjalankan baris berikutnya.
Penjelasan opsi LINES STARTING BY ‘string’ dan TERMINATED BY ‘string’
Opsi ini digunakan untuk menentukan awal dari data dan akhir dari data. String disini dapat berupa karakter seperti “,” atau “*”, maupun karakter new line dan carriage return.
Penggunaan karakter-karakter khusus dapat dilihat dari tabel dibawah ini:
Penjelasan opsi IGNORE number
Opsi IGNORE dapat digunakan untuk mengistruksikan MySQL agar melompati beberapa baris dan memulai dari baris ke sekian. Hal ini berguna jika pada awal text merupakan penjelasan nama kolom.
Contoh Cara Penggunaan query LOAD DATA INFILE dengan opsi LOCAL, REPLACE dan LINES STARTING BY
Agar memahami penggunaan LOCAL, REPLACE dan LINES STARTING BY, kita akan mencoba menggunakan query LOAD DATA INFILE untuk file kedua berikut.
Kali ini saya akan membuat file data_lagi.txt, dengan isian sebagai berikut:
Perhatikan bahwa setiap baris diawali dengan tanda bintang dua kali (**), diakhiri dengan karakter pipa (|) dan setiap kolom dibatasi dengan tab. Juga pada baris ke 2 dan 3 akan terdapat duplikasi untuk kolom NIP dengan data sebelumnya. Baris pertama dari text adalah judul kolom.
Agar file diatas dapat diproses oleh MySQL, kita perlu menggunakan perintah tambahan. Penulisan query untuk menginput file ini adalah sebagai berikut:
Query diatas menambahkan 4 baris dan menghapus 2 baris, hal ini dapat dilihat setelah query dijalankan Records: 4 Deleted: 2 Skipped: 0 Warnings: 0. Hal ini dikarenakan opsi REPLACE yang menggantikan 2 baris yang memiliki NIP yang sama.
Kesimpulan !
Dalam tutorial belajar MySQL kali ini kita telah membahas cara menambahkan data ke tabel MySQL dari sebuah file text external menggunakan query LOAD DATA INFILE. Melanjutkan pembahasan mengenai query dasar MySQL, berikutnya kita akan membahas tentang Cara Menampilkan Data MySQL dengan query SELECT.
No comments