SQL yang mudah dibaca, sesuai dialek yang Anda pakai
SQL formatter ini menerima query sepanjang apa pun, bahkan beberapa pernyataan sekaligus, lalu mengindentasinya secara konsisten: satu klausa per baris, kolom dan kondisi sejajar, kata kunci dalam huruf besar/kecil sesuai pilihan Anda. Alat ini memahami sintaks lebih dari lima belas dialek, dari PostgreSQL, MySQL, dan SQL Server hingga BigQuery, Snowflake, dan Oracle PL/SQL, sehingga operator, kutipan, dan placeholder khas tiap dialek tetap utuh. Beralih ke Minify untuk mengubah query kembali menjadi satu baris untuk file konfigurasi atau string di kode Anda. Semuanya berjalan di browser; query Anda tidak pernah diunggah.
Cara memformat query SQL
- 1Tempel SQL Anda di panel kiri, atau mulai dari contoh query.
- 2Pilih dialek yang dipakai query tersebut. Standard SQL cukup untuk sebagian besar query sederhana; memilih dialek yang tepat penting untuk hal seperti cast
::di PostgreSQL, identifier backtick di MySQL, atau[brackets]di SQL Server. - 3Atur huruf kata kunci dan indentasi, lalu buka Opsi lainnya untuk huruf tipe data dan fungsi, indentasi tabular, posisi
AND/OR, dan baris kosong antarpernyataan. - 4Query yang sudah diformat muncul di kanan saat Anda mengetik. Jika query tidak bisa diurai, baris dan kolom masalahnya ditampilkan.
- 5Salin hasilnya, unduh sebagai file
.sql, atau pilih Minify untuk meringkasnya jadi satu baris.
Mengapa perlu memformat SQL?
SQL ditulis sekali tapi dibaca berkali-kali: saat code review, di log slow query, di migrasi yang harus di-debug seseorang jam 2 pagi. Query yang dihasilkan ORM atau disalin dari log biasanya datang sebagai satu baris yang sangat panjang. Menaruh setiap klausa di barisnya sendiri dan mengindentasi subquery membuat strukturnya terlihat: tabel mana yang di-join, berdasarkan apa, dan kondisi mana berlaku di mana.
Format yang konsisten juga membuat diff lebih kecil. Jika semua orang di tim memformat query dengan cara yang sama, kondisi yang diubah muncul sebagai satu baris yang berubah, bukan paragraf yang tersusun ulang.
Penjelasan opsi format
- Huruf kata kunci
- UPPER membuat SELECT, FROM, dan WHERE menonjol dibanding nama tabel dan kolom, konvensi yang paling umum. lower cocok untuk tim yang merasa huruf besar terlalu ramai. Preserve membiarkan kata kunci seperti yang Anda ketik.
- Indentasi
- Dua atau empat spasi, atau tab. Gaya tabular justru mengisi kata kunci ke dalam kolom berlebar tetap sehingga ekspresi sesudahnya sejajar.
- Posisi AND / OR
- Di awal menaruh setiap operator logika di awal baris, sehingga mudah menonaktifkan satu kondisi dengan komentar; di akhir membiarkannya di ujung baris sebelumnya.
- Lebar ekspresi
- Ekspresi dalam kurung yang lebih pendek dari jumlah karakter ini tetap satu baris; yang lebih panjang dipecah.
- Operator rapat
- Menulis a+b alih-alih a + b. Ringkas, tapi lebih sulit dibaca.
Memilih dialek yang tepat
Dialek SQL berbeda dalam lebih banyak hal daripada yang Anda kira: cara identifier dikutip ("name", `name`, atau [name]), bentuk placeholder (?, $1, :name, @param), dan kata mana yang dicadangkan. Formatter memakai tata bahasa terpisah untuk setiap dialek, sehingga tidak salah mengira badan fungsi $$ PostgreSQL atau komentar # MySQL sebagai hal lain.
Jika muncul error parse untuk query yang Anda yakin valid, dialek adalah hal pertama yang perlu diperiksa. Standard SQL sengaja dibuat ketat dan tidak mengenal semua ekstensi vendor.
Minify SQL
Minify adalah kebalikan dari format: menghapus komentar dan meringkas semua spasi menjadi spasi tunggal, menghasilkan satu baris yang bisa Anda tempel ke file YAML, variabel lingkungan, atau string literal. String literal, identifier berkutip, dan badan dollar-quoted disalin persis, sehingga nilai seperti 'two spaces' tetap mempertahankan kedua spasinya. Optimizer hint yang ditulis sebagai /*+ … */ dan komentar eksekusi MySQL /*! … */ dipertahankan, karena memengaruhi cara query dijalankan.
Bekerja dengan JSON? JSON formatter melakukan hal yang sama untuk dokumen JSON, dan code minifier menangani CSS, JavaScript, dan HTML.
Pertanyaan yang sering diajukan
- Apakah SQL saya dikirim ke server?
- Tidak. Format dan minify berjalan sepenuhnya di browser Anda, sehingga query yang berisi nama tabel, data pelanggan, atau kredensial tidak pernah meninggalkan perangkat Anda.
- Dialek SQL apa saja yang didukung?
- Standard SQL, PostgreSQL, MySQL, MariaDB, SQLite, SQL Server (T-SQL), Oracle PL/SQL, BigQuery, Snowflake, Amazon Redshift, Spark SQL, Hive, Trino dan Presto, DuckDB, ClickHouse, IBM Db2 dan Db2 for IBM i, SingleStoreDB, TiDB, dan Couchbase N1QL.
- Apakah format mengubah cara kerja query saya?
- Tidak. Yang berubah hanya spasi dan, jika Anda pilih, huruf besar/kecil kata kunci, tipe data, dan fungsi. Identifier berkutip dan string literal tidak pernah diubah. Mengubah huruf identifier tanpa kutip aman di sebagian besar database, tapi biarkan di Preserve jika database Anda membedakan huruf besar dan kecil.
- Mengapa muncul error parse?
- Entah query punya kesalahan sintaks, seperti kurung atau kutip yang tidak ditutup, atau memakai sintaks yang tidak ada di dialek yang dipilih. Pesan menunjukkan baris dan kolom tempat penguraian berhenti; coba dialek yang benar-benar dipakai database Anda.
- Bisakah saya memformat beberapa pernyataan sekaligus?
- Bisa. Pisahkan dengan titik koma dan masing-masing akan diformat bergantian, dengan jumlah baris kosong di antaranya sesuai pilihan Anda.
- Apakah komentar dipertahankan?
- Saat memformat, ya: komentar baris dan blok tetap di tempatnya. Minify menghapusnya, kecuali optimizer hint dan komentar eksekusi MySQL.
- Bagaimana cara minify query SQL jadi satu baris?
- Pilih Minify di bagian atas alat. Komentar dihapus dan spasi diringkas, sementara string literal dan identifier berkutip tetap persis seperti yang ditulis.