Hanya sejumlah kecil aplikasi yang membaca tabel MySQL mentah. File CSV jauh lebih mungkin untuk bekerja dengan aplikasi database yang berbeda. CSV adalah format standar untuk database di mana koma membedakan nilai dari baris dan kolom yang berbeda. Manfaat tambahan dari file CSV adalah dapat dibaca oleh manusia
Panduan mendetail ini akan menunjukkan cara mengekspor database MySQL ke file CSV
Prasyarat
- Akses ke baris perintah/jendela terminal
- Akun pengguna dengan hak akses root atau sudo
- Akun pengguna MySQL dengan hak akses root
- Akun phpMyAdmin yang telah dikonfigurasi sebelumnya (opsional)
Ekspor MySQL ke CSV dengan phpMyAdmin
Alat phpMyAdmin menyediakan antarmuka grafis untuk mengelola database MySQL Anda. Anda dapat menggunakannya untuk mengekspor basis data yang dilacak ke file CSV
- Mulailah dengan masuk ke phpMyAdmin
- Selanjutnya, klik tombol Database di spanduk atas
- Pada daftar Basis Data, klik tautan ke basis data yang ingin Anda ekspor. Dalam contoh ini, kami memilih database pengguna
- Layar berikutnya menampilkan daftar tabel dalam database tersebut. Centang kotak untuk tabel yang ingin Anda ekspor
- Klik tombol Ekspor di spanduk
- Biarkan metode Ekspor tetap apa adanya. Gunakan menu tarik-turun Format untuk memilih CSV, lalu klik Buka
- Kotak dialog meminta untuk menentukan lokasi tempat menyimpan file CSV
Ekspor dari MySQL ke CSV Menggunakan Baris Perintah
Anda dapat melakukan ekspor tanpa embel-embel dengan memilih semua data dalam tabel, dan menentukan lokasi untuk menyimpannya
Mulailah dengan membuka shell MySQL, lalu beralih ke database yang ingin Anda ekspor
Masukkan pernyataan berikut
SELECT * FROM myTable INTO OUTFILE '\tmp\myExportFile.csv' FIELDS ENCLOSED BY '"' TERMINATED BY ';' ESCAPED BY '"' LINES TERMINATED BY '\r\n';Ganti myTable dengan nama tabel sebenarnya dari database Anda. Anda dapat mengganti \tmp\myExportFile.csv dengan nama file atau lokasi lain. Pastikan untuk menyimpan SELECT column1, column2, column3, column4 FROM myTable WHERE column2 = 'value';0 nama file di bagian akhir
Catatan. Contoh ini menggunakan lokasi file Linux. Jika Anda bekerja di Windows, Anda dapat menggunakan SELECT column1, column2, column3, column4 FROM myTable WHERE column2 = 'value';1 untuk lokasi file Anda
Opsi Tambahan untuk Mengekspor dari MySQL
Untuk menentukan set data individual untuk diekspor dari tabel
SELECT column1, column2, column3, column4 FROM myTable WHERE column2 = 'value';_Ganti SELECT column1, column2, column3, column4 FROM myTable WHERE column2 = 'value';2 (dan lainnya) dengan nama sebenarnya dari kolom yang ingin Anda ekspor. Pastikan untuk menggunakan perintah SELECT column1, column2, column3, column4 FROM myTable WHERE column2 = 'value';_3 untuk menentukan tabel asal ekspor Anda. Pernyataan SELECT column1, column2, column3, column4 FROM myTable WHERE column2 = 'value';4 bersifat opsional, dan hanya mengizinkan ekspor baris yang berisi nilai tertentu. Ganti SELECT column1, column2, column3, column4 FROM myTable WHERE column2 = 'value';_5 dengan nilai aktual yang ingin Anda ekspor. Misalnya
SELECT order_date, order_number, order_status FROM current_orders WHERE order_status='pending';_Catatan. Klausa SELECT column1, column2, column3, column4 FROM myTable WHERE column2 = 'value';4 dapat berguna untuk memfilter hasil
Ekspor dan Berkas CSV Timestamp
Gunakan perintah berikut untuk mengekspor ke file CSV, dan tambahkan stempel waktu saat file dibuat
SET @TS = DATE_FORMAT(NOW(),'_%Y_%m_%d_%H_%i_%s'); SET @FOLDER = '\tmp'; SET @PREFIX = 'myTable'; SET @EXT = '.csv'; SET @CMD = CONCAT("SELECT * FROM myTable INTO OUTFILE '",@FOLDER,@PREFIX,@TS,@EXT, "' FIELDS ENCLOSED BY '\"' TERMINATED BY ';' ESCAPED BY '\"'"," LINES TERMINATED BY '\r\n';"); PREPARE statement FROM @CMD; EXECUTE statement;Seperti biasa, ganti myTable dengan nama sebenarnya dari tabel yang Anda ekspor
Catatan. Anda mungkin memperhatikan perintah SELECT column1, column2, column3, column4 FROM myTable WHERE column2 = 'value';8 di dalam tanda kurung. Kami telah membungkus perintah dalam fungsi yang menambahkan stempel waktu
Ekspor dengan Tajuk Kolom
Gunakan pernyataan SELECT column1, column2, column3, column4 FROM myTable WHERE column2 = 'value';_9 untuk menambahkan tajuk kolom ke file yang diekspor
(SELECT 'column1','column2','column3','column4') UNION (SELECT column1, column2, column3, column4 FROM myTable INTO OUTFILE '\tmp\myExportFile.csv' FIELDS ENCLOSED BY '"' TERMINATED BY ';' ESCAPED BY '"' LINES TERMINATED BY '\r\n')Berurusan dengan Nilai NULL
Jika ada nilai null (kosong) dalam database, proses ini mengekspornya sebagai huruf SELECT order_date, order_number, order_status FROM current_orders WHERE order_status='pending';0. Anda dapat mengganti nilai SELECT order_date, order_number, order_status FROM current_orders WHERE order_status='pending';1 dengan rangkaian teks lain yang lebih masuk akal
SELECT column1, column2, IFNULL(column3, 'N/A') FROM myTable INTO OUTFILE '\tmp\myExportFile.csv' FIELDS ENCLOSED BY '"' TERMINATED BY ';' ESCAPED BY '"' LINES TERMINATED BY '\r\n');Dalam hal ini, perintah SELECT order_date, order_number, order_status FROM current_orders WHERE order_status='pending';_2 mencari nilai kosong di SELECT order_date, order_number, order_status FROM current_orders WHERE order_status='pending';3. Saat menemukannya, ia menggantinya dengan string teks SELECT order_date, order_number, order_status FROM current_orders WHERE order_status='pending';4
Ekspor MySQL ke CSV Menggunakan mysqldump
Anda dapat menggunakan aplikasi mysqldump untuk mengekspor database MySQL ke file CSV. Masukkan yang berikut ke dalam prompt perintah
mysqldump --tab=/var/lib/mysql-files/ --fields-enclosed-by='"' --fields-terminated-by=',' --lines-terminated-by='\n' myTablePerintah ini membuat salinan database myTable di SELECT order_date, order_number, order_status FROM current_orders WHERE order_status='pending';6
Catatan. Akun pengguna Anda harus memiliki hak istimewa untuk mengakses direktori tempat file CSV disimpan. Anda dapat menyimpan ke jalur yang berbeda, tetapi itu harus jalur yang akses penuhnya dimiliki oleh MySQL
Ekspor MySQL ke CSV Menggunakan Mesin CSV
Dalam beberapa kasus, Anda dapat menggunakan mesin CSV di MySQL untuk mengubah tabel. Metode ini tidak akan berfungsi jika tabel MySQL memiliki indeks, atau jika tabel menggunakan auto_increment. Gunakan perintah berikut
ALTER TABLE myTable ENGINE=CSV;Pernyataan ini mengubah format database menjadi CSV. Anda kemudian dapat menyalin file CSV ke sistem lain
Kesimpulan
Anda sekarang memiliki empat cara untuk mengekspor database MySQL Anda ke file CSV. Jika Anda memiliki akses ke phpMyAdmin, ini adalah alat yang paling mudah diakses untuk digunakan
Jika Anda bekerja dari antarmuka baris perintah, perintah SELECT order_date, order_number, order_status FROM current_orders WHERE order_status='pending';7 adalah metode yang paling andal. Pada konfigurasi tertentu, CSV Engine atau metode mysqldump juga dapat menghemat banyak waktu
Sekarang setelah Anda mengetahui cara mengekspor database MySQL ke file CSV, langkah selanjutnya adalah mempelajari cara mengimpor CSV ke database MySQL