Tek satıra sıkışmış, okunmayan SQL'i düzgün girintilenmiş bir sorguya çevirin — 18 lehçe, tamamı tarayıcınızda.
SQL nadiren okunabilir hâlde gelir: bir ORM'den çıkan upuzun tek bir satır, yavaş sorgu günlüğünde tamamı küçük harf anahtar kelimeler, bir sohbet uygulamasının bozduğu girintiler. Daha okumaya başlamadan elle yeniden biçimlendirmek on dakikanızı alır — üstelik hatalar tam da okurken ortaya çıkar: sessizce filtreye dönüşmüş bir birleştirme koşulu, yazarının sandığından geniş bağlanan bir OR, üç seviye derinlikte bir alt sorgu. Buraya yapıştırın; her yan tümce ayrı satırda, iç içe yapılar hizalanmış ve anahtar kelimeler tercih ettiğiniz yazımda geri gelsin.
İşi bir yığın düzenli ifade değil, gerçek bir ayrıştırıcı yapar. Sorgu tokenlara ayrılır, yan tümcelerden oluşan bir ağaç olarak anlaşılır ve yeniden yazdırılır; yorumların yazıldıkları satırda kalmasının, SELECT veya FROM gibi kelimeler içerse bile metin sabitlerinin hiç dokunulmadan korunmasının ve bir pencere fonksiyonunun OVER (PARTITION BY … ORDER BY …) bloğunu düzgün iç içe tutmasının sebebi budur. On sekiz lehçe sunulur — Standard SQL, PostgreSQL, MySQL, MariaDB, SQLite, SQL Server (T-SQL), Oracle PL/SQL, BigQuery, Snowflake, Redshift, Spark, Trino, Hive, Db2, Db2 for i, TiDB, SingleStore ve N1QL — ve bu seçim süs değildir: PostgreSQL'in dolar tırnaklaması ($$body$$) ve T-SQL köşeli parantezleri ([dbo].[table]) Standard SQL altında ayrıştırma hatası verir, doğru lehçe altında ise kusursuz biçimlenir. ?, :name, $1 ve @name gibi yer tutucular her lehçede tanınır ve olduğu gibi geçirilir; böylece doğrudan bir sorgu günlüğünden kopyalanan SQL bozulmaz.
İki dürüst sınır. Formatlayıcı yalnızca metnin, seçilen lehçe için dilbilgisel olarak geçerli SQL olup olmadığını kontrol eder: tablolarınız hakkında hiçbir şey bilmez, dolayısıyla var olmayan bir sütuna atıf yapan bir sorguyu da biçimlendirir ve hiçbir şeyi asla çalıştırmaz. Metin ayrıştırılamadığında, yarım biçimlendirilmiş bir karmaşa döndürmek yerine ayrıştırıcının nerede pes ettiğini satır ve sütunla birlikte söyler. Rastgele bir site yerine burada biçimlendirmenin nedeni gizliliktir: canlı ortam sorguları tablo adlarını, iş mantığını ve bazen kişisel verileri taşır. Kütüphane (sql-formatter, MIT lisanslı, vai.la üzerinden sunulur ve yalnızca ilk biçimlendirmenizde indirilir) tarayıcınızın içinde çalışır.
Hayır. Sorgu, kendi cihazınızda JavaScript tarafından ayrıştırılır ve yeniden yazdırılır — hiçbir şey yüklenmez, kaydedilmez veya saklanmaz. Bu önemlidir, çünkü gerçek sorgular şemanızı, iş kurallarınızı ve bazen sabit değerlerin içinde duran kişisel verileri açığa çıkarır. İlk biçimlendirmeden sonra internet bağlantınızı kesebilirsiniz, araç yine de çalışır.
Veritabanınızın konuştuğu lehçeyi. Standard SQL sıradan sorguların çoğunu kapsar, ancak veritabanına özgü sözdizimi eşleşen lehçeyi gerektirir: [köşeli parantezler] için SQL Server (T-SQL), $$dolar tırnaklaması$$ için PostgreSQL. Geçerli bir SQL'de alınan ayrıştırma hatası genellikle lehçe değiştirilerek çözülür.
Hayır. Yalnızca boşluklar, satır sonları ve anahtar kelimelerin yazımı değişir. Tanımlayıcılar, metin sabitleri, sayılar ve yorumlar yazdığınız gibi geri gelir; dolayısıyla biçimlendirilmiş sorgu orijinaliyle eşdeğerdir.
Çünkü ayrıştırıcı, gösterilen satır ve sütunda dilbilgisine oturtamadığı bir şeyle karşılaştı. Üç sık sebep: eksik virgül, tırnak veya parantez gibi bir yazım hatası; tam bir ifade olmayan bir parça; ya da yanlış lehçe seçiliyken kullanılan, veritabanına özgü sözdizimi.
Evet. Konumsal (?), numaralı ($1) ve adlandırılmış (:name, @name) yer tutucular her lehçede tanınır ve değiştirilmeden geri yazdırılır; böylece doğrudan bir sorgu günlüğünden ya da bir çatının hata ayıklama çıktısından yapıştırabilirsiniz.
Evet. Noktalı virgülle ayrılmış ifadeler, aralarına birer boş satır konarak sırayla biçimlendirilir. Sayfa donmasın diye giriş 300.000 karakterle sınırlıdır; bunun ötesinde dosyayı bölün.
Vai.la, herhangi bir URL'yi tıklama istatistikleri, QR Code ve kendi biolink'inizle birlikte kısa bir bağlantıya dönüştürür.
Vai.la, araçların nasıl kullanıldığından veya sonuçlarına dayanarak alınan kararlardan sorumlu değildir.