Menu

SQL Biçimlendirici

SQL sorgularını akıllı girintilerle güzelleştir.

Son güncelleme

Anahtar kelimeler
Girinti
GirişBaşlamak için SQL yapıştırın
Çıkış
Biçimlendirilmiş SQL burada görünür — tek tıkla yeniden girintileyin, hizalayın ve kopyalayın.

SQL formatter nedir?

SQL formatter; tek satıra sıkıştırılmış, otomatik üretilmiş veya karman çorman SQL'i alıp tutarlı girinti ve satır sonlarıyla yeniden yazar. Geliştiriciler ve veri analistleri bunu join'leri gözden geçirirken, filtre hatalarını ayıklarken, ORM'in ürettiği sorguları temizlerken, ticket veya dokümana sorgu eklerken ve sorgu planlarını incelerken kullanır.

Biçimlendirme, sorgunun *ne yaptığını* değiştirmez — sadece insan gözüyle ne kadar kolay okunduğunu değiştirir. Görsel düzen oturduğunda SELECT, FROM, JOIN, WHERE, GROUP BY, HAVING ve ORDER BY arasındaki ilişki çok daha rahat görülür; özellikle alt sorgular ve CTE'ler iç içe geçtiğinde.

SQL'in birçok *dialekti* vardır: PostgreSQL, MySQL, SQLite, T-SQL (Microsoft SQL Server), Oracle ve BigQuery; her biri standardı kendi söz dizimiyle genişletir. İyi bir formatter seçtiğiniz dialekti tanır ve sağlayıcıya özel söz dizimini bozmaz.

SQL biçimlendirirken neler öğreneceksiniz

  • SQL cümleciklerinin belirli görevleri vardır: SELECT kolonları seçer, FROM tabloları belirler, WHERE satırları filtreler, GROUP BY toplulaştırır ve ORDER BY sıralar.
  • Düzgün girinti; tek satır halindeki bir sorguda gözden kaçan iç içe sorguları, join'leri ve koşulları gün yüzüne çıkarır.
  • Dialekt önemlidir — RETURNING, LIMIT, TOP ve köşeli parantezli tanımlayıcılar ([col] ile "col" farkı) veritabanları arasında taşınabilir değildir.

Bir SQL sorgusunu adım adım nasıl biçimlendirirsiniz

  1. Sorguyu yapıştırın

    SQL'inizi giriş kutusuna bırakın. Tek satırlık, ORM'in ürettiği veya yarı biçimlenmiş SQL — hepsi çalışır.

  2. Dialekti seçin

    PostgreSQL, MySQL, SQLite veya T-SQL'i seçin ki formatter LIMIT, TOP veya RETURNING gibi sağlayıcıya özel anahtar kelimelere uygun davransın.

  3. Stili yapılandırın

    Anahtar kelime büyük/küçük harf tercihinizi (büyük harf standarttır) ve girinti genişliğini (2 ya da 4 boşluk) seçin. Çoğu ekip büyük harf anahtar kelime + 2 boşluk girinti kullanır.

  4. Biçimlendirilmiş çıktıyı okuyun

    Her cümlecik kendi satırına yerleşir, join'ler hizalanır, alt sorgular girintilenir. Yorumlar korunur.

  5. Projenize geri kopyalayın

    Biçimlenmiş sorguyu migration dosyanıza, ORM raw query'nize ya da BI aracına yapıştırın. Her şey tarayıcınızda kalır.

SQL cümlecikleri hızlı referans

SELECT sorgularının %95'inde göreceğiniz cümlecikler — kavramsal olarak işlendikleri sırayla. Sağlayıcı dökümanları: PostgreSQL SELECT, MySQL SELECT.

CümlecikGöreviÖrnek
SELECTHangi kolonların / ifadelerin döneceğini belirlerSELECT id, name
FROMKaynak tablo(lar)ı seçerFROM users
JOIN ... ONBaşka bir tablodan satırları birleştirirJOIN orders ON orders.user_id = users.id
WHEREGruplamadan önce satırları filtrelerWHERE active = true
GROUP BYAynı değerleri paylaşan satırları toplulaştırırGROUP BY country
HAVINGToplulaştırılmış grupları filtrelerHAVING COUNT(*) > 10
ORDER BYSonuç kümesini sıralarORDER BY created_at DESC
LIMIT / OFFSETSonucu sayfalarLIMIT 20 OFFSET 40
WITH ... ASCommon Table Expression (CTE) — alt sorguya isim verirWITH active AS (...)

Deneyebileceğiniz SQL örnekleri

Basit bir sorguyu biçimlendirme

Girdi
select id,name from users where active=true order by created_at desc limit 10
Biçimlenmiş
SELECT  id,  nameFROM usersWHERE active = trueORDER BY created_at DESCLIMIT 10;

Her cümlecik artık kendi satırında, kolon listesi de girintilenmiş. Bu sorguyu code review'da incelemek 10 kat daha kolay.

Join'i incele

Girdi
select u.name,o.total from users u join orders o on o.user_id=u.id where o.total>100
Biçimlenmiş
SELECT  u.name,  o.totalFROM users uJOIN orders o ON o.user_id = u.idWHERE o.total > 100;

Tablolara takma ad vermek (users u, orders o) kolon listesini kısa tutar. JOIN ... ON satırı tablolar arasındaki ilişkiyi açıkça ortaya koyar.

İç içe alt sorguyu okuma

Girdi
select * from users where id in (select user_id from enrollments where course_id=5)
Biçimlenmiş
SELECT *FROM usersWHERE id IN (  SELECT user_id  FROM enrollments  WHERE course_id = 5);

İçteki sorguyu girintilemek bağımlılığı net biçimde gösterir. Yapı görünür hale geldikten sonra birçok alt sorgu JOIN'e veya CTE'ye dönüştürülebilir.

Sık yapılan SQL biçimlendirme hataları

  • Biçimlenmiş SQL'in *doğru* SQL olduğunu varsaymak. Biçimlendirme sadece görünümü değiştirir, anlamı değil — pırıl pırıl görünen bir sorgu da yanlış sonuç döndürebilir.
  • Biçimlendirirken sorguyu düzenleyip sonucu yeniden test etmeyi unutmak.
  • Dialekti göz ardı etmek — PostgreSQL'de LIMIT 10, T-SQL'de TOP 10 ve standart SQL'de FETCH FIRST 10 ROWS ONLY aynı işi yapar ama söz dizimleri farklıdır.

SQL Formatter Sıkça Sorulan Sorular

SQL'i biçimlendirmek sorgu sonucunu değiştirir mi?
Hayır. Biçimlendirme yalnızca boşluk ve büyük/küçük harf düzenini değiştirir. Veritabanı her iki sürümü de aynı sorgu planına çevirir, dolayısıyla dönen satırlar birebir aynıdır.
SQL neden biçimlendirilir?
Okunaklı SQL'in hatalarını ayıklamak, code review'dan geçirmek, başkalarına anlatmak ve uzun vadede bakımını yapmak çok daha kolaydır — özellikle birden fazla join, alt sorgu, CTE veya pencere fonksiyonu içeren sorgularda.
SQL dialekti nedir?
SQL dialekti, standart SQL'in veritabanına özgü uzantısıdır. PostgreSQL, MySQL, SQLite, T-SQL (SQL Server), Oracle ve BigQuery'nin her biri SQL standardının ötesinde kendine özgü söz dizimine sahiptir.
SQL formatter bozuk sorguları düzeltir mi?
Bir formatter, sorguyu yapılandırılmış biçimde yeniden yazarak söz dizimi sorunlarını görünür kılabilir; ama şemanızı anlayamaz ve sorgunun mantıksal olarak doğru olduğunu garanti edemez.
SQL anahtar kelimelerini büyük harfle mi yazmalıyım?
Çoğu stil rehberi anahtar kelimelerin büyük (SELECT, FROM, WHERE), tanımlayıcıların ise küçük harfle yazılmasını önerir; çünkü bu görsel kontrast sorgunun yapısını öne çıkarır. Bir stil seçip ona sadık kalın.

Daha fazla bilgi

Diğer geliştirici araçları

Coddy ile kodlamayı öğren

BAŞLA