SQL Biçimlendirici


Çıktı

Deneyin:

Sorgunuz tarayıcınızdan çıkmaz, çalıştırılmaz.

Sorgum çalıştırılıyor mu, bir veritabanına bağlanıyor musunuz?

Hayır. Bu araç hiçbir veritabanına bağlanmaz, sorgunuzu çalıştırmaz ve sonuç döndürmez. Yaptığı tek şey metni okuyup yeniden yazmak. Yapıştırdığınız SQL tarayıcınızdan hiç çıkmaz; sayfa açıldıktan sonra araç sunucuya hiçbir istek göndermez. Metniniz hiçbir yerde saklanmaz.

Biçimlendirme sorgumun anlamını değiştirebilir mi?

Bu araçta değiştiremez, çünkü her işlemden sonra çıktı yeniden okunup girdiyle simge simge karşılaştırılıyor. Dizge sabitleri, yorumlar, tırnaklı adlar ve sayılar birebir aynı mı diye bakılıyor. Bir tanesi bile değişmişse üstte kırmızı uyarı çıkıyor ve çıktıyı çalıştırmamanız söyleniyor. Yeşil bandı gördüğünüzde karşılaştırma yapılmış ve fark bulunmamış demektir.

Neden bu karşılaştırmaya ihtiyaç var?

Çünkü metni gerçekten ayrıştırmayan biçimlendiriciler tırnak içindeki metni de anahtar kelime sanıyor. Böyle bir araçta SELECT * FROM log WHERE mesaj = 'select yapildi' sorgusu, tırnağın içindeki kelime büyütülerek ve araya satır sonu konarak çıkıyor. Sorgu bir INSERT ise veritabanına yazılan metnin kendisi değişmiş oluyor. Bozuk JSON gözle görünür, bozuk SQL çalışır ve yanlış sonuç verir.

İki çizgili yorumlara ne oluyor?

İki çizgili yorum satır sonuna kadar sürer. Bir biçimlendirici yorumun ortasına satır sonu koyarsa, yorumun geri kalanı çalışan SQL haline gelir; yorum satırına alınmış bir DELETE böylece geri canlanabilir. Bu araç yorumun içine asla satır sonu koymaz. Küçültmede, yani her şeyi tek satıra indirirken, iki çizgili yorumları blok yoruma çevirir, çünkü aksi halde yorum kendinden sonraki her şeyi yutardı. Kaç yorumun çevrildiğini üstte yazar.

Yer tutucularım korunuyor mu?

Evet, hepsi. Soru işareti, dolarlı numara, iki nokta ile başlayan ad, at işaretli değişken ve yüzde s gibi Python yer tutucuları biçimlendirme boyunca korunuyor. Bunlar bozulursa sorgu çalışmaz hale geleceği için ayrıca denetleniyor.

WHERE'siz DELETE uyarısı ne işe yarıyor?

DELETE veya UPDATE yazıp WHERE koymayı unuttuğunuzda sorgu tablonun tamamına dokunur ve bunu hiçbir hata vermeden yapar. Araç böyle bir ifade görünce kırmızı Tehlike satırı çıkarır. TRUNCATE ve DROP için de aynısını yapar. Bilerek yazdıysanız bir şey değişmez, sadece söylenmiş olur.

Yorumun içinde tehlike ne demek?

Yorum satırına alınmış bir DELETE, DROP veya UPDATE bulundu demektir. Bunlar çalışmaz ama yanlışlıkla yorum işareti silinirse veya sorgu başka bir yere kopyalanırken satır bölünürse çalışır hale gelirler. Sorguyu paylaşmadan önce görmeniz için listeleniyor.

Lehçe seçimi neyi değiştiriyor?

Tanımlayıcı tırnağını ve dizge kurallarını. PostgreSQL çift tırnak kullanır, MySQL ters tırnak, SQL Server köşeli parantez. Yanlış lehçe seçilirse tanımlayıcı dizge sanılır ve sorgu bozulur. Seçtiğiniz lehçeye uymayan bir tırnak kullandıysanız araç bunu uyarı olarak yazar. Hangi lehçenin varsayıldığı her işlemden sonra üstte görünür.

Bir lehçeden diğerine çeviriyor musunuz?

Kısmen, ve ne çevirdiğini tek tek yazarak. Hedef lehçe kutusundan bir veritabanı seçtiğinizde tanımlayıcı tırnakları çevriliyor, yani ters tırnak köşeli paranteze veya çift tırnağa dönüyor. IFNULL, ISNULL, NVL ve COALESCE birbirine, LEN ve LENGTH birbirine, NOW, GETDATE ve SYSDATE birbirine çevriliyor. LIMIT ile TOP arasında geçiş yapılıyor, bu ikisi sorgunun farklı yerlerinde durduğu için konumu da düzeltiliyor. Yapılan her değişiklik satır numarasıyla üstte listeleniyor.

Çevrilemeyen yapılar ne oluyor?

Otomatik çevrilmiyor ve bunu size söylüyoruz. ON DUPLICATE KEY UPDATE, ON CONFLICT, RETURNING, ILIKE, SERIAL, AUTO_INCREMENT, IDENTITY, GROUP_CONCAT, STRING_AGG, LISTAGG ve dolar işaretli PostgreSQL gövdeleri böyle. Bunlardan biri bulunduğunda bant sarıya dönüyor, kaç yeri elle düzeltmeniz gerektiğini yazıyor ve her biri için hedef lehçedeki karşılığını söylüyor. Sessizce yanlış çevirmektense söylemeyi tercih ediyoruz; çeviri sırasında da dizge sabitleriniz ve yorumlarınız birebir korunuyor, bu ayrıca ölçülüyor.

Sorgumda gerçek veri var uyarısını neden alıyorum?

Tırnak içinde e-posta adresi veya on bir haneden uzun bir sayı bulunduğunda çıkıyor. Bu araç hiçbir şey göndermediği için sizin açınızdan risk yok; uyarı, aynı sorguyu başka bir yere yapıştırmadan önce görmeniz için var. Üretim sorgularının içinde gerçek müşteri kimlikleri ve e-posta adresleri sık bulunur.

2026'nın yeni SQL sürümlerini tanıyor mu?

Evet. MERGE, WHEN MATCHED, NULLS DISTINCT, NOT ENFORCED, GENERATED ALWAYS, VIRTUAL, WITHOUT OVERLAPS gibi kelimeler ve VECTOR tipi tanınıyor. Kapsam: PostgreSQL 18 ile gelen temporal kısıtlar, RETURNING OLD ve NEW, sanal üretilmiş kolonlar; SQL Server 2025 ile gelen VECTOR tipi, VECTOR_DISTANCE, JSON_OBJECTAGG, JSON_ARRAYAGG; MySQL 9 vektör fonksiyonları; Oracle 23ai; ve SQL:2023 ile standartlaşan JSON_TABLE, ANY_VALUE, GREATEST. Anahtar kelime biçimi seçiminiz bu kelimelere de uygulanıyor.

Kütüphane sorguyu hiç okuyamazsa ne oluyor?

Yine de çıktı alırsınız, ama daha sade bir girintiyle, ve bu durum üstte yazar. Genelde lehçeyi yanlış seçtiğinizde olur; örneğin PostgreSQL gövde sözdizimini SQL Server seçiliyken yapıştırmak gibi. Sorgunun kendisi yine simge simge doğrulanır, yani sade girintiye düşmek doğruluktan ödün vermek değildir.

Ne kadar büyük dosya işleyebilirim?

Sınır 4 MB. Denetim hızlıdır, 279 KB ve dört bin ifadelik bir dosya yaklaşık seksen milisaniyede taranıyor. Sınırı aşan girdide araç işlemeyi reddeder ve size söyler.