22 Sep 2016

Export Database MySQL ke File CSV

Adlinux - Agar data dapat dianalisa dengan mudah serta menghasilkan laporan yang dapat dibuka dengan Open Office atau Ms Excel kita dap... thumbnail 1 summary
Export Database MySQL ke File CSV
Adlinux - Agar data dapat dianalisa dengan mudah serta menghasilkan laporan yang dapat dibuka dengan Open Office atau Ms Excel kita dapat menyimpan database MySQL ke dalam format CSV. Berikut penjelasannya.

File format CSV terdiri dari kolom-kolom yang dipisahkan dengan koma. Biasanya penggunaan file format CSV dilakukan untuk pertukaran data antar aplikasi seperti Open Office, Ms Excel, Google Docs dan lain-lain.

File csv ini juga sangat bermanfaat bagi kita karena dengan File CSV ini kita dapat menganalisa data-data dengan cara yang kita inginkan.

MySQL menyediakan beberapa cara yang mudah untuk menyimpan hasil query ke dalam file CSV yang berada di database server.

Namun sebelum export database dilakukan kita harus memastikan dua hal berikut:
  1. MySQL Server memiliki akses ke folder target dimana file CSV hasil ekport ditempatkan.
  2. Belum ada file CSV yang akan diexport di dalamnya.

Export Database MySQL ke File CSV

Query berikut akan memilih order yang dibatalkan dari table orders
SELECT 
    orderNumber, status, orderDate, requiredDate, comments
FROM
    orders
WHERE
    status = 'Dibatalkan';

Untuk menyimpan hasil di atas ke dalam file CSV, kita harus menambahkan beberapa perintah pada query di atas sebagai berikut
SELECT 
    orderNumber, status, orderDate, requiredDate, comments
FROM
    orders
WHERE
    status = 'Cancelled' 
INTO OUTFILE 'C:/tmp/cancelled_orders.csv' 
FIELDS ENCLOSED BY '"' 
TERMINATED BY ';' 
ESCAPED BY '"' 
LINES TERMINATED BY '\r\n';

Perintah di atas akan menghasilkan file order_batal.csv di dalam folder c:/tmp/ yang berisi hasil seperti yang telah di set di atas.

File CSV berisi dengan baris data seperti yang telah di set di atas di mana setiap barisnya diakhiri dengan cariage return. Adapun file yang dihasilkan adalah file order_batal.csv di dalam folder c:/tmp/ yang berisi hasil seperti yang telah di set di atas. Di mana setiap barisnya ditandai dengan perintah LINES TERMINATED BY '\r\n'.

Setiap barisnya terdiri dari setiap nilai dari kolom yang di set di query di atas.

Setiap nilai diapit oleh tanda kutip ganda ditunjukkan oleh BIDANG tertutup oleh '"'. Hal ini berguna mencegah nilai yang mungkin berisi koma (,) akan ditafsirkan sebagai pemisah antar field. Ketika melampirkan nilai-nilai dengan tanda kutip ganda, tanda koma dalam nilai tidak diakui sebagai pemisah field.

Export Data berikut Kolom-kolom Heading

Akan lebih nyaman jika file CSV berisi baris pertama sebagai judul dari setiap kolom record sehingga baris-baris kolom dalam file akan lebih mudah dimengerti.

Untuk menambahkan judul kolom, Anda perlu menggunakan pernyataan UNION sebagai berikut:
(SELECT 'Order Number','Order Date','Status')
UNION 
(SELECT orderNumber,orderDate, status
FROM orders
INTO OUTFILE 'C:/tmp/orders.csv'
FIELDS ENCLOSED BY '"' TERMINATED BY ';' ESCAPED BY '"'
LINES TERMINATED BY '\r\n');
Query diatas akan menyertakan judul dari setiap field record sebagai judul kolom ke dalam file csv orders.csv

Penanganan nilai NULL

Mengenai nilai-nilai dari hasil set yang mengandung nilai NULL, dalam hal ini file target akan berisi dengan "N bukan NULL. Untuk memperbaiki masalah ini, Anda harus mengganti nilai NULL dengan nilai lain misalnya, Not Applicable (N/A) dengan menggunakan fungsi IFNULL sebagai query, berikut caranya:
SELECT 
    orderNumber, orderDate, IFNULL(shippedDate, 'N/A')
FROM
    orders INTO OUTFILE 'C:/tmp/orders2.csv' 
    FIELDS ENCLOSED BY '"' 
    TERMINATED BY ';' 
    ESCAPED BY '"' LINES 
    TERMINATED BY '\r\n';

Kita mengganti nilai pada kolom shippedDate dengan string N/A.

Lihat juga Integrasi XAMPP + PostgreSQL + PHPPgAdmin di Windows