SQL Formatter
SQL'i düzgün indent ile biçimlendir ve güzelleştir veya tek satıra küçült. Lehçe farkında (ANSI / MySQL / Postgres).
Sonucu görmek için yukarıya giriş yapın.
Bu ne işe yarar?
SQL psql'de yazdığın bir tek satırdan 200 satırlık ve düzgün indent edilmeden kimsenin okuyamadığı bir analitik sorguya kadar uzanır. Bu formatter herhangi bir SELECT, INSERT, UPDATE veya DDL'yi tutarlı indent, her clause'tan önce satır sonları ve tek tip anahtar kelime case'i ile yeniden yazar. Minify modu tersini yapar — kod veya script'lere gömmek için her şeyi tek satıra çöker. Her şey tarayıcında çalışır; sorgular sayfayı asla terk etmez.
Ne zaman kullanılır
- Bir log dosyasından, ORM'den veya sohbet mesajından kopyaladığın bir sorguyu diffable ve reviewable bir şeye yeniden biçimlendirme.
- Bir migration script'ini commit etmeden önce takım geleneklerini (UPPERCASE anahtar kelimeler, 2-boşluk indent) normalize etme.
- Uzun bir güzel basılı sorguyu YAML config veya tek satırlık CLI argümanına sığması için tek satıra ezme.
- Yapısal problemleri tespit etme — dengelenmemiş parantezler, SELECT listesinde eksik virgül veya ON olmadan JOIN — sorgu indent edildiğinde belirgin olanları.
Sık yapılan hatalar
- Formatter yapısaldır, anlamsal değildir. Sorgunun doğru SQL olup olmadığını söylemez, sadece gördüğü token'ları nasıl indent edeceğini. Girdideki bir sözdizimi hatası çıktıda bir sözdizimi hatası olur.
- Lehçeye özgü anahtar kelimeler değişir.
ILIKE,RETURNING,LATERALPostgres'tir;STRAIGHT_JOIN,SQL_CALC_FOUND_ROWSMySQL'dir. Doğru lehçeyi seç yoksa bu kelimeler anahtar kelime olarak tanınmayacaktır. - String literal'ları aynen korunur. Tek tırnak içindeki çok satırlı bir string satır sonlarını korur; formatter
'...'içindeki metni yeniden akıtmaz. - Yorumlar hayatta kalır ama kendi satırlarında izole olur. Satır ortasında bir
-- inline yorumvarsa, güzel-yazdırma sırasında kendi satırına taşınır. - Minify yorumları temizler. Onlara ihtiyacın varsa, minify etme.
- Bu bir linter değildir. Doğrulama, stil zorlaması ve CI'da lehçe kontrolü için gerçek bir SQL parser (örn.
sqlfluff) kullan.