Formatter SQL

Rapikan SQL berantakan dengan mesin open-source sql-formatter: pilih dialek, besar-kecil keyword, dan gaya indentasi kuerimu.

Pemformatan berjalan lokal di browser Anda. Kueri Anda tidak pernah meninggalkan perangkat.

Indentasi
SQL terformat
—

Cara kerja

Pemformatan dilakukan oleh sql-formatter, pustaka open-source (MIT) yang sama yang dibundel halaman ini dari npm. Alurnya tiga langkah: tokenizer khusus dialek memisah kueri Anda menjadi keyword, identifier, string, dan operator; passe parse ringan menyimpulkan struktur klausa (mana daftar SELECT, mana yang bersarang di dalam CASE); dan penulis layout memancarkan ulang token satu klausa per blok dengan indentasi dan besar-kecil pilihan Anda. Tidak ada database yang terlibat pada titik mana pun.

Tokenizer, bukan validator
Karena mesin bekerja di atas token, alat ini memformat apa pun yang bisa dipisah menjadi token SQL — termasuk kueri setengah jadi yang sedang Anda ketik. Ia tidak akan memberi tahu bahwa sebuah tabel tidak ada atau JOIN salah secara logika; sintaks hanya diperiksa sejauh yang dibutuhkan tokenisasi. Pustaka ini juga tidak menangani stored procedure atau delimiter kustom, dan kasus itu memunculkan error yang terlihat alih-alih hasil kacau.
Lima dialek di sini (dan masih ada lagi)
Halaman ini menawarkan SQL standar, MySQL, PostgreSQL, SQLite, dan BigQuery — mesin yang paling sering orang tempel kuerinya. Pustaka di baliknya juga mengenal ClickHouse, DB2, Hive, MariaDB, N1QL, Oracle PL/SQL, Redshift, Snowflake, Spark, Transact-SQL, Trino, dan lainnya; pilihan dialek memengaruhi aturan token (backtick, cast ::, @params), karena itu memformat dengan dialek salah bisa terlihat agak melenceng.
Mengapa keyword HURUF BESAR jadi bawaan
SQL tidak membedakan besar-kecil pada keyword, jadi gaya adalah satu-satunya sinyal yang memisahkan SELECT yang tersesat dari identifier yang memang dimaksudkan. Konvensi keyword kapital (klausa berteriak, data tetap seperti diketik) adalah gaya dominan di buku, linter, dan panduan tim, dan membuat struktur kueri terbaca sekali pandang. Pilih huruf kecil atau pertahankan jika standar tim Anda beda — alat ini menuruti.

Pertanyaan yang sering diajukan

Apakah alat ini menjalankan SQL saya di suatu tempat?

Tidak — alat ini tidak pernah menyentuh database. Formatter membaca kueri Anda sebagai teks biasa, menulis ulang spasi dan besar-kecil keyword, lalu menampilkan hasilnya. Pernyataan, nama tabel, dan data Anda tetap di perangkat, dan tidak ada koneksi untuk dikonfigurasi atau dicoba.

Adakah opsi minify atau satu baris?

Tidak di halaman ini. Pustaka sql-formatter di baliknya (v15, sama dengan rilis terbaru npm) adalah pretty-printer: ia menata kueri, tidak mengompresnya. Versi lama punya mode minified; sudah dihapus di hulu. Untuk mengecilkan pernyataan yang memang ingin dipadatkan, alat Code Minifier kami menangani teks bermotif SQL sebagai pekerjaan tersendiri.

Apakah alat ini akan memberi tahu kalau SQL saya salah?

Hanya kebetulan. sql-formatter adalah tokenizer ditambah mesin layout, bukan validator: ia tidak memeriksa schema, nama fungsi, apalagi kepatuhan tata bahasa penuh, dan sebagian besar teks tak rapi namun masih bisa di-token tetap terformat. Ia benar-benar gagal pada konstruksi yang tidak tertutup (misalnya literal string menganga), dan error itu ditampilkan di baris error.

Mengapa hasilnya beda antar dialek untuk kueri yang sama?

Setiap dialek membawa daftar keyword dan aturan token sendiri, sehingga teks yang sama bisa tersekat berbeda: BigQuery memperlakukan literal struct dan @params secara khusus, PostgreSQL mengenal cast ::, MySQL menerima identifier dengan backtick. Pilih mesin Anda yang sebenarnya sebelum memformat — besar-kecil dan pergantian baris mengikuti tokenizer dialek.

Apakah ada yang diunggah ke server?

Tidak. Formatter adalah modul JavaScript yang dibundel bersama halaman ini dan berjalan di browser Anda (sql-formatter, berlisensi MIT). Kueri Anda tidak pernah meninggalkan perangkat — dan itu penting, karena kueri sering memuat kredensial dan data pelanggan.