SQL Biçimlendirme Aracı

0 karakter

GeekFormat SQL biçimlendirme aracı, düzensiz SQL sorgularını hızlıca güzelleştirir ve düzenler. MySQL, PostgreSQL, SQLite, SQL Server, Oracle gibi 20 veritabanı lehçesini destekler, özelleştirilebilir biçimlendirme seçenekleri: anahtar kelime büyük/küçük harf stili, girinti stili, operatör satır kesme konumu, ifade genişliği ve tek tıklamayla 4 hazır stil sunar. SQL sıkıştırma ve sözdizimi doğrulama işlevleri içerir, dosya yükleme/indirme, URL üzerinden paylaşım, klavye kısayolları destekler, CodeMirror 6 editörü tabanlı sözdizimi vurgulama ve özelleştirilebilir panel düzeni sunar. Girdiden sonra gerçek zamanlı otomatik biçimlendirme, tamamen tarayıcıda yerel işleme, SQL ifadeleri sunucuya gönderilmez.

İlgili Öneriler

SQL biçimlendirme hakkında

SQL biçimlendirme (SQL Formatting / SQL Beautification), otomatikleştirilmiş araçlar aracılığıyla SQL ifadelerindeki boşlukları (satır sonları, girintiler, boşluklar) ve anahtar kelime büyük/küçük harfini ayarlayarak tutarlı, iyi okunabilir bir düzen yapısına getirmeyi ifade eder. Bildirim temelli bir sorgu dili olarak, karmaşık bir sorgu genellikle birden fazla tablonun JOIN'i, iç içe geçmiş alt sorgular, birden fazla WHERE koşulu, GROUP BY gruplama, HAVING filtreleme, ORDER BY sıralama gibi birden fazla tümceyi içerir, biçimlendirme olmadan tüm içerik tek satırda sıkışır veya girintiler düzensiz olur, bu da okunabilirliği ve bakım verimliliğini ciddi şekilde etkiler. Biçimlendirilmiş SQL, uygun satır sonları ve girintiler aracılığıyla her tümceyi ayrı bir satıra yerleştirir, iç içe geçme hiyerarşisi girintilerle ifade edilir, okuyucunun sorgu yapısını hızlıca anlamasını sağlar.

SQL biçimlendirme neden önemlidir? Ekip işbirliği ortamlarında, farklı geliştiricilerin farklı kod stili tercihleri vardır — bazıları anahtar kelimeleri büyük harf sever, bazıları küçük harf; bazıları 2 boşluk girinti kullanır, bazıları 4 boşluk veya Tab; bazıları AND'i satır başına yerleştirir, bazıları satır sonuna. Bu stil farklılıkları kendi başlarına SQL'in çalışmasını etkilemez, ancak kod incelemesi (Code Review) sırasında birçok anlamsız diff üretir, inceleyicinin hangilerinin gerçek mantıksal değişiklikler olduğunu, hangilerinin yalnızca biçimlendirme ayarlamaları olduğunu ayırt etmesi gerekir. Birleşik SQL biçimlendirme kuralları ve otomatik biçimlendirme araçları, stil tartışmalarını ortadan kaldırarak ekibin iş mantığının kendisine odaklanmasını sağlayabilir.

Temel SQL biçimlendirme kuralları genellikle şu yönleri içerir: birincisi, anahtar kelime büyük/küçük harfi — SELECT, FROM, WHERE, JOIN, ON, GROUP BY, ORDER BY, HAVING, LIMIT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP gibi SQL ayrılmış kelimeleri, tanımlayıcılardan ayırt etmek için genellikle büyük harfle yazılır (veya ekip kurallarına göre tek tip küçük harfle); ikincisi, tümce satır kesme — her ana tümce (SELECT/FROM/WHERE/GROUP BY/ORDER BY vb.) ayrı bir satırda; üçüncüsü, sütun adı hizalama — SELECT listesindeki birden fazla sütun adı her biri bir satırda olur ve dikey olarak hizalanır; dördüncüsü, girinti seviyeleri — alt sorgular, JOIN koşulları, iç içe geçmiş CASE ifadeleri vb. ek girintilerle hiyerarşiyi yansıtır; beşincisi, operatör konumu — AND/OR gibi mantıksal operatörler tek tip olarak satır başına veya satır sonuna yerleştirilir.

Farklı veritabanı lehçelerinin SQL biçimlendirmesinin kendine has özellikleri vardır. MySQL, tanımlayıcıları alıntılamak için ters tırnak (`) kullanır, PostgreSQL çift tırnak (") kullanır, SQL Server köşeli parantez ([]) kullanır; MySQL sayfalama için LIMIT kullanır, PostgreSQL LIMIT/OFFSET destekler, SQL Server TOP veya OFFSET/FETCH kullanır, Oracle ROWNUM kullanır; PostgreSQL :: tür dönüşüm operatörüne sahiptir, MySQL ters tırnak kaçışına sahiptir, SQL Server köşeli parantez tanımlayıcılara sahiptir. Bu lehçe farklılıkları, biçimlendiricinin belirli veritabanlarına özgü sözdizimi öğelerini tanıyabilmesini gerektirir, aksi takdirde özel sözdizimini yanlışlıkla hata olarak kabul edebilir veya anahtar kelimeleri yanlış bölebilir. Bu araç sql-formatter kütüphanesi temel alınarak uygulanmıştır ve 20 ana SQL lehçesi için özelleştirilmiş sözdizimi desteği sağlar.

SQL sıkıştırma (SQL Minification), biçimlendirmenin ters işlemidir ve bazı senaryolarda çok kullanışlıdır. Uygulama günlüklerine yazdırılan SQL, ORM çerçeveleri (Hibernate, MyBatis, Django ORM, SQLAlchemy gibi) tarafından üretilen SQL, veritabanı performans izleme araçları tarafından yakalanan SQL genellikle satır sonları olmadan sıkıştırılmış tek satırlık biçimdedir, bu da sorun giderme için çok elverişsizdir — okumak için önce biçimlendirmeniz gerekir. Tersine, SQL'i kod dizelerine gömmeniz (Java/Python/JavaScript'de dize birleştirme gibi), yapılandırma dosyalarına kaydetmeniz, URL parametreleriyle iletmeniz veya çok satırlı metin desteklemeyen sohbet araçlarında paylaşmanız gerektiğinde, tek satıra sıkıştırmak satır sonları ve girintilerin neden olduğu biçimlendirme sorunlarını önleyebilir.

Uygun biçimlendirme stilini seçmek, ekip kurallarını ve kullanım senaryolarını dikkate almayı gerektirir. Büyük harf anahtar kelime stili geleneksel SQL geleneğidir, matbaa döneminde büyük harf anahtar kelimeler elle veya daktiloyla yazılan SQL'in daha okunabilir olmasını sağlayabilirdi, bugün hala birçok ekip ve kuruluş tarafından kullanılmaktadır. Küçük harf anahtar kelime stili GitHub gibi modern kod platformlarında giderek daha popüler hale geliyor, çünkü küçük harfler görsel olarak daha yumuşaktır ve modern editörlerin sözdizimi vurgulamasıyla artık anahtar kelimeleri büyük/küçük harfe göre ayırt etmeye gerek kalmaz. 2 boşluk girinti frontend geliştiricileri arasında daha yaygındır, 4 boşluk girinti Java/C# backend geliştiricileri arasında daha yaygındır. Girinti olarak Tab kullanmak, farklı geliştiricilerin editörde görüntüleme genişliğini ayarlamasına olanak tanır. AND/OR mantıksal operatörlerini satır başına yerleştirmek, uzun koşul listelerini okurken her koşulu taramayı kolaylaştırır; satır sonuna yerleştirmek ise İngilizce okuma alışkanlıklarına daha uygundur.

SQL biçimlendirme araçlarının uygulama prensibi esas olarak sözcük analizi (Tokenization) ve sözdizimi analizine dayanır. sql-formatter gibi kütüphaneler önce SQL dizesini bir dizi sözcüğe (anahtar kelimeler, tanımlayıcılar, değişmez değerler, operatörler, noktalama işaretleri, yorumlar vb.) ayırır, ardından bu sözcükleri sözdizimi kurallarına göre yeniden düzenler (farklı lehçelerin farklı kural kümeleri vardır), uygun konumlara satır sonları ve girintiler ekler. Prettier gibi evrensel kod biçimlendiricilerinin aksine, SQL biçimlendiricileri SQL'in özgün sözdizim yapısını (JOIN...ON koşulları, CASE WHEN...END ifadeleri, alt sorgu parantez iç içe geçmesi gibi) anlamalıdır, böylece doğru girintiler ekleyebilir, yalnızca küme parantezlerine veya parantez eşleşmesine güvenmez.

SQL biçimlendirme araçlarını kullanırken şu noktalara dikkat etmek gerekir: birincisi, biçimlendirme SQL'in anlamsal doğruluğunu doğrulamaz — sözdizimsel olarak doğru ancak mantıksal olarak hatalı SQL (yanlış yazılmış JOIN koşulu, atlanmış WHERE koşulu gibi) biçimlendirmeden sonra da hatalı kalır, biçimlendirme yalnızca düzeni iyileştirir, mantığı düzeltmez; ikincisi, nadir sınır durumlarda biçimlendirme aracı, boşluklara duyarlı senaryolarda (dize sabitlerindeki boşluklar, belirli yorum konumları gibi) orijinal SQL'den farklı sonuçlar üretebilir, biçimlendirmeden sonra basit bir doğrulama yapmanız önerilir; üçüncüsü, dinamik parametreli SQL'ler özellikle olmak üzere, biçimlendirme aracı tarafından üretilen SQL'i test etmeden doğrudan üretim ortamında çalıştırmayın; dördüncüsü, hassas veriler (şifreler, anahtarlar, PII) içeren SQL için veri sızıntısı riskini önlemek amacıyla çevrimiçi araçlar yerine yerel biçimlendirme araçlarını (bu araç gibi) kullanın.

Kullanım senaryoları

  • Eski projeleri devralırken biçimlendirilmemiş büyük saklı yordam SQL bloklarını ve karmaşık çok tablolu JOIN sorgularını düzenleyerek iş mantığını hızlıca anlama
  • Ekip kod incelemesinden önce SQL stilini birleştirme, kişisel biçimlendirme tercihlerinden kaynaklanan diff parazitini ortadan kaldırma, mantıksal incelemeye odaklanma
  • Günlüklerden veya konsoldan kopyalanan sıkıştırılmış tek satırlık SQL'i, okumayı ve sorun gidermeyi kolaylaştırmak için biçimlendirme
  • Teknik belgeler ve blog yazıları yazarken, biçimlendirilmiş SQL örneklerini belgeye gömerek profesyonelliği ve okunabilirliği artırma
  • Veritabanı istemcilerinden dışa aktarılan SQL düzensiz biçimlendirildiğinde, kodu göndermeden önce ekibin birleşik stiline göre yeniden biçimlendirme
  • Teknik görüşmelere veya sunumlara hazırlanırken, gösterim SQL ifadelerini slaytlarda ve beyaz tahta açıklamalarında kullanmak üzere biçimlendirme
  • SQL hatalarını giderirken, düzensiz iç içe geçmiş alt sorguları biçimlendirerek eşleşmeyen parantezler, eksik anahtar kelimeler gibi yapısal sorunları bulma
  • ORM çerçeveleri tarafından üretilen SQL günlükleri genellikle satır sonları olmadan sıkıştırılmış biçimdedir, gerçek yürütülen sorguyu analiz etmeyi kolaylaştırmak için biçimlendirme
  • Veri geçişi betikleri yazarken, bakım kolaylığını artırmak için tablo oluşturma ve INSERT ifadelerini biçimlendirme
  • SQL sürümleri arasındaki farkları karşılaştırmadan önce biçimlendirmeyi birleştirerek, salt biçimsel farkların kod incelemesini engellemesini önleme
  • SQL öğrenirken, açık girintiler ve satır kesmeleri aracılığıyla JOIN, alt sorgular ve GROUP BY hiyerarşisini anlamak için örnek sorguları biçimlendirme
  • SQL parçacıklarını iş arkadaşlarıyla paylaşırken, önce biçimlendirip ardından URL bağlantısıyla paylaşma, alıcı açtığında aynı biçimlendirilmiş sonucu görür

Nasıl Kullanılır

  1. Biçimlendiricinin sözdizimini doğru tanımasını sağlamak için veritabanı lehçesini seçin (varsayılan MySQL, 20 SQL lehçesini destekler)
  2. Biçimlendirilecek SQL ifadelerini sol düzenleme alanına yapıştırın, veya .sql/.txt dosyalarını içe aktarmak için yükle düğmesine tıklayın, ayrıca örnekler menüsünden örnek SQL yükleyebilirsiniz
  3. Biçimlendir düğmesine tıklayın (Shift+Cmd/Ctrl+F) veya otomatik biçimlendirmeyi bekleyin (girdiden 800 ms sonra otomatik olarak çalışır), biçimlendirilmiş sonuç sağda anında görüntülenir
  4. Biçimlendirmeyi özelleştirmek istiyorsanız, ayarlar düğmesine tıklayarak yapılandırma panelini açın, anahtar kelime büyük/küçük harf, girintiler, satır kesmeleri gibi seçenekleri ayarlayın veya hazır bir stil seçin; tek satırlık sıkıştırma gerekiyorsa sıkıştır düğmesine tıklayın
  5. Sonucu kopyalamak için kopyala düğmesine tıklayın, veya .sql dosyası olarak kaydetmek için indir düğmesine tıklayın, ayrıca SQL içeriğini içeren bir URL bağlantısı oluşturmak için paylaş düğmesine tıklayabilirsiniz

Özellikler

  • 20 veritabanı lehçesi uyumu: Standart SQL, MySQL, MariaDB, TiDB, PostgreSQL, SQLite, BigQuery, Snowflake, Redshift, DB2, PL/SQL(Oracle), T-SQL(SQL Server), Spark SQL, Hive, Trino, ClickHouse, DuckDB dahil 20 SQL lehçesinin sözdizimi tanıma ve biçimlendirmeyi destekler.
  • Anahtar kelime büyük/küçük harf kontrolü: SELECT/FROM/WHERE/JOIN gibi anahtar kelimeler için üç mod destekler: büyük harf (UPPER), küçük harf (lower) veya orijinali koru (preserve), veri türleri ve fonksiyon adları için ayrı yapılandırma mevcuttur
  • Tanımlayıcı büyük/küçük harf kontrolü: Tablo adı, sütun adı, takma ad gibi tanımlayıcılar büyük harf, küçük harf veya orijinali korumayı destekler, farklı ekip kodlama standartlarına uyum sağlar
  • Seçilebilir girinti stili: Standart girinti, sol tablo hizalama (tabularLeft) ve sağ tablo hizalama (tabularRight) olmak üzere üç girinti stilini destekler, farklı okuma tercihlerini karşılar
  • Esnek girinti yapılandırması: Girinti genişliği 2 boşluk, 4 boşluk veya Tab karakteri olabilir; sorgular arası boş satır sayısı 0/1/2 satır olarak ayarlanabilir
  • Mantıksal operatör satır kesme: AND/OR gibi mantıksal operatörlerin operatörden önce (before) mı yoksa sonra (after) mı satır kesileceğini yapılandırır, ekip kod stiline uyar
  • İfade genişliği kontrolü: İfadelerin satır kesme için karakter eşiği yapılandırılabilir (20-200 karakter), genişliği aştığında otomatik olarak satır keser, tek satır uzunluğunu kontrol eder
  • Yoğun operatör modu: Etkinleştirildiğinde operatörlerin etrafında fazladan boşluk bırakmaz, daha sıkı bir biçimlendirme sonucu üretir, gömülü SQL senaryoları için uygundur
  • Noktalı virgülden önce satır kesme: İsteğe bağlı olarak ifadeyi sonlandıran noktalı virgülden önce satır keser, noktalı virgülü ayrı bir satıra yerleştirerek ifade sınırlarını hızlıca bulmayı sağlar
  • 4 hazır stil: Varsayılan (anahtar kelimeler UPPER + 2 boşluk girinti), küçük harf (tüm anahtar kelimeler küçük harf), kompakt (tablo hizalama + yoğun operatörler) ve gevşek (4 boşluk girinti + çift boş satır) arasında tek tıklamayla geçiş yapın, her öğeyi ayrı ayrı ayarlamanıza gerek kalmaz
  • SQL sıkıştırma işlevi: SQL'i tek tıklamayla tek satıra sıkıştırır, yorumları, gereksiz boşlukları ve satır sonlarını otomatik olarak kaldırır, günlük çıktısı, kod birleştirme ve belgelere gömme senaryoları için uygundur
  • Sözdizimi doğrulama işlevi: Temel SQL sözdizimi doğrulaması, biçimlendirme başarısız olduğunda hata mesajları göstererek sözdizimi sorunlarını bulmanıza yardımcı olur
  • Yerleşik örnek SQL sorguları: Temel sorgu, karmaşık tablo birleştirme sorgusu, birden fazla ifadenin toplu işlenmesi ve CREATE TABLE tablo oluşturma ifadesi olmak üzere dört grup örnek SQL sorgusu sunar, biçimlendirme etkisini hızlıca test edebilirsiniz
  • Dosya yükleme/indirme: .sql/.txt dosyalarını yükleyerek doğrudan SQL'i içe aktarmayı destekler, biçimlendirmeden sonra kaydetmek için .sql dosyası olarak indirebilirsiniz
  • URL üzerinden paylaşım: SQL'i URL karmasına kodlamak için LZ-String sıkıştırma kullanır, biçimlendirme yapılandırmasını ve SQL içeriğini paylaşmak için bağlantıyı kopyalayın
  • Gerçek zamanlı otomatik biçimlendirme: SQL girdikten sonra 800 ms gecikmeyle otomatik olarak biçimlendirir, değiştirirken efekti anında görün, birden fazla kez düğmeye tıklamanıza gerek kalmaz
  • Klavye kısayolları: Shift+Cmd/Ctrl+F biçimlendir, Shift+Cmd/Ctrl+C sıkıştır, Shift+Cmd/Ctrl+V doğrula, Shift+Cmd/Ctrl+O yükle, Shift+Cmd/Ctrl+D indir, Shift+Cmd/Ctrl+K temizle
  • CodeMirror editörü: CodeMirror 6 tabanlı SQL sözdizimi vurgulamalı editör, sol/sağ panel genişliğini sürükleyerek ayarlamayı, yazı tipi boyutunu özelleştirmeyi ve geçmiş panelini destekler
  • Tek tıklamayla sonuç kopyalama: Biçimlendirilmiş veya sıkıştırılmış SQL'i tek tıklamayla panoya kopyalayın, doğrudan veritabanı istemcilerine veya koda yapıştırın
  • Tamamen tarayıcıda yerel işleme: Tüm SQL biçimlendirme tarayıcıda JavaScript ile çalışır, sql-formatter kütüphanesine dayanır, SQL ifadeleri hiçbir sunucuya gönderilmez, veri güvenliği garanti edilir

Sık Sorulan Sorular

SQL biçimlendirme sorgu mantığını değiştirir mi? Biçimlendirilmiş SQL doğrudan çalıştırılabilir mi?

Sorgu mantığını değiştirmez. SQL biçimlendirme yalnızca SQL'deki boşlukları (satır sonları, girintiler, boşluklar) ve anahtar kelime büyük/küçük harfini ayarlar, SQL'deki tanımlayıcıları, değerleri, operatörleri, fonksiyon çağrılarını ve sorgu yapısını değiştirmez. Biçimlendirilmiş SQL anlamsal olarak orijinal SQL ile tamamen eşdeğerdir, doğrudan MySQL Workbench, pgAdmin, DBeaver, Navicat gibi veritabanı istemcilerine kopyalanarak çalıştırılabilir. Ancak üretim ortamında çalıştırmadan önce test ortamında doğrulamanız önerilir.

Hangi veritabanı lehçeleri destekleniyor? Farklı veritabanları arasında SQL sözdizimi farklılıkları varsa ne yapmalı?

20 SQL lehçesini destekler: Standart SQL, MySQL, MariaDB, TiDB, PostgreSQL, SQLite, BigQuery, Snowflake, Redshift, DB2, DB2i, PL/SQL(Oracle), T-SQL(SQL Server), Spark SQL, Hive, Trino, ClickHouse, SingleStoreDB, DuckDB, N1QL(Couchbase). Farklı veritabanları arasında sayfalama sözdizimi (LIMIT vs LIMIT/OFFSET vs TOP vs ROWNUM), dize birleştirme, tarih fonksiyonları, tanımlayıcı alıntılama (ters tırnak vs çift tırnak vs köşeli parantez) vb. konularda farklılıklar vardır. Doğru lehçeyi seçmek, biçimlendiricinin anahtar kelimeleri ve fonksiyon adlarını doğru tanımasını sağlar, lehçeye özgü fonksiyonların yanlış biçimlendirilmesini önler.

SQL sıkıştırma nedir? Sıkıştırma ile biçimlendirme arasındaki fark nedir?

SQL sıkıştırma (Minify), biçimlendirmenin ters işlemidir: tüm yorumları (çok satırlı /* */ ve tek satırlı -- yorumları dahil) kaldırır, ardışık boşlukları tek bir boşluğa birleştirir, parantezlerin/virgüllerin/noktalı virgüllerin/operatörlerin etrafındaki gereksiz boşlukları kaldırır ve sıkı bir tek satırlık SQL üretir. Sıkıştırma şu senaryolar için uygundur: SQL'i kod dizelerine gömme, günlük dosyalarına kaydetme, URL parametreleriyle iletme, satır sonu parazitini önlemek için sohbet pencerelerinde paylaşma. Biçimlendirme ise okunabilirliği artırmak için uygun satır sonları ve girintiler ekler.

Otomatik biçimlendirme ne zaman çalışır? Kapatılabilir mi?

Sol düzenleme alanına SQL girdiğinizde veya değiştirdiğinizde, biçimlendirme 800 ms gecikme süresiyle otomatik olarak çalışır (önceki biçimlendirmede sözdizimi hatası olmaması koşuluyla). Bu, yazmayı bıraktıktan sonra biçimlendirilmiş efekti anında görmek içindir. Manuel kontrolü tercih ederseniz, araç çubuğundaki biçimlendir düğmesine tıklamanız yeterlidir, otomatik çalışmayı beklemenize gerek yoktur. Şu anda otomatik biçimlendirmeyi kapatmak için ayrı bir anahtar yoktur, ancak giriş içeriği değiştirilmediği sürece tekrar tekrar çalışmaz.

Biçimlendirme başarısız olursa ve sözdizimi hatası verirse ne yapmalı?

Biçimlendirici, ayrıştıramadığı SQL sözdizimiyle karşılaştığında hata verir, yaygın nedenler şunlardır: 1) Eşleşmeyen parantezler — sol ve sağ parantez sayısının eşleşip eşleşmediğini kontrol edin; 2) Kapanmamış dize — tek/çift tırnakların eşli olup olmadığını kontrol edin; 3) Anahtar kelime yazım hatası — SELCT, WHRER gibi yazım hataları; 4) Yanlış veritabanı lehçesi seçimi — örneğin PostgreSQL'in :: tür dönüşümü sözdizimini kullanıyorsunuz ancak MySQL lehçesi seçili; 5) Eksik SQL parçası — örneğin SELECT FROM olmadan yalnızca WHERE koşulu. Hata mesajı, ayrıştırıcının bildirdiği konumu ve sorunun nedenini gösterir, buna göre sorunu bulabilirsiniz. Ayrıca önce doğrula düğmesine (Shift+Cmd/Ctrl+V) tıklayarak sözdizimini kontrol edebilirsiniz.

Anahtar kelimeler büyük harf, küçük harf veya orijinali koru olmak üzere üç mod arasında nasıl seçim yapılır?

Büyük harf (UPPER) anahtar kelimeler en geleneksel ve yaygın SQL kodlama stilidir, SELECT/FROM/WHERE/JOIN gibi anahtar kelimeleri büyük harfle yazmak görsel olarak tablo/sütun adlarından ayırır, büyük miktarda kod içinde SQL yapısını hızlıca bulmanızı sağlar. Küçük harf anahtar kelimeler modern IDE ortamları için daha uygundur (modern editörler sözdizimi vurgulamasına sahiptir, artık büyük/küçük harf ayrımına güvenmez), görsel olarak daha tutarlıdır. Orijinali koru (preserve) yazdığınız büyük/küçük harfi değiştirmez, mevcut kod üzerinde minimum biçimlendirme değişikliği yapmak için uygundur. Anahtar kelimeler, tanımlayıcılar (tablo ve sütun adları), veri türleri (VARCHAR/INT/BIGINT) ve fonksiyon adları (COUNT/SUM/COALESCE) için büyük/küçük harf stratejileri bağımsız olarak ayarlanabilir.

Tablo hizalama modu ile standart girintiler arasındaki fark nedir?

Standart girintiler (standard) geleneksel hiyerarşik girinti yöntemini kullanır, her tümce sabit sayıda boşlukla girintilenir. Sol/sağ tablo hizalama modları, SELECT listesindeki sütun adlarını, WHERE koşullarındaki ifadeleri vb. sütunlara göre hizalar, tablo benzeri bir görsel efekt oluşturur. Örneğin, SELECT'ten sonraki birden fazla sütun adı dikey olarak hizalanır, AS takma adları da aynı sütun konumunda hizalanır. Bu mod geniş ekran monitörlerde çok sütunlu sorguları okurken çok sezgiseldir, ancak dar ekranlarda satırların çok uzun olmasına neden olabilir.

Ekibin birleşik SQL stili ile kişisel tercihler arasında hızlıca nasıl geçiş yapılır?

Ayarlar panelindeki hazır düğmeleri kullanın: varsayılan (anahtar kelimeler UPPER + 2 boşluk standart girinti), küçük harf (tüm anahtar kelimeler küçük harf), kompakt (tabularLeft hizalama + yoğun operatörler), gevşek (4 boşluk girinti + sorgular arası çift boş satır). Ekibinizin belirli kuralları varsa, seçenekleri manuel olarak ayarlayın ve biçimlendirin. Şu anda özel hazır ayarları kaydetme desteği yoktur, ancak yapılandırma seçeneklerinin sayısı sınırlıdır, hızlıca ayarlamak da kolaydır.

Biçimlendirilmiş SQL yorumları kaybeder mi?

Biçimlendirme işlemi (Format) yorumları korur, tek satırlık -- yorumları ve çok satırlı /* */ yorumları orijinal konumlarının yakınında korunur (belirli konum sql-formatter kütüphanesinin yorum işleme mantığına bağlıdır). Ancak sıkıştırma işlemi (Compress), en sıkı tek satırlık SQL'i üretmek için tüm yorumları kaldırır, sıkıştırmadan önce yorumları korumak istiyorsanız önce biçimlendirilmiş sonucu kopyalayın.

Hangi klavye kısayolları destekleniyor? Mac ile Windows/Linux arasındaki fark nedir?

Aşağıdaki klavye kısayollarını destekler (Mac Cmd tuşunu kullanır, Windows/Linux Ctrl tuşunu kullanır, her ikisi de aynı anda Shift tuşunu basılı tutmayı gerektirir): Shift+Cmd/Ctrl+F biçimlendir; Shift+Cmd/Ctrl+C sıkıştır; Shift+Cmd/Ctrl+V sözdizimi doğrulama; Shift+Cmd/Ctrl+O dosya yükle; Shift+Cmd/Ctrl+D dosya indir; Shift+Cmd/Ctrl+K içeriği temizle. Kısayol listesini istediğiniz zaman görüntülemek için araç çubuğundaki soru işareti simgesine tıklayın.

Yüklenen SQL dosyalarının boyut sınırı var mı? Hangi dosya formatları destekleniyor?

.sql ve .txt formatlarındaki metin dosyalarını yüklemeyi destekler, teorik olarak sabit bir dosya boyutu sınırı yoktur, ancak çok büyük dosyaları işlerken (örneğin 1 MB'tan büyük SQL döküm dosyaları) tarayıcının performans sorunları olabilir. Tek tek sorguları veya küçük ölçekli betik dosyalarını işlemek önerilir. Çok büyük SQL dosyaları için (örneğin tam veritabanı dökümleri), biçimlendirmeden önce önce daha küçük parçalara bölmeniz önerilir. Dosya içeriği tarayıcının FileReader API'si aracılığıyla okunur, sunucuya gönderilmez.

URL üzerinden paylaşım işlevi güvenli midir? SQL içeriği sunucu tarafından görülebilir mi?

URL üzerinden paylaşım işlevi, SQL içeriğini URL'nin karma bölümüne kodlamak için LZ-String sıkıştırma kullanır (# işaretinden sonraki içerik). URL'nin karma bölümünün özelliği, HTTP istekleriyle sunucuya gönderilmemesi, yalnızca tarayıcıda yerel olarak işlenmesidir. Paylaşım bağlantısını başka birine kopyaladığınızda, alıcının tarayıcısı karmayı ayrıştırır ve SQL içeriğini görüntülemek için sıkıştırmayı açar, tüm süreç boyunca SQL hiçbir sunucudan geçmez. Ancak paylaşım bağlantısının tam SQL içeriğini içerdiğini unutmayın, SQL'de hassas bilgiler varsa (şifreler, anahtarlar, kişisel veriler gibi), bağlantıyı herkese açık kanallarda paylaşmayın.

Birden fazla SQL ifadesi içeren betikler biçimlendirilebilir mi?

Evet. Araç, birden fazla SQL ifadesinin (noktalı virgülle ayrılmış birden fazla SELECT/INSERT/UPDATE/CREATE TABLE ifadesi gibi) toplu biçimlendirilmesini destekler. Ayarlar panelindeki 'Sorgular arası boş satırlar' seçeneğiyle ifadeler arasındaki boşluğu (0/1/2 satır) kontrol edebilirsiniz. Birden fazla ifadenin biçimlendirme etkisini test etmek için 'Birden fazla ifade' örnek SQL'ini yükleyin. Her ifade bağımsız olarak girintilenir ve düzenlenir, ifadeler arasında yapılandırılmış sayıda boş satırla ayrılır.

Ne kadar büyük SQL ifadeleri gecikmeye neden olur?

sql-formatter kütüphanesine dayanan saf JavaScript uygulaması, birkaç yüz satırlık SQL işleme modern tarayıcılarda genellikle milisaniye cinsinden yanıt verir, hissedilir bir gecikme olmaz. Binlerce satırlık saklı yordamlar veya karmaşık sorgular bile 1 saniyeden kısa sürede tamamlanabilir. Tüm hesaplamalar tarayıcının ana iş parçacığında çalışır, çok büyük dosyalar (10.000'den fazla satırlık SQL dökümleri gibi) arayüzün geçici olarak donmasına neden olabilir, toplu işlem yapılması önerilir.

Aracı kullanmak için internet bağlantısı gerekiyor mu? SQL verileri güvende mi?

Sayfa yüklendikten sonra çevrimdışı olarak kullanılabilir, SQL biçimlendirme, sıkıştırma ve doğrulama tümü tarayıcının yerel JavaScript'inde çalışır, girdiğiniz SQL ifadelerini hiçbir dış sunucuya göndermez. Tanımlama bilgisi izleme kullanmaz, kullanıcı tarafından girilen SQL içeriğini veya kullanım sırasındaki davranış verilerini toplamaz. Olgun açık kaynak kütüphanesi sql-formatter temel alınarak uygulanmıştır, kod mantığı şeffaf ve doğrulanabilirdir.

Sorun Giderme

Biçimlendirme 'Parse error' veya 'SQL biçimlendirme başarısız' hatası verirse ne yapmalı?

Biçimlendirici, sql-formatter kütüphanesine dayanarak SQL'i ayrıştırır, tanıyamadığı sözdizimiyle karşılaştığında hata verir. Yaygın nedenler ve çözümler: 1) Eşleşmeyen parantezler — sol ve sağ parantez sayısının eşleşip eşleşmediğini kontrol edin, kontrol etmek için editörün parantez eşleşmesi vurgulama özelliğini kullanabilirsiniz; 2) Kapanmamış dize tırnakları — tek ve çift tırnakların eşli olup olmadığını kontrol edin, dizelerdeki tırnaklar kaçırılmalıdır ('' veya \' gibi); 3) Yanlış veritabanı lehçesi seçimi — örneğin PostgreSQL'in :: operatörünü kullanıyorsunuz ancak MySQL lehçesi seçili, doğru lehçeye geçin; 4) Eksik SQL ifadesi — örneğin SELECT FROM olmadan yalnızca WHERE tümcesi; 5) Çok özgün veritabanı sözdizimi kullanımı (belirli saklı yordam kontrol akışları gibi), en yakın lehçeye geçmeyi veya SQL parçasını biçimlendirmeden önce basitleştirmeyi deneyin.

Biçimlendirmeden sonra Çince veya özel karakterler bozuk görünüyor?

Bu araç UTF-8 kodlamasını tam olarak destekler, Çince ve Unicode karakterler biçimlendirme sırasında değişmeden kalır. Bozuk karakterler görünüyorsa, bunun nedeni genellikle yapıştırdığınız SQL'in yanlış kodlamaya sahip bir dosyadan gelmesidir (örneğin GBK kodlamalı bir dosyadan kopyalanmış). Kaynak dosyanın UTF-8 kodlamasıyla kaydedildiğinden emin olun veya yapıştırmadan önce dosyayı UTF-8 kodlamasına dönüştürün. Tarayıcıdaki CodeMirror editörü varsayılan olarak UTF-8 kullanır, kodlama dönüşümü yapmaz.

SQL dosyası yüklendikten sonra tepki yok veya boş görünüyor?

Dosya yükleme yalnızca .sql ve .txt uzantılı metin dosyalarını destekler. Dosya ikili biçimdeyse (sqlite veritabanı dosyası, doc belgesi gibi), yüklendikten sonra bozuk karakterler görünecek veya boş görünecektir. Ayrıca bazı tarayıcıların JavaScript'in yerel dosyaları okuması için güvenlik kısıtlamaları vardır, dosyayı sürükle bırak ile değil, yükle düğmesine aktif olarak tıklayarak seçtiğinizden emin olun (sürükle bırak yükleme şu anda desteklenmiyor). Önerilen dosya boyutu 1 MB'tan büyük değildir, aşılması tarayıcıda yavaş ayrıştırmaya neden olabilir.

Biçimlendirmeden sonra bazı anahtar kelimeler küçük/büyük harfe döndü, orijinal girişle tutarsız?

Bu, biçimlendirmenin normal davranışıdır. Anahtar kelime büyük/küçük harf seçeneği (keywordCase) varsayılan olarak UPPER olarak ayarlanmıştır, SQL anahtar kelimelerini tek tip büyük harfe dönüştürür. Orijinal büyük/küçük harfi değiştirmeden korumak istiyorsanız, ayarlar panelindeki anahtar kelimeler, tanımlayıcılar, veri türleri ve fonksiyonlar için büyük/küçük harf seçeneklerini 'Orijinali koru (preserve)' olarak değiştirin, bu durumda biçimlendirici yalnızca satır sonlarını ve girintileri ayarlayacak, hiçbir harfin büyük/küçük harfini değiştirmeyecektir.

Sözlük

SQL Lehçesi (SQL Dialect)
Farklı veritabanı yönetim sistemleri (DBMS) tarafından standart SQL üzerine yapılan uzantılar ve varyantlar. Örneğin MySQL'deki LIMIT, PostgreSQL'deki :: tür dönüşümü, SQL Server'daki TOP, Oracle'daki ROWNUM vb. lehçeye özgü sözdizimlerdir. Biçimlendirme sırasında doğru sözdizimi ayrıştırmasını sağlamak için doğru lehçe seçilmelidir.
Anahtar Kelime Büyük/Küçük Harf (Keyword Case)
SQL ayrılmış kelimeleri (SELECT/FROM/WHERE/JOIN vb.) için büyük/küçük harf stratejisi. Büyük harf (UPPER) geleneksel stildir, küçük harf (lower) modern yazılım geliştirmede giderek daha popüler hale geliyor, orijinali koru (preserve) minimum değişiklikler için kullanılır.
Tanımlayıcı (Identifier)
SQL'deki veritabanı nesnelerinin adları, veritabanı adları, tablo adları, sütun adları, takma adlar, dizin adları, görünüm adları, saklı yordam adları vb. dahil. Farklı veritabanları tanımlayıcıları farklı şekillerde alıntılar: MySQL ters tırnak kullanır, PostgreSQL çift tırnak kullanır, SQL Server köşeli parantez kullanır.
Girinti Stili (Indent Style)
SQL biçimlendirirken girintilerin hizalanma şeklini kontrol eder. Standart girintiler hiyerarşik ilerleme kullanır; tabularLeft/tabularRight sütun adlarını ve takma adları tablo formatında hizalar, geniş ekranda okunabilirlik daha iyidir ancak daha uzun satırlar oluşturabilir.
Mantıksal Operatör Satır Kesme (Logical Operator Newline)
Çok satırlı koşullarda AND/OR gibi mantıksal operatörlerin satır kesme konumu. before, operatörün bir sonraki satırın başında olduğu anlamına gelir, after, operatörün mevcut satırın sonunda olduğu anlamına gelir. Farklı ekiplerin farklı tercihleri vardır.
İfade Genişliği (Expression Width)
Satır kesmeyi tetikleyen satır başına karakter eşiği (20-200 karakter). Bu genişliği aşan ifadeler, kod editörlerindeki printWidth/cetvel ayarına benzer şekilde satır kesilecektir.
Yoğun Operatörler (Dense Operators)
Biçimlendirme seçeneklerinden biri, etkinleştirildiğinde operatörlerin (=, <, >, +, - vb.) etrafında fazladan boşluk bırakmaz, örneğin `WHERE id=1 AND status='active'` yerine `WHERE id = 1 AND status = 'active'`, daha sıkı bir çıktı üretir.
Sorgular Arası Boş Satırlar (Lines Between Queries)
Birden fazla SQL ifadesi arasındaki boş satır sayısı. 0 doğrudan bitişik anlamına gelir, 1 bir boş satırla ayırma anlamına gelir (yaygın), 2 iki boş satır anlamına gelir (gevşek stil), çok ifadeli betiklerin okunabilirliğini etkiler.
SQL Sıkıştırma/Minifikasyonu (SQL Minify/Compress)
Biçimlendirilmiş SQL'den tüm yorumları ve gereksiz boşlukları kaldırarak sıkı tek satırlık biçimde birleştirme. Günlük çıktısı, koda gömme, URL ile iletme gibi senaryolar için uygundur, biçimlendirmenin ters işlemidir.
Güzel Yazdırma (Pretty Print)
Otomatik girintiler ve satır sonları aracılığıyla kod veya veri çıktısını iyi okunabilir bir biçimde üretme. SQL Pretty Print, SQL'i güzelleştirme ve biçimlendirmedir, Minify (sıkıştırma) karşıtıdır.
CodeMirror
Bu aracın kullandığı tarayıcı içi kod editörü bileşeni (sürüm 6), SQL sözdizimi vurgulama, satır numarası gösterme, kod katlama gibi düzenleme geliştirme işlevleri sağlar, sektörde yaygın olarak kullanılan bir web kod editörü çözümüdür.
sql-formatter
Bu aracın çekirdeğinde kullanılan açık kaynak SQL biçimlendirme kütüphanesi, birden fazla SQL lehçesi için sözcük analizi ve biçimlendirilmiş çıktıyı destekler, frontend ekosistemindeki en popüler SQL biçimlendirme kütüphanelerinden biridir.

Desteklenen SQL lehçeleri listesi

Araç 20 SQL veritabanı lehçesini destekler, en iyi biçimlendirme etkisini elde etmek için kullandığınız veritabanına karşılık gelen lehçeyi seçin:

LehçeVeritabanıÖzellik açıklaması
Standard SQLStandart SQLANSI SQL standart sözdizimi, genel senaryolar ve bilinmeyen lehçeler için uygun
MySQLMySQL / TiDBEn popüler açık kaynak ilişkisel veritabanı, ters tırnak tanımlayıcıları, LIMIT sayfalama
MariaDBMariaDBMySQL'in dalı, MySQL sözdizimiyle uyumlu ve daha fazla fonksiyonla genişletilmiş
PostgreSQLPostgreSQLZengin özelliklere sahip açık kaynak veritabanı, çift tırnak tanımlayıcıları, :: tür dönüşümü
SQLiteSQLiteHafif gömülü veritabanı, mobil uygulamalarda ve tarayıcılarda yaygın olarak kullanılır
T-SQLSQL Server / AzureMicrosoft SQL Server Transact-SQL, köşeli parantez tanımlayıcıları, TOP sayfalama
PL/SQLOracleOracle'ın Prosedürel SQL uzantısı, ROWNUM sayfalama, zengin yerleşik paketler
BigQueryGoogle BigQueryGoogle'ın bulut veri ambarı, STRUCT/ARRAY gibi iç içe türleri destekler
SnowflakeSnowflakeBulut yerel veri ambarı, yarı yapılandırılmış veri işleme yetenekleri güçlü
RedshiftAWS RedshiftAmazon bulut veri ambarı, PostgreSQL tabanlı ancak özgün sözdizimi uzantılarına sahip

Hazır biçimlendirme stilleri karşılaştırması

Tek tıklamayla 4 hazır stil farklı kullanım senaryoları için uygundur:

Hazır ayarAnahtar kelimelerGirintilerOperatörlerSorgular arası boşluk
VarsayılanUPPER2 boşluk StandartNormal boşluklar1 boş satır
Küçük harflower2 boşluk StandartNormal boşluklar1 boş satır
KompaktUPPERSol tabloKompakt mod1 boş satır
GevşekUPPER4 boşluk StandartNormal boşluklar2 boş satır

Klavye kısayolları genel bakış

Tüm kısayollar aynı anda değiştirici tuş+Shift+ilgili harfi basılı tutmayı gerektirir:

İşlemMacWindows/LinuxAçıklama
Biçimlendir⇧⌘FShift+Ctrl+FSQL ifadelerini güzelleştirir, satır sonları ve girintiler ekler
Sıkıştır⇧⌘CShift+Ctrl+CSQL'i tek satıra sıkıştırır, yorumları ve boşlukları kaldırır
Doğrula⇧⌘VShift+Ctrl+VSQL sözdizimi doğruluğunu kontrol eder
Yükle⇧⌘OShift+Ctrl+OYerel dosyadan .sql/.txt yükler
İndir⇧⌘DShift+Ctrl+DSonucu .sql dosyası olarak kaydeder
Temizle⇧⌘KShift+Ctrl+KGiriş ve çıkış içeriğini temizler

Privacy & Security

Bu SQL biçimlendirme aracının tüm işlemleri tamamen tarayıcınızda yerel olarak gerçekleşir: girdiğiniz SQL ifadeleri, seçtiğiniz lehçe ve biçimlendirme yapılandırması tümü tarayıcının JavaScript'inde sql-formatter kütüphanesi tarafından işlenir, hiçbir SQL içeriği veya yapılandırma ağ üzerinden dış sunuculara gönderilmez. Dosya yükleme, yerel dosya içeriğini HTML5 FileReader API'si aracılığıyla okur, ağ iletimi yoktur. URL üzerinden paylaşım işlevi, SQL'i sıkıştırarak URL'nin karma bölümüne kodlar (# işaretinden sonraki içerik HTTP istekleriyle sunucuya gönderilmez), yalnızca tarayıcıda yerel olarak sıkıştırması açılır ve görüntülenir. Tanımlama bilgisi izleme kullanmaz, kullanıcı tarafından girilen SQL içeriğini veya kullanım sırasındaki davranış verilerini toplamaz. Sayfayı kapattığınızda veya yenilediğinizde giriş içeriği ve yapılandırma durumu otomatik olarak sıfırlanır (geçmiş yalnızca yerel localStorage'da kaydedilir).

Authoritative References