SQL Formatlayıcı
Bir SQL sorgusu yapıştırın, her cümleciğin (SELECT, FROM, WHERE, JOIN, GROUP BY…) kendi girintili satırında olacak şekilde yeniden biçimlendirilsin.
1.135 görüntülenme
Nasıl Çalışır
Tek satıra yazılmış uzun bir SQL sorgusunda yapıyı takip etmek zordur — WHERE cümleciği nerede bitiyor, GROUP BY nerede başlıyor, hangi JOIN hangi tabloya ait? Bu araç ham SQL'i alır ve her ana cümlecik sınırında ayrı satırlara böler: SELECT, FROM, WHERE, tüm JOIN ailesi (INNER JOIN, LEFT JOIN, RIGHT JOIN…), GROUP BY, ORDER BY, HAVING ve UNION. AND/OR ile zincirlenen koşullar ve ON sonrası birleştirme koşulları, ait oldukları cümleciğin bir seviye altında girintilenir; anahtar kelimeler isteğe bağlı olarak büyük harfe çevrilir. select id,name from users where active=1 and role='admin' order by name gibi bir sorgu, SELECT, FROM, WHERE ve ORDER BY'ın her biri kendi satırında başladığı ve AND koşulunun WHERE'in altında girintilendiği bir bloğa dönüşür — aynı bilgi, yalnızca bir kod incelemesinde elle yazılacağı gibi düzenlenmiş olur.
Bu, tam olarak elle yapılması en zor olduğu yerde işe yarar: birkaç tablonun birleştirildiği sorgular, bir WHERE cümleciğinin içine gömülü bir alt sorgu veya çok dallı bir CASE ifadesi. Tutarlı girintileme, eksik bir birleştirme koşulunu veya yanlış yerleştirilmiş bir parantezi karakter karakter okumak yerine tek bakışta fark etmeyi sağlar.
Bilinmesi Gerekenler
Bu bir formatlayıcıdır, doğrulayıcı değildir — yalnızca tanıdığı belirli bir anahtar kelime kümesinin etrafındaki boşluk ve satır sonlarını yeniden düzenler; sorguyu hiçbir zaman bir söz dizimi ağacına ayrıştırmaz ve bir veritabanına karşı hiç çalıştırmaz. Gerçekten lehçe-farkındalıklı bir doğrulayıcı, her SQL varyantı için tam bir ayrıştırıcı gerektirirdi, çünkü MySQL, PostgreSQL, SQL Server ve SQLite; tanımlayıcı tırnaklama, tarih fonksiyonları, hatta hangi ifadelerin geçerli olduğu gibi ayrıntılarda birbirinden ayrılır — bunların herhangi birini doğruluyormuş gibi yapan sığ bir tarayıcı-içi kontrol yalnızca yanlış bir güven verirdi. Biçimlendirilmiş çıktı tuhaf görünüyorsa bu genellikle girdide zaten bir yazım hatası veya dengesiz bir parantez olduğu anlamına gelir; araç bunu işaretlemek yerine etrafında biçimlendirme yapar.
Yalnızca metin düzeni üzerinde çalıştığı için üretim sorgularında çalıştırmak güvenlidir: tanımlayıcılar, dizgi değerleri, sayısal değerler ve operatörler asla yeniden yazılmaz, eklenmez veya kaldırılmaz — yalnızca boşluk ve isteğe bağlı anahtar kelime büyüklüğü değişir. Hiçbir şey hiçbir yere gönderilmez veya çalıştırılmaz; sorgu tarayıcıdan hiç çıkmaz.
Pratik öneri: biçimlendirilmiş sorguyu sürüm kontrolüne (git) eklemeden önce bir kez daha okuyun — düzen netleştiği için, aksi hâlde tek satırda gizli kalan mantık hataları (yanlış tabloya JOIN, unutulmuş bir WHERE koşulu) bu aşamada çok daha kolay fark edilir.
Sıkça Sorulan Sorular
SQL'imin doğru olup olmadığını söylüyor mu?
Hayır — bilerek. Gerçek SQL doğrulaması hangi veritabanını hedeflediğinize bağlıdır (MySQL, PostgreSQL, SQL Server'ın hepsinin farklı söz dizimi tuhaflıkları vardır) ve hafif bir tarayıcı aracı bunu dürüstçe yapamaz. Bu araç yalnızca düzeni yeniden biçimlendirir, sorgunuzun geçerli veya geçersiz olduğunu asla iddia etmez.
Sorgumu bozar mı?
Hayır — yalnızca satır sonu ve girinti ekler, isteğe bağlı olarak anahtar kelimeleri büyük harfe çevirir. SQL metninin kendisi (tanımlayıcılar, değerler, operatörler) asla değiştirilmez.
Bunu herhangi bir SQL lehçesinde (MySQL, PostgreSQL, SQL Server) kullanabilir miyim?
Evet, düzen seviyesinde — bu formatlayıcının tanıdığı cümlecik anahtar kelimeleri (SELECT, FROM, WHERE, JOIN, GROUP BY vb.) neredeyse her SQL lehçesinde ortaktır. Yapmayacağı şey lehçeye özgü sözdizimini, fonksiyonları veya tırnaklama kurallarını doğrulamaktır; bunlar motorlar arasında yeterince farklıdır, doğruluğu yalnızca sorguyu gerçek veritabanına karşı çalıştırmak doğrulayabilir.
Alt sorgular veya CTE'ler (WITH ifadeleri) ile ne olur?
İç içe SELECT ifadeleri ve WITH (ortak tablo ifadesi) blokları, aynı cümlecik bölme kurallarıyla özyinelemeli olarak biçimlendirilir; böylece iç sorgu, dış sorgunun içinde kendi girintili yapısını alır — biçimlendirmenin en çok işe yaradığı yer tam olarak burasıdır, çünkü derinlemesine iç içe geçmiş sorgular tek satır olarak okunması en zor olanlardır.
Biçimlendirme sorgumun davranışını değiştirir mi?
Hayır. Yalnızca boşluk, satır sonu ve isteğe bağlı anahtar kelime büyüklüğüne dokunulur. Her tanımlayıcı, değer, karşılaştırma ve operatör yazıldığı gibi kalır; bu yüzden biçimlendirilmiş sorgu, orijinaliyle işlevsel olarak aynıdır — hangi sürüm çalıştırılırsa çalıştırılsın aynı sonuç kümesini üretir.
Benzer Araçlar
Sorun Bildir
SQL Formatlayıcı
Yorumlar
Henüz yorum yok — ilk yorumu siz yazın!