API Referansı
Bu belge, SQL Prettify aracının işlevleri ve uygulaması hakkında teknik ayrıntılar sağlar.
Araç Yapılandırması
Biçimlendirme Seçenekleri
Araç aşağıdaki yapılandırma seçeneklerini kabul eder:
interface FormattingOptions {
indentSize: number; // 2, 4, or 8 spaces
keywordCase: "upper" | "lower" | "preserve";
uppercaseKeywords: boolean;
uppercaseFunctions: boolean;
uppercaseDataTypes: boolean;
alignCommas: boolean;
breakBeforeBooleanOperator: boolean;
}
Varsayılan Yapılandırma
const defaultOptions: FormattingOptions = {
indentSize: 2,
keywordCase: "upper",
uppercaseKeywords: true,
uppercaseFunctions: true,
uppercaseDataTypes: true,
alignCommas: false,
breakBeforeBooleanOperator: true,
};
Desteklenen SQL Anahtar Kelimeleri
Veri İşleme Dili (DML)
- SELECT: Tablolardan veri sorgular
- INSERT: Yeni kayıtlar ekler
- UPDATE: Mevcut kayıtları değiştirir
- DELETE: Kayıtları siler
Veri Tanımlama Dili (DDL)
- CREATE: Veritabanı nesneleri oluşturur
- ALTER: Veritabanı nesnelerini değiştirir
- DROP: Veritabanı nesnelerini kaldırır
- TRUNCATE: Bir tablodaki tüm kayıtları kaldırır
Veri Kontrol Dili (DCL)
- GRANT: İzin verir
- REVOKE: İzni geri alır
İşlem Kontrolü
- COMMIT: İşlem değişikliklerini kaydeder
- ROLLBACK: İşlem değişikliklerini geri alır
- SAVEPOINT: Kaydetme noktaları oluşturur
Desteklenen SQL Fonksiyonları
Toplama Fonksiyonları
- COUNT: Satırları veya null olmayan değerleri sayar
- SUM: Değerlerin toplamını hesaplar
- AVG: Değerlerin ortalamasını hesaplar
- MIN: En küçük değeri bulur
- MAX: En büyük değeri bulur
Dize Fonksiyonları
- UPPER: Büyük harfe dönüştürür
- LOWER: Küçük harfe dönüştürür
- LENGTH: Dize uzunluğunu alır
- SUBSTRING: Alt dize çıkarır
- CONCAT: Dizeleri birleştirir
- TRIM: Baştaki/sondaki boşlukları kaldırır
Tarih/Saat Fonksiyonları
- NOW: Geçerli zaman damgasını alır
- DATE: Tarih bölümünü çıkarır
- TIME: Saat bölümünü çıkarır
- YEAR: Yılı çıkarır
- MONTH: Ayı çıkarır
- DAY: Günü çıkarır
Matematiksel Fonksiyonlar
- ROUND: Belirtilen ondalık basamağa yuvarlar
- FLOOR: Aşağı yuvarlar
- CEIL: Yukarı yuvarlar
- ABS: Mutlak değeri alır
- SQRT: Karekök hesaplar
- POWER: Üs alır
Desteklenen Veri Türleri
Sayısal Türler
- INT: Tamsayı değerleri
- INTEGER: Tamsayı değerleri
- BIGINT: Büyük tamsayı değerleri
- SMALLINT: Küçük tamsayı değerleri
- TINYINT: Çok küçük tamsayı değerleri
- DECIMAL: Sabit noktalı ondalık
- NUMERIC: Sabit noktalı ondalık
- FLOAT: Kayan noktalı sayı
- DOUBLE: Çift duyarlıklı kayan noktalı sayı
- REAL: Tek duyarlıklı kayan noktalı sayı
Dize Türleri
- CHAR: Sabit uzunluklu dize
- VARCHAR: Değişken uzunluklu dize
- TEXT: Büyük metin verisi
- BLOB: Büyük ikili nesne
Tarih/Saat Türleri
- DATE: Tarih değerleri
- TIME: Saat değerleri
- DATETIME: Tarih ve saat değerleri
- TIMESTAMP: Zaman damgası değerleri
Diğer Türler
- BOOLEAN: Boole değerleri
- BIT: Bit değerleri
- JSON: JSON verileri
Biçimlendirme Kuralları
Girinti Kuralları
- SELECT Maddeleri: Her sütun yeni satırda ve girintili olur
- FROM Maddeleri: Tablo adları uygun girintiyle yazılır
- JOIN Maddeleri: JOIN koşulları uygun girintiyle yazılır
- WHERE Maddeleri: Koşullar uygun girintiyle yazılır
- GROUP BY: Gruplama sütunları girintili olur
- ORDER BY: Sıralama sütunları girintili olur
Büyük/Küçük Harf Dönüştürme Kuralları
- Anahtar kelimeler: Belirtilen biçime dönüştürülür (upper/lower/preserve)
- Fonksiyonlar: Fonksiyon adları belirtilen biçime dönüştürülür
- Veri türleri: Veri türü adları belirtilen biçime dönüştürülür
- Tanımlayıcılar: Tablo/sütun adlarının özgün harf yapısı korunur
Satır Sonu Kuralları
- Ana maddeler: SELECT, FROM, WHERE, GROUP BY, ORDER BY öncesinde satır kırılır
- JOIN maddeleri: Her JOIN türü öncesinde satır kırılır
- Boole işleçleri: Etkinse AND/OR öncesinde satır kırılır
- Virgül hizalama: Etkinse SELECT listelerinde virgüller hizalanır
Geçmiş Yönetimi
Geçmiş Kaydı Yapısı
interface HistoryRecord {
id: string;
input: string;
output: string;
options: FormattingOptions;
timestamp: number;
}
Geçmiş İşlemleri
- Kayıt Ekle: Yeni biçimlendirme kayıtlarını otomatik ekler
- Kaydı Sil: Belirli geçmiş girdilerini kaldırır
- Geçmişi Temizle: Tüm geçmiş kayıtlarını siler
- Kaydı Yükle: SQL'i ve seçenekleri geçmişten geri yükler
Depolama Sınırları
- Maksimum Kayıt: 50 geçmiş kaydı
- Depolama Konumu: Tarayıcı yerel depolaması
- Kalıcılık: Veriler tarayıcı oturumları arasında korunur
Hata İşleme
Yaygın Hatalar
- Geçersiz SQL Sözdizimi: Hatalı biçimlendirilmiş SQL sorguları
- Desteklenmeyen Yapılar: Biçimlendiricinin desteklemediği SQL özellikleri
- Büyük Sorgular: İşleme sınırlarını aşan sorgular
- Tarayıcı Sınırlamaları: Yerel depolama veya bellek kısıtları
Hata Kurtarma
- Sözdizimi Doğrulama: Temel SQL sözdizimi kontrolü
- Aşamalı Bozulma: Karmaşık sorgular için kısmi biçimlendirme
- Kullanıcı Geri Bildirimi: Açık hata mesajları ve öneriler
- Yedek Seçenekler: Alternatif biçimlendirme yaklaşımları
Performans Hususları
İşleme Sınırları
- Sorgu Boyutu: 10.000 karaktere kadar sorguları işler
- Karmaşıklık: 10 seviyeye kadar iç içe sorguları destekler
- İşleme Süresi: Genellikle sorguları 100 ms altında işler
Optimizasyon Özellikleri
- Artımlı İşleme: Yalnızca değişen bölümleri işler
- Önbellekleme: Tekrarlanan işlemler için biçimlendirme sonuçlarını önbelleğe alır
- Tembel Yükleme: Geçmiş kayıtlarını gerektiğinde yükler
Tarayıcı Uyumluluğu
Desteklenen Tarayıcılar
- Chrome: Sürüm 80+
- Firefox: Sürüm 75+
- Safari: Sürüm 13+
- Edge: Sürüm 80+
Gerekli Özellikler
- ES6 Desteği: Arrow function, template literal
- Local Storage: Tarayıcı yerel depolama API'si
- Clipboard API: Modern pano erişimi
- CSS Grid: Düzen desteği
Entegrasyon
Gömme Seçenekleri
Araç başka uygulamalara entegre edilebilir:
- Iframe Gömme: iframe olarak gömün
- API Entegrasyonu: Biçimlendirme fonksiyonlarını doğrudan kullanın
- Bileşen Entegrasyonu: Vue bileşeni olarak ekleyin
Özelleştirme
- Tema Desteği: Açık ve koyu temalar
- Dil Desteği: Çoklu dil seçenekleri
- Özel Stil: CSS özelleştirme seçenekleri