SQL Biçimlendirici & Doğrulayıcı: SQL Söz Dizimini Temizle, Biçimlendir ve Kontrol Et
SQL sorgularını uygun girinti ve büyük harfle yazma ile biçimlendirirken söz dizimini doğrular. Veritabanı sorgularınızı anında okunabilir ve hatasız hale getirir.
SQL Biçimlendirici ve Doğrulayıcı
SQL sorgularınızı doğru girinti ve sözdizimi kontrolü ile biçimlendirmek ve doğrulamak için basit bir araç.
Dokümantasyon
SQL Biçimlendirici ve Doğrulayıcı
Giriş
SQL Biçimlendirici ve Doğrulayıcı, geliştiriciler, veritabanı yöneticileri ve SQL yeni başlayanlarının SQL sorgularını verimli bir şekilde biçimlendirmelerine ve doğrulamalarına yardımcı olmak için tasarlanmış güçlü ama kullanıcı dostu bir çevrimiçi araçtır. Bu ücretsiz araç, SQL komutlarını standart SQL sözdizimi kurallarına göre uygun girinti, büyük harfle yazma ve boşluklarla otomatik olarak biçimlendirir ve sorgularınızı daha okunabilir ve sürdürülebilir hale getirir. Ayrıca, veritabanınıza karşı çalıştırmadan önce yaygın sözdizimi hatalarını tanımlamak için doğrulama kontrolleri gerçekleştirir, böylece hata ayıklama süresinden saatler kazanabilirsiniz. Karmaşık veritabanı sorguları yazıyor, SQL öğreniyor veya sadece dağınık SQL kodunu temizlemeniz gerekiyorsa, bu biçimlendirici ve doğrulayıcı, SQL iş akışınızı anında geliştirmek için sezgisel bir arayüz sunar.
Bu Aracı Kullanma
SQL Biçimlendirici ve Doğrulayıcı kullanmak oldukça basittir:
- SQL Sorgunuzu Girin: SQL sorgunuzu giriş metin alanına yazın veya yapıştırın.
- Otomatik Biçimlendirme: Araç, SQL'inizi gerçek zamanlı olarak otomatik olarak biçimlendirir ve sonucu çıkış alanında görüntüler.
- Doğrulama: Araç, SQL'inizi otomatik olarak sözdizimi hataları için kontrol eder ve bulunan sorunları görüntüler.
- Biçimlendirilmiş SQL'i Kopyalayın: Biçimlendirilmiş SQL'i uygulamalarınızda veya veritabanı araçlarınızda kullanmak için panonuza kopyalamak için "Kopyala" düğmesine tıklayın.
Arayüz, masaüstü ve mobil cihazlarda sorunsuz bir şekilde çalışacak şekilde sezgisel ve duyarlı olacak şekilde tasarlanmıştır.
SQL Biçimlendirme Özellikleri
Otomatik Anahtar Kelime Büyük Harfle Yazma
Biçimlendirici, SELECT, FROM, WHERE, JOIN gibi SQL anahtar kelimelerini otomatik olarak büyük harfle yazarak, bunların tablo ve sütun adlarından ayrılmasını sağlar. Bu, okunabilirliği artırır ve standart SQL stil kurallarını takip eder.
Uygun Girinti
SQL sorguları, mantıksal yapılarına göre girintilenir:
- Ana kısımlar (SELECT, FROM, WHERE vb.) sol kenardan başlar
- JOIN kısımları FROM'un altında girintilenir
- SELECT ifadelerindeki sütunlar hizalanır
- İç içe sorgular ek girinti seviyeleri alır
- WHERE kısımlarındaki koşullar uygun şekilde hizalanır
Satır Sonları ve Boşluklar
Biçimlendirici, sorgunuzda mantıklı noktalarda satır sonları ekler:
- Her ana kısımdan sonra (SELECT, FROM, WHERE vb.)
- Virgülle ayrılmış listelerdeki öğeler arasında
- Alt sorgulardan önce ve sonra
- CASE ifade bileşenleri arasında
Okunabilirliği artırmak için operatörler, parantezler ve kısımlar arasında uygun boşluklar da eklenir.
SQL Doğrulama Özellikleri
Doğrulayıcı, yaygın SQL sözdizimi hatalarını kontrol eder ve net geri bildirim sağlar:
Sözdizimi Hatası Tespiti
- Dengeli Parantezler: Eksik açılı veya kapalı parantezleri tespit eder
- Kapalı Olmayan Alıntılar: Kapalı olmayan dize literallerini tanımlar
- Eksik Noktalı Virgüller: İfadelerin noktalı virgüllerle bitip bitmediğini kontrol eder
- Kısım Sırası: SQL kısımlarının doğru sırada görünüp görünmediğini doğrular
Yaygın SQL Hataları
Doğrulayıcı ayrıca yaygın mantıksal hataları tanımlar:
- ON Koşulu Olmadan JOIN: ON koşulları eksik olan JOIN kısımlarını tespit eder
- Tamamlanmamış WHERE Koşulları: Tamamlanmamış yargılarla WHERE kısımlarını tanımlar
- GROUP BY Olmadan HAVING: Karşılık gelen GROUP BY olmadan kullanılan HAVING kısımlarını yakalar
- Boş Kısımlar: Boş GROUP BY, ORDER BY veya diğer kısımları tespit eder
Doğrulama Geri Bildirimi
Hatalar tespit edildiğinde, bunlar net, kullanıcı dostu bir formatta görüntülenir:
- Her hata tanımlayıcı bir mesajla listelenir
- Hatanın türü belirtilir
- Hatanın düzeltilmesi için öneriler sağlanabilir
SQL Biçimlendirme Kuralları
SQL biçimlendirici, tutarlı ve okunabilir SQL sağlamak için bu özel kuralları takip eder:
Anahtar Kelime Büyük Harfle Yazma
Tüm SQL anahtar kelimeleri büyük harfle yazılır, bunlar arasında:
- İfade türleri: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP
- Kısımlar: FROM, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT
- JOIN'ler: JOIN, INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN
- Operatörler: AND, OR, NOT, IN, BETWEEN, LIKE, IS NULL
- Fonksiyonlar: COUNT, SUM, AVG, MAX, MIN, CASE, WHEN, THEN, ELSE, END
Girinti ve Satır Sonları
- Ana kısımlar yeni bir satırda başlar
- Alt sorgular, her iç içe geçiş seviyesi için iki boşlukla girintilenir
- Virgülle ayrılmış listelerdeki her öğe uygun girinti ile yeni bir satıra yerleştirilir
- JOIN kısımları FROM kısmının altında girintilenir
- WHERE kısımlarındaki koşullar okunabilirlik için hizalanır
Örnek: Biçimlendirmeden Önce ve Sonra
Biçimlendirmeden Önce:
1select u.id, u.name, o.order_date from users u join orders o on u.id = o.user_id where o.status = "completed" group by u.id order by u.name;
2
Biçimlendirmeden Sonra:
1SELECT
2 u.id,
3 u.name,
4 o.order_date
5FROM users u
6 JOIN orders o ON u.id = o.user_id
7WHERE
8 o.status = "completed"
9GROUP BY
10 u.id
11ORDER BY
12 u.name;
13
SQL Doğrulama Kuralları
Doğrulayıcı, aşağıdaki sorunları kontrol eder:
Yapısal Doğrulama
- Dengeli Parantezler: Her açılı parantezin eşleşen bir kapalı parantezi olmalıdır
- Kapalı Alıntılar: Tüm alıntılar (tek veya çift) düzgün bir şekilde kapatılmalıdır
- İfade Sonlandırma: SQL ifadeleri noktalı virgülle bitmelidir
- Kısım Sırası: Kısımlar doğru sırada görünmelidir (SELECT'ten sonra FROM, WHERE'den önce GROUP BY vb.)
Anlamsal Doğrulama
- JOIN Koşulları: Her JOIN'in bir ON veya USING kısmı olmalıdır
- WHERE Koşulları: WHERE kısımlarının tamamlanmış koşulları olmalıdır
- GROUP BY Gereksinimleri: HAVING kısımları bir GROUP BY kısmı gerektirir
- Sütun Referansları: SELECT'te referans verilen sütunlar, toplama kullanıldığında GROUP BY'a dahil edilmelidir
Örnek: Doğrulama Hataları
Hatalı SQL ile Hatalar:
1SELECT user_id, COUNT(*) FROM orders
2JOIN users
3WHERE status =
4GROUP BY
5HAVING count > 10;
6
Doğrulama Hataları:
- JOIN eksik ON koşulu
- Tamamlanmamış WHERE koşulu
- Boş GROUP BY kısmı
- Tanımsız sütuna atıfta bulunan HAVING kısmı
Kullanım Senaryoları
SQL Biçimlendirici ve Doğrulayıcı, birçok senaryoda değerlidir:
Veritabanı Geliştirme
- Kod İncelemesi: Kod incelemeleri için SQL'i biçimlendirin, böylece okunabilirliği artırın
- Hata Ayıklama: Sorguları çalıştırmadan önce sözdizimi hatalarını tanımlayın
- Dokümantasyon: Teknik dokümantasyon için iyi biçimlendirilmiş SQL oluşturun
- Eski Kod Bakımı: Eski SQL sorgularını temizleyin ve standart hale getirin
Eğitim ve Öğrenme
- SQL Eğitimi: Öğrencilere uygun SQL biçimlendirme kurallarını öğretin
- Kendi Kendine Çalışma: Veritabanı programlamayı öğrenirken SQL sözdizimini doğrulayın
- Öğretim: Eğitim ortamlarında uygun SQL yapısını ve biçimlendirmesini gösterin
- Beceri Geliştirme: Sözdizimsel olarak doğru SQL sorguları yazma pratiği yapın
Ekip İşbirliği
- Standartlaştırma: Geliştirme ekibi arasında tutarlı SQL biçimlendirmesi sağlamak
- Bilgi Paylaşımı: Karmaşık sorguları ekip üyeleri için daha anlaşılır hale getirmek
- Kod Kalitesi: Paylaşılan kod tabanlarındaki genel SQL kod kalitesini artırmak
- Eğitim: Yeni ekip üyelerinin mevcut SQL sorgularını anlamalarına yardımcı olmak
Veritabanı Yönetimi
- Sorgu Optimizasyonu: Karmaşık sorguları biçimlendirin, ardından optimize edin
- Script Yönetimi: Okunabilir veritabanı bakım scriptlerini koruyun
- Göç Scriptleri: Veritabanı göç SQL'lerinin doğruluğunu sağlayın
- Denetim Hazırlığı: Uyumluluk denetimleri için SQL sorgularını temizleyin
Alternatifler
SQL Biçimlendirici ve Doğrulayıcı temel işlevselliği sağlarken, dikkate almanız gereken alternatifler vardır:
Entegre Geliştirme Ortamları (IDE'ler)
- SQL'e özel IDE'ler: DataGrip, SQL Server Management Studio veya MySQL Workbench gibi araçlar, yerleşik biçimlendirme ve doğrulama sunar
- Artıları: Veritabanı bağlantıları, yürütme ve diğer özelliklerle entegre
- Eksileri: Genellikle kurulum gerektirir, pahalı olabilir ve kaynak yoğun olabilir
Veritabanı Özel Araçları
- PostgreSQL: pgFormatter, psql ile \e komutu
- MySQL: MySQL Workbench biçimlendirici
- SQL Server: SSMS biçimlendirme seçenekleri
- Artıları: Belirli SQL lehçeleri için optimize edilmiştir
- Eksileri: Farklı veritabanı sistemleri arasında taşınamaz
Kod Editörü Eklentileri
- VS Code Eklentileri: SQL Beautify, SQL Formatter
- Sublime Text Paketleri: SqlBeautifier
- Artıları: Geliştirme ortamınıza entegre
- Eksileri: Yapılandırma gerektirebilir, çevrimiçi her zaman mevcut olmayabilir
Komut Satırı Araçları
- sqlformat: Python tabanlı SQL biçimlendirme aracı
- sql-formatter-cli: Node.js tabanlı biçimlendirici
- Artıları: CI/CD boru hatlarına entegre edilebilir
- Eksileri: Kurulum ve komut satırı bilgisi gerektirir
SQL Biçimlendirme ve Doğrulama Tarihi
SQL Standartlarının Evrimi
SQL (Yapılandırılmış Sorgu Dili), 1970'lerde IBM'de geliştirilmiş ve ilk ticari uygulama 1979'da piyasaya sürülmüştür. Amerikan Ulusal Standartlar Enstitüsü (ANSI), 1986'da ilk SQL standardını yayımlamış, ardından Uluslararası Standardizasyon Örgütü (ISO) 1987'de yayımlamıştır.
SQL, birden fazla standart (SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003, SQL:2008, SQL:2011, SQL:2016 ve SQL:2019) aracılığıyla evrim geçirdikçe, biçimlendirme uygulamaları da kod okunabilirliğini ve sürdürülebilirliğini artırmak için gelişmiştir.
SQL Biçimlendirme Geleneklerinin Gelişimi
SQL'in ilk günlerinde biçimlendirme tutarsızdı ve büyük ölçüde bireysel tercihlere dayanıyordu. Veritabanı sistemleri daha karmaşık hale geldikçe ve ekip tabanlı geliştirme yaygınlaştıkça, standartlaştırılmış biçimlendirme ihtiyacı arttı.
SQL biçimlendirme tarihindeki önemli kilometre taşları:
- 1990'lar: Erken SQL stil kılavuzları organizasyonlarda ortaya çıkmaya başladı
- 2000'lerin Başları: Nesne-ilişkisel eşleme (ORM) araçlarının yükselişi, SQL üretimi ve biçimlendirmeye olan ilgiyi artırdı
- 2010'lar: Çevrimiçi SQL biçimlendirme araçları, web uygulamalarının büyümesiyle popüler hale geldi
- Günümüz: Otomatik biçimlendirme, veritabanı geliştirmede en iyi uygulama olarak kabul edilmektedir
SQL Doğrulama Evrimi
SQL doğrulama, basit sözdizimi kontrolünden daha sofistike analizlere evrim geçirmiştir:
- Erken Veritabanı Sistemleri: Sözdizimi sorunları için temel hata mesajları sağladı
- 1990'lar-2000'ler: Özel SQL ayrıştırıcıları ve doğrulayıcıları geliştirilmiştir
- 2010'lar: SQL doğrulamanın geliştirme iş akışlarına ve CI/CD boru hatlarına entegrasyonu
- Günümüz: İyileştirmeleri önerebilen ve potansiyel performans sorunlarını tespit edebilen AI destekli SQL doğrulaması
Kod Örnekleri
Örnek 1: Temel SELECT Sorgusu
Biçimlendirilmemiş:
1select id, first_name, last_name, email from customers where status = 'active' order by last_name, first_name;
2
Biçimlendirilmiş:
1SELECT
2 id,
3 first_name,
4 last_name,
5 email
6FROM
7 customers
8WHERE
9 status = 'active'
10ORDER BY
11 last_name,
12 first_name;
13
Örnek 2: JOIN Sorgusu
Biçimlendirilmemiş:
1select c.id, c.name, o.order_date, o.total_amount from customers c left join orders o on c.id = o.customer_id where o.order_date >= '2023-01-01' and o.status != 'cancelled' order by o.order_date desc;
2
Biçimlendirilmiş:
1SELECT
2 c.id,
3 c.name,
4 o.order_date,
5 o.total_amount
6FROM
7 customers c
8 LEFT JOIN orders o ON c.id = o.customer_id
9WHERE
10 o.order_date >= '2023-01-01'
11 AND o.status != 'cancelled'
12ORDER BY
13 o.order_date DESC;
14
Örnek 3: Alt Sorgu ile Karmaşık Sorgu
Biçimlendirilmemiş:
1select d.department_name, (select count(*) from employees e where e.department_id = d.id) as employee_count, (select avg(salary) from employees e where e.department_id = d.id) as avg_salary from departments d where d.active = true having employee_count > 0 order by avg_salary desc;
2
Biçimlendirilmiş:
1SELECT
2 d.department_name,
3 (
4 SELECT
5 COUNT(*)
6 FROM
7 employees e
8 WHERE
9 e.department_id = d.id
10 ) AS employee_count,
11 (
12 SELECT
13 AVG(salary)
14 FROM
15 employees e
16 WHERE
17 e.department_id = d.id
18 ) AS avg_salary
19FROM
20 departments d
21WHERE
22 d.active = TRUE
23HAVING
24 employee_count > 0
25ORDER BY
26 avg_salary DESC;
27
Programatik SQL Biçimlendirme
Çeşitli programlama dillerinde SQL biçimlendirme nasıl uygulanır:
1// JavaScript SQL biçimlendirme örneği sql-formatter kütüphanesini kullanarak
2const sqlFormatter = require('sql-formatter');
3
4function formatSQL(sql) {
5 return sqlFormatter.format(sql, {
6 language: 'sql',
7 uppercase: true,
8 linesBetweenQueries: 2,
9 indentStyle: 'standard'
10 });
11}
12
13const rawSQL = "select id, name from users where status='active'";
14const formattedSQL = formatSQL(rawSQL);
15console.log(formattedSQL);
16
1# Python SQL biçimlendirme örneği sqlparse kullanarak
2import sqlparse
3
4def format_sql(sql):
5 return sqlparse.format(
6 sql,
7 reindent=True,
8 keyword_case='upper',
9 identifier_case='lower',
10 indent_width=2
11 )
12
13raw_sql = "select id, name from users where status='active'"
14formatted_sql = format_sql(raw_sql)
15print(formatted_sql)
16
1// Java SQL biçimlendirme örneği JSqlParser kullanarak
2import net.sf.jsqlparser.parser.CCJSqlParserUtil;
3import net.sf.jsqlparser.statement.Statement;
4
5public class SQLFormatter {
6 public static String formatSQL(String sql) throws Exception {
7 Statement statement = CCJSqlParserUtil.parse(sql);
8 return statement.toString()
9 .replaceAll("(?i)SELECT", "\nSELECT")
10 .replaceAll("(?i)FROM", "\nFROM")
11 .replaceAll("(?i)WHERE", "\nWHERE")
12 .replaceAll("(?i)ORDER BY", "\nORDER BY");
13 }
14
15 public static void main(String[] args) throws Exception {
16 String rawSQL = "select id, name from users where status='active'";
17 String formattedSQL = formatSQL(rawSQL);
18 System.out.println(formattedSQL);
19 }
20}
21
1<?php
2// PHP SQL biçimlendirme örneği
3function formatSQL($sql) {
4 // Anahtar kelimeleri büyük harfli versiyonlarıyla değiştir
5 $keywords = ['SELECT', 'FROM', 'WHERE', 'JOIN', 'LEFT JOIN', 'RIGHT JOIN',
6 'INNER JOIN', 'GROUP BY', 'ORDER BY', 'HAVING', 'LIMIT'];
7
8 $formattedSQL = $sql;
9 foreach ($keywords as $keyword) {
10 $formattedSQL = preg_replace('/\b' . preg_quote($keyword, '/') . '\b/i', "\n$keyword", $formattedSQL);
11 }
12
13 // Girinti ekle
14 $lines = explode("\n", $formattedSQL);
15 $result = '';
16 $indentLevel = 0;
17
18 foreach ($lines as $line) {
19 $trimmedLine = trim($line);
20 if (!empty($trimmedLine)) {
21 $result .= str_repeat(" ", $indentLevel) . $trimmedLine . "\n";
22 }
23 }
24
25 return $result;
26}
27
28$rawSQL = "select id, name from users where status='active'";
29$formattedSQL = formatSQL($rawSQL);
30echo $formattedSQL;
31?>
32
Sıkça Sorulan Sorular
SQL biçimlendirme nedir?
SQL biçimlendirme, SQL kodunu uygun girinti, satır sonları ve büyük harfle yazma ile yapılandırma sürecidir. İyi SQL biçimlendirmesi, anahtar kelimeleri büyük harfle yazma, kısımları ayrı satırlara yerleştirme ve iç içe yapılar için tutarlı girinti kullanma gibi yerleşik kuralları takip eder.
SQL sorgularımı neden biçimlendirmeliyim?
SQL sorgularını biçimlendirmenin birçok faydası vardır:
- Okunabilirliği artırır, karmaşık sorguları anlamayı kolaylaştırır
- Hata ayıklama ve bakım sürecini kolaylaştırır
- Ekip üyeleriyle işbirliğini geliştirir
- Sözdizimi hatası olasılığını azaltır
- Projeler arasında tutarlı kod stili sağlar
- Dokümantasyon ve sunumlarda profesyonel bir görünüm sunar
Bu biçimlendirici hangi SQL lehçelerini destekliyor?
Bu SQL biçimlendirici, çoğu büyük veritabanı sistemi arasında çalışan standart SQL sözdizimini destekler, bunlar arasında:
- MySQL
- PostgreSQL
- SQL Server (T-SQL)
- Oracle
- SQLite
- MariaDB
Biçimlendirici standart SQL'i iyi bir şekilde işlerken, bazı lehçeye özgü özellikler en iyi şekilde biçimlendirilmeyebilir.
Doğrulayıcı tüm olası SQL hatalarını kontrol ediyor mu?
Doğrulayıcı, yaygın sözdizimi hatalarını ve yapısal sorunları kontrol eder, ancak tüm olası hataları tespit edemez, özellikle de:
- Veritabanı özel sözdizimi varyasyonları
- Nesne varlığı (tablolar, sütunlar vb.)
- Veri türü uyumluluğu
- Performans sorunları
- İş mantığı problemleri
Bu, veritabanınıza karşı çalıştırmadan önce birinci savunma hattı olarak kullanılmak üzere en iyi şekilde kullanılır.
Çok büyük SQL sorgularını nasıl biçimlendirebilirim?
Çok büyük SQL sorguları için:
- Tüm sorguyu giriş alanına yapıştırın
- Araç, karmaşık sorgular için bir süre alabilir, ancak otomatik olarak işler
- Son derece büyük sorgular (10,000+ karakter) için kısa bir işleme gecikmesi fark edebilirsiniz
Bu aracı çevrimdışı kullanabilir miyim?
Bu web tabanlı araç, başlangıçta bir internet bağlantısı gerektirir. Ancak, yüklendikten sonra tamamen tarayıcınızda çalışır. Tamamen çevrimdışı kullanım için şunları düşünün:
- SQL biçimlendirme için tarayıcı uzantıları
- Biçimlendirme yetenekleri olan masaüstü SQL IDE'leri
- Komut satırı SQL biçimlendirme araçları
Doğrulayıcı, farklı SQL sürümlerini nasıl ele alıyor?
Doğrulayıcı, SQL sürümleri (SQL-92 ve sonrası) arasında yaygın olan sözdizimi unsurlarına odaklanır. En son SQL standartlarına veya özel uzantılara özgü bazı özellikleri tanımayabilir. Sürüm spesifik doğrulama için, veritabanı sağlayıcınız tarafından sağlanan araçları kullanmayı düşünün.
Bu biçimlendiriciyi IDE'me veya iş akışıma entegre edebilir miyim?
Bu web aracı doğrudan entegrasyon sunmasa da, birçok IDE benzer biçimlendirme yeteneklerine sahip eklentiler veya eklentiler aracılığıyla bunu sağlar. Otomatik iş akışları için, komut satırı araçlarını düşünün:
- sqlformat (Python)
- sql-formatter-cli (Node.js)
- pgFormatter (PostgreSQL özel)
Referanslar
- "SQL Stil Kılavuzu" Simon Holywell tarafından. https://www.sqlstyle.guide/
- "SQL Güzel Yazıcı SQL Biçimlendirme Standartları." https://www.sqlshack.com/sql-formatting-standards-sql-pretty-printer/
- "SQL:2016 Standardı." Uluslararası Standardizasyon Örgütü. https://www.iso.org/standard/63555.html
- "SQL Kodunu Biçimlendirme." PostgreSQL Dokümantasyonu. https://www.postgresql.org/docs/current/sql-syntax.html
- "SQL Server T-SQL Biçimlendirme Standartları." Microsoft Dokümantasyonu. https://docs.microsoft.com/en-us/sql/t-sql/
SQL Biçimlendirici ve Doğrulayıcıyı bugün deneyin ve SQL kod kalitenizi, okunabilirliğinizi ve doğruluğunuzu artırın!
Geri Bildirim
Bu araç hakkında geri bildirim vermeye başlamak için geri bildirim toast'una tıklayın
İlgili Araçlar
Çalışma akışınız için faydalı olabilecek daha fazla aracı keşfedin