Selekta BETA EN Unduh untuk Mac
EXPORT · CSV · EXCEL · POSTGRESQL · MYSQL

Ekspor tabel PostgreSQL atau MySQL ke CSV atau Excel

Terbit 23 Oktober 2026

Untuk mengekspor tabel PostgreSQL atau MySQL ke CSV atau Excel, buka tabelnya di Selekta, klik Export (atau tekan ⇧⌘E), pilih CSV atau XLSX, atur delimiter, NULL dan format tanggal, pilih file, lalu klik Export. Tanpa aplikasi, pakai \copy di psql untuk PostgreSQL, atau client mysql dalam batch mode untuk MySQL.

Ekspor membaca semua baris tabel atau query, bukan hanya yang tampil di layar, dan mengalirkannya langsung ke disk. Sisa panduan ini membahas opsi-opsinya dan apa yang bisa serta tidak bisa dilakukan setiap alternatif SQL.

Ekspor dengan Selekta, langkah demi langkah

  1. Konek, lalu buka tabelnya: klik dua kali di navigator, atau tekan ⌘O dan ketik namanya.
  2. Opsional: ketik kondisi di Where, misalnya created_at >= '2026-01-01', lalu tekan ⌘↵. Ekspor hanya akan berisi baris yang cocok (sumbernya bertuliskan "· filtered").
  3. Klik Export di bar bawah, atau tekan ⇧⌘E. Wizard-nya punya empat langkah: Format, Options, Destination, Export.
  4. Format: pilih CSV ("Comma or tab separated text. Opens in any spreadsheet."), XLSX ("Excel workbook, one sheet."), JSON atau SQL INSERT. Klik Next.
  5. Options: atur opsi format yang dijelaskan di bawah. Untuk CSV, JSON dan SQL, Preview · first 3 rows menampilkan persis apa yang akan ditulis. Klik Next.
  6. Destination: nama file default-nya nama tabel dan tanggal hari ini di folder Downloads, misalnya orders_2026-10-23.csv. Pakai Browse… untuk menggantinya, dan centang Open folder after export jika ingin Finder menampilkan file-nya.
  7. Klik Export. Tampilan progres menunjukkan baris yang sudah ditulis, waktu berjalan dan ukuran. Klik Continue in background untuk lanjut bekerja; status bar menampilkan progres dan notifikasi muncul saat selesai.
  8. Setelah selesai, wizard menampilkan jumlah baris, ukuran file dan durasi, dengan tombol Open file dan Show in Finder.

Wizard ekspor di langkah Options untuk CSV, dengan pratinjau tiga baris

Hasil query apa pun juga bisa diekspor: jalankan query di tab SQL lalu klik Export pada hasilnya (⇧⌘E). Query dijalankan ulang di koneksinya sendiri, jadi tab Anda tetap bisa dipakai, dan semua baris diekspor, bukan hanya yang sudah di-fetch.

Opsi CSV

  • Delimiter: Comma, Semicolon, Tab atau Pipe. Spreadsheet dengan locale Eropa atau Indonesia sering mengharapkan titik koma.
  • Quote: tanda kutip ganda atau tunggal, hanya ditambahkan jika nilai berisi delimiter, tanda kutip atau baris baru.
  • NULL as: kosong secara default, sehingga NULL dan string kosong terlihat sama di file. Ketik NULL (atau \N) jika sistem penerima harus bisa membedakannya. Pratinjau memberi tahu baris mana yang berisi NULL dan bagaimana NULL itu ditulis.
  • Encoding: UTF-8, UTF-8 with BOM (Excel on Windows), atau ISO-8859-1. Pilih varian BOM jika file akan dibuka dengan klik dua kali di Excel untuk Windows, supaya huruf beraksen tidak rusak.
  • Date format: ISO 8601 (default) menulis timestamp sebagai 2026-10-20 14:32:07+07:00, yang dibaca spreadsheet sebagai tanggal. As stored menulisnya persis seperti yang dikirim server.
  • Header row with column names: aktif secara default.

Opsi XLSX

  • Sheet name: maksimal 31 karakter, tanpa : \ / ? * [ ].
  • Header style: Bold, frozen first row atau No header row.

Sel XLSX mempertahankan tipenya. Angka menjadi angka Excel (desimal mempertahankan skalanya, jadi 10.50 tetap 10.50), boolean menjadi TRUE dan FALSE, dan tanggal serta timestamp tanpa zona waktu menjadi tanggal Excel sungguhan. Nilai dengan zona waktu, seperti timestamptz di PostgreSQL, tetap berupa teks, karena Excel tidak mengenal zona waktu dan konversi akan mengubah jam aslinya. Bilangan bulat lebih dari 15 digit juga tetap teks agar tidak dibulatkan, dan teks yang melebihi batas sel Excel sebesar 32.767 karakter akan dipotong.

Satu sheet XLSX menampung 1.048.576 baris termasuk header. Jika Selekta tahu tabelnya lebih besar, langkah Options memberi peringatan dan menawarkan Stop at limit (tulis 1.048.575 baris pertama) atau Use CSV.

Tabel besar

Baris dialirkan dari database ke file sementara .partial yang di-rename saat ekspor selesai. Jika Anda membatalkan, atau ekspor gagal, file parsial itu dihapus, jadi tidak ada file setengah jadi yang tertinggal di disk. Untuk tabel berisi jutaan baris, pilih CSV: tidak ada batas baris, dan file ditulis seiring baris datang. Untuk hasil kecil, langkah Destination menawarkan Copy to clipboard sebagai ganti file (sampai 10.000 baris).

Tanpa aplikasi: PostgreSQL

COPY … TO 'file' menulis file di server database, dan butuh hak superuser atau role pg_write_server_files. Agar file-nya ada di Mac Anda, pakai COPY … TO STDOUT, yang dibungkus psql sebagai \copy:

psql "postgres://[email protected]/orders" \
  -c "\copy (SELECT * FROM orders WHERE created_at >= '2026-01-01') TO 'orders.csv' WITH (FORMAT csv, HEADER)"

Tambahkan NULL 'NULL' ke opsinya untuk menulis NULL sebagai kata, bukan field kosong. COPY tidak punya output Excel; buka CSV-nya di Excel atau Numbers lalu simpan sebagai workbook.

Tanpa aplikasi: MySQL

SELECT … INTO OUTFILE punya beberapa jebakan:

SELECT * FROM orders
INTO OUTFILE '/var/lib/mysql-files/orders.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n';
  • File ditulis di disk server database, bukan di Mac Anda.
  • Butuh privilege FILE, dan setelan secure_file_priv membatasi folder tujuannya (sering /var/lib/mysql-files/, atau tidak ada sama sekali).
  • Kebanyakan layanan MySQL managed tidak mengizinkannya.
  • Tidak ada baris header, NULL menjadi \N, dan perintah ini menolak menimpa file yang sudah ada.

Dari Mac, batch mode client mysql biasanya lebih mudah. Hasilnya teks dipisah tab dengan baris header:

mysql -h db.example.com -u app -p --batch -e "SELECT * FROM orders" shop > orders.tsv

Dalam batch mode, NULL ditulis sebagai kata NULL, dan tab atau baris baru di dalam nilai di-escape menjadi \t dan \n.

Kalau gagal

Permission denied: cannot write to /Library/Exports. Choose a folder you own, such as ~/Downloads. macOS tidak mengizinkan Selekta menulis di sana. Pilih folder lain dengan Browse… lalu klik Retry export.

Not enough free space on /Volumes/USB: … Disk penuh. File parsial sudah dihapus; kosongkan ruang atau pilih disk lain.

The result has more than 1,048,575 rows, the most an XLSX sheet holds. Export it as CSV, or narrow the query. Jumlah baris tidak diketahui di awal dan hasilnya melebihi satu sheet. Klik Back to options lalu ganti ke CSV, atau tambahkan filter Where.

Not allowed: : \ / ? * [ ] di bawah Sheet name: hapus karakter tersebut; Excel tidak menerimanya di nama sheet.

The MySQL server is running with the --secure-file-priv option so it cannot execute this statement (dari INTO OUTFILE): tulis ke folder yang disebut SHOW VARIABLES LIKE 'secure_file_priv', atau ekspor dari sisi client.

Terkait