GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengekspor Hasil Permintaan MySQL ke Format CSV di Linux

Membuat kueri dari MySQL database shell selalu menyenangkan dan canggih sampai Anda membutuhkan output database yang disimpan di suatu tempat untuk akses dan referensi yang mudah; terutama ketika berurusan dengan kumpulan data yang besar.

Akses data cepat menyelamatkan Anda dari keharusan setiap kali masuk ke server MySQL melalui shell terminal untuk merujuk output terkait kueri MySQL tertentu. CSV (Nilai Dipisahkan Koma ) adalah kandidat ideal untuk menyelesaikan jenis interaksi pengguna-ke-database yang berulang ini.

Format file CSV paling baik diterapkan untuk menyimpan keluaran MySQL karena atributnya yang menonjol yang meliputi:

  • Ini adalah format penyimpanan data yang dipisahkan koma yang dapat diterima secara luas.
  • Keuntungan tambahan yang dapat dibaca manusia.
  • Mudah diimpor ke aplikasi apa pun karena sifatnya yang teks biasa.
  • Kemampuannya beradaptasi dalam mengelola dan mengatur kumpulan data besar.

Prasyarat

  • File CSV yang akan Anda kaitkan dengan MySQL keluaran kueri seharusnya belum ada karena akan dibuat secara otomatis selama eksekusi keluaran kueri MySQL yang ditargetkan.
  • Memiliki hak akses root pada database MySQL dan sistem Linux.

Membuat Tabel Basis Data Contoh dengan Beberapa Nilai Baris

Agar tutorial ini menarik dan lebih dipahami, tabel database dengan beberapa nilai perlu ada. Untuk tutorial ini, Anda bisa berada di bawah MySQL atau MariaDB RDBMS. Sejak MariaDB adalah garpu sumber terbuka MySQL , dua RDBMS . ini referensi implementasi yang sama dari perintah shell database mereka.

Masuk ke MySQL . Anda database sebagai pengguna root DB atau dengan kredensial pengguna database yang ada.

$ sudo mysql -u root -p

Kami akan membuat database baru untuk meng-host tabel database baru kami.

MariaDB[(none)]> tampilkan database;MariaDB[(none)]> buat database lst_db;MariaDB[(none)]> gunakan lst_db;

Selanjutnya buat database dengan beberapa tabel seperti pada gambar.

MariaDB[(none)]> CREATE TABLE lst_projects( project_id INT AUTO_INCREMENT, project_name VARCHAR(100) NOT NULL, project_category VARCHAR(100) NOT NULL, project_manager VARCHAR(100) NOT NULL, start_date DATE, end_date DATE, PRIMARY KEY));_id  

Mengisi Tabel Database MySQL dengan Data

Kami telah memverifikasi bahwa tabel database MySQL yang kami buat memang ada. Saatnya mengisinya dengan beberapa data.

MariaDB[(none)]> tampilkan tabel;MariaDB[(none)]> INSERT INTO lst_projects(project_name, project_category, project_manager, start_date, end_date)VALUES ('Marketing','AI','David Guitar','2021-08-01','2021-12-31'), ('Copy writing ','AI','Viola Guin','2022-01-01','2022-03-31'), ('Modeling','Robotics','Mary Atkins','2023-04-01', '2023-07-31'), ('API','ML','Duncan Reeves','2024-02-01','2024-06-20'), ('Penjualan','ML',' Anthony Luigi','2025-05-15','2025-11-20');

Biarkan kami mengonfirmasi keberadaan lst_projects kami nilai tabel.

MariaDB[(none)]> PILIH * DARI lst_projects;

Mengekspor Hasil Query MySQL ke Format CSV

Direktori sementara “/var/tmp” memberi MySQL hak baca dan tulis yang dibutuhkan. Kami akan menggunakannya untuk menghosting semua file CSV yang dibuat secara otomatis dari kueri MySQL.

Beberapa kondisi menentukan bagaimana kami mengekspor hasil kueri MySQL ke format file CSV.

Mengekspor Semua Kueri MySQL ke CSV

Untuk mengekspor kueri db ini “SELECT * FROM lst_projects; ” ke dalam file CSV, kami akan mengimplementasikannya dengan cara berikut:

MariaDB[(none)]> PILIH * FROM lst_projectsINTO OUTFILE '/var/tmp/get_all_queries.csv'FIELDS DIBATALKAN OLEH '"'DIHENTIKAN OLEH ';'ESCAPED OLEH '"'LINES DIHENTIKAN OLEH '\r\n';

Mari kita coba mengambil file yang dihasilkan:

Ekspor Tabel MySQL ke CSV dengan Header

Pendekatan ini memberikan tampilan profesional pada file CSV yang Anda buat.

MariaDB[(none)]> (PILIH 'Nama Proyek','Kategori Proyek','Manajer Proyek','Tanggal Mulai','Tanggal Berakhir')UNION (SELECT project_name,project_category, project_manager, start_date, end_dateFROM lst_projectsINTO OUTFILE '/var/tmp/included_column_headings.csv 'FIELDS DIBATASI OLEH '"' DIHENTIKAN OLEH ';' DILUARKAN OLEH '"'LINES DIHENTIKAN OLEH '\r\n');

Mari kita kembali mengambil file yang dihasilkan:

Sebagaimana dicatat, ekspor CSV kueri MySQL sekarang diatur dengan baik dengan judul kolom.

Menangani Nilai Null pada Kueri MySQL yang Diekspor

Mari tambahkan kolom yang menerima Null nilai ke tabel Database kami lst_projects .

MariaDB[(none)]> ALTER TABLE lst_projects ADD COLUMN project_status VARCHAR(15) SETELAH tanggal_akhir;

Kami tidak akan memasukkan nilai apa pun ke kolom baru ini untuk memastikannya tetap kosong. Ekspor kueri MySQL dengan Null nilai direkam sebelumnya dengan “"N” pada file CSV yang dihasilkan. Untuk memperbaiki masalah ini, kita dapat mengganti “"N” nilai dengan sesuatu yang lebih relatable seperti “N/A” .

MariaDB[(none)]> (SELECT 'Project Name','Start Date','End Date','Project Status')UNION (SELECT project_name, start_date, end_date, IFNULL(project_status, 'N/A')FROM lst_projects INTO OUTFILE '/var/tmp /with_null.csv' FIELDS DIBATASI OLEH '"' DIHENTIKAN OLEH ';' DILUARKAN OLEH '"' LINES DIHENTIKAN OLEH '\r\n');

Mari kita periksa file CSV yang dihasilkan.

Ekspor Tabel MySQL ke CSV dengan Nama File Stempel Waktu

Ini menciptakan rutinitas pengelolaan yang lebih akurat dalam hal kapan file CSV Anda dibuat.

MariaDB[(none)]> SET @TS =DATE_FORMAT(SEKARANG(),'_%Y_%m_%d_%H_%i_%s');SET @FOLDER ='/var/tmp/';SET @PREFIX ='lst_projects';SET @EXT ='.csv';SET @CMD =CONCAT("SELECT * FROM lst_projects INTO OUTFILE '",@FOLDER,@PREFIX,@TS,@EXT,"' FIELDS ENCLOSED BY '\"' DIHENTIKAN OLEH ';' DILUARKAN OLEH '\"'"," LINES DIHENTIKAN OLEH '\r\n';");SIAPKAN pernyataan DARI @CMD;Jalankan pernyataan;

Nama file CSV yang dihasilkan sekarang seharusnya memiliki stempel waktu.

Mengeluarkan MySQL . Anda hasil kueri ke file CSV adalah cara yang efisien untuk mengelola kumpulan data besar karena menghemat waktu dan uang Anda terutama saat mengelola data untuk organisasi besar.


Linux
  1. Cara menyalin database MySQL

  2. Cara Menghentikan Proses dalam MySQL

  3. Cara Membuat Database di MySQL dengan MySQL Workbench

  1. Cara mempartisi dan memformat drive di Linux

  2. Cara Mengimpor Database Ekspor di MYSQL MariaDB

  3. cara masuk ke mysql dan menanyakan database dari terminal linux

  1. Bagaimana cara mengimpor file CSV ke database MySQL?

  2. Cara Mencadangkan &Memulihkan Basis Data MySQL

  3. Cara Mengekspor Tabel dari MySQL ke CSV