tigtools

SQL Biçimlendirici

Bir sorgu yapıştırın, veritabanınızın lehçesini seçin ve temiz, tutarlı girintilere sahip SQL elde edin. Hiçbir şey sunucuya gönderilmez.

Tarayıcınızda çalışır Kayıt gerekmez

Girinti

Nasıl kullanılır?

  1. Bir veya daha fazla SQL ifadesi yapıştırın ya da “Örnek dene” düğmesine basın.
  2. Anahtar kelimelerin, tırnak kullanımının ve işleçlerin doğru tanınması için veritabanınızın lehçesini seçin.
  3. Anahtar kelimelerin harf biçimini ve girintiyi ayarlayın. Siz yazarken biçimlendirilmiş sorgu sağda görünür.
  4. Tek satırlık bir sürüm için Minify'a basın; ardından sonucu kopyalayın veya .sql dosyası olarak indirin.

Nasıl çalışır?

Biçimlendirme, açık kaynaklı sql-formatter kitaplığını kullanır. Sorguyu, seçtiğiniz lehçenin kurallarına göre belirteçlere ayırır; her ana bölümü (SELECT, FROM, JOIN, WHERE, GROUP BY, ORDER BY…) ayrı bir satıra taşır, sütun listelerini ve koşulları girintiler ve anahtar kelimelerde seçtiğiniz büyük/küçük harf kullanımını uygular. Boşlukları ve isterseniz anahtar kelimelerin harf biçimini değiştirir; tanımlayıcılar, dize sabitleri ve yorumlar korunur. Doğru lehçeyi seçmek önemlidir: Örneğin MySQL’de adları ters tırnaklar, SQL Server’da köşeli parantezler çevreler; PostgreSQL’de ise $$ bir işlev gövdesini başlatır.

Biçimlendirici bir düzenleme aracıdır, veritabanı değildir. Tabloların veya sütunların var olup olmadığını denetlemez ve dil bilgisinin tamamını doğrulamaz; bu nedenle bazı geçersiz SQL ifadelerini sorunsuz biçimlendirebilir. Girdiyi anlayamadığında (örneğin kapanmamış bir parantez varsa) işlemi durdurduğu satır ve sütunu bildirir.

Minify farklı çalışır: Tüm belirteçleri korur, yalnızca ardışık boşlukları tek bir boşluğa indirger ve yorumları kaldırır. Davranışı değiştirebildikleri için iyileştirici ipuçları (/*+ INDEX(t) */ gibi) ve MySQL /*! … */ yorumları korunur. Dizeler, tırnak içine alınmış tanımlayıcılar ve dolar işaretleriyle çevrelenmiş gövdeler olduğu gibi kopyalanır. Bir tırnak veya yorum hiç kapatılmamışsa Minify tahminde bulunmak yerine hata verir.

Örnekler

Günlükteki bir sorguyu inceleme

Yavaş sorgu günlüğünde tek satırda, 400 karakterlik bir ifade var. MySQL lehçesi ve büyük harfli anahtar kelimeler seçildiğinde sorgu, her JOIN ve WHERE koşulunun ayrı satırda yer aldığı okunaklı bir bloğa dönüşür; böylece eksik dizini fark etmek kolaylaşır.

Kod incelemesinde tutarlı biçim

Ekip, farkların yalnızca gerçek değişiklikleri göstermesi için her geçiş dosyasını PostgreSQL lehçesi, küçük harfli anahtar kelimeler ve 4 boşluklu girintiyle biçimlendirip sürüm denetimine ekler.

SQL'i koda ekleme

Minify, yorum içeren ve birden çok satıra yayılmış bir rapor sorgusunu SELECT id, name FROM users WHERE active = 1 ORDER BY name gibi tek satıra indirger; böylece sorguyu bir betikteki dizeye yapıştırmaya hazır hâle getirir.

Sık sorulan sorular

Hangi veritabanları destekleniyor?

Standard SQL, MySQL, MariaDB, PostgreSQL, SQLite, SQL Server (T-SQL), Oracle PL/SQL, BigQuery, Snowflake, Redshift, Spark SQL, Hive, Trino/Presto, DuckDB, IBM Db2, SingleStoreDB, TiDB ve Couchbase N1QL.

Biçimlendirme sorgumun yaptığı işi değiştirir mi?

Değişmemesi gerekir: Yalnızca boşluklar ve seçtiyseniz anahtar kelimelerin harf biçimi değişir. SQL'de anahtar kelimelerin büyük ya da küçük harfle yazılması fark etmez. Yine de özellikle alışılmadık lehçe özellikleri kullanıyorsanız, oluşturulan çıktıyı üretim verilerinde çalıştırmadan önce inceleyin.

Neden “biçimlendirilemedi” hatası aldım?

Belirteç ayrıştırıcısı yerleştiremediği bir ifadeyle karşılaşmıştır. Bunun nedeni genellikle kapanmamış bir parantez veya tırnak ya da başka bir lehçeye ait söz dizimidir. Mesajdaki satır ve sütunu kontrol edin ve seçilen lehçenin veritabanınızla eşleştiğinden emin olun.

SQL'imi doğruluyor mu?

Hayır. Araç bir veritabanına bağlı değildir ve şemanızı bilmez. Bir sorgu biçimlendirilse bile çalıştırıldığında hata verebilir.

Gizlilik

SQL'iniz JavaScript kullanılarak tarayıcınızda biçimlendirilir. Yüklenmez, saklanmaz veya analiz verilerine eklenmez; araç hiçbir zaman veritabanına bağlanmaz.