SQL Sorgularını Düzenleme: Daha Okunabilir Veritabanı Kodları
Büyük ve karmaşık SQL sorgularını düzenlemenin, doğru girintileme yapmanın ve okunabilir SQL yazarak ekip içi iş birliğini artırmanın yollarını öğrenin.
Yazılım projelerinde veri tabanı işlemleri (veritabanı sorguları) işin merkezinde yer alır. Küçük projelerde basit SELECT * FROM users sorgusuyla başlayan süreç, proje büyüdükçe yüzlerce satırlık, çoklu JOIN ve SUBQUERY barındıran devasa yapılara dönüşür.
Karmaşıklaşan SQL sorgularını gelişi güzel yazmak; hata ayıklamayı (debugging), performans optimizasyonunu ve ekip içi kod incelemelerini (code review) adeta bir kabusa çevirebilir. Bu rehberde, temiz ve okunabilir SQL yazmanın temel kurallarını ele alacağız.
Okunabilir SQL Yazmanın Altın Kuralları
Temiz SQL yazmak için endüstri standardı haline gelmiş birkaç temel kural vardır:
1. Anahtar Kelimeleri Büyük Harfle Yazın
SQL motoru için fark etmese de, insanlar için sorguyu tararken anahtar kelimeleri ayırt etmek önemlidir. SELECT, FROM, WHERE, JOIN, GROUP BY, ORDER BY gibi SQL komutlarını her zaman büyük harfle yazın. Tablo ve sütun isimlerini ise küçük harfle bırakın.
Kötü:
select name, email from users where status = 'active'
İyi:
SELECT name, email FROM users WHERE status = 'active'
2. Girintileme (Indentation) ve Satır Satır Bölme Kullanın
Tüm sorguyu tek bir satıra yazmaktan kaçının. Her anahtar kelimeyi yeni bir satıra yerleştirin ve sütun isimlerini hizalayın. Birden fazla koşulu içeren WHERE bloklarında, her koşulu yeni bir satırda AND veya OR ile girintileyerek yazın.
Kötü:
SELECT id, name, created_at FROM orders WHERE status = 'pending' AND total_price > 100 ORDER BY created_at DESC;
İyi:
SELECT
id,
name,
created_at
FROM
orders
WHERE
status = 'pending'
AND total_price > 100
ORDER BY
created_at DESC;
3. JOIN ve ON Koşullarını Hizalayın
İlişkisel veritabanlarında tabloları birleştirirken, hangi tablonun hangi alan üzerinden bağlandığını netleştirmek gerekir. JOIN ifadesini ana sorgu seviyesinde, ON koşulunu ise bir sekme içeriden yazmak okunabilirliği ciddi oranda artırır.
SELECT
u.name,
o.order_date,
o.total_amount
FROM
users u
INNER JOIN orders o ON u.id = o.user_id
WHERE
o.status = 'shipped';
SQL Sorgu Formatlayıcı ile Zaman Kazanın
Projelerinizdeki dağınık sorguları tek tek elle düzenlemek, özellikle yüzlerce satırlık sorgularda büyük zaman kaybıdır.
Sitemizde bulunan SQL Sorgu Formatlayıcı aracını kullanarak, dağınık veya sıkıştırılmış (minified) SQL sorgularınızı yapıştırabilir, tek bir tıkla tüm SQL anahtar kelimelerini büyük harfe dönüştürüp kodunuzu standart kurallara uygun şekilde girintili ve temiz bir görünüme kavuşturabilirsiniz. Aracımız doğrudan tarayıcınızda çalışır ve veritabanı şemanıza dair hiçbir bilginin dışarıya sızmasına izin vermez.