Yazılım Geliştiriciler İçin SQL Sorgusu Yazan Promptlar

müfettiş

Moderatör
Top Poster Of Month
Katılım
20 Ocak 2024
Mesajlar
229
Tepkime puanı
0
Puanları
18
sqlprompt.png

Yapay zeka modelleri (özellikle GPT-4, Claude 3.5 ve özel kodlama modelleri), SQL sözdizimine (syntax) oldukça hakimdir. Ancak bir YZ modelinden "Bana kullanıcıları getiren bir SQL yaz" gibi basit bir istekte bulunmak, çoğu zaman projenizin mimarisine uymayan sonuçlar doğurur. Profesyonel bir geliştirici olarak, YZ’yi bir "SQL Uzmanı" gibi çalıştırmanın yollarını öğrenmelisiniz.

1. Altın Kural: Veritabanı Şemasını (Schema) Tanımlayın​

YZ modelinin tablolar arasındaki ilişkileri bilmesi gerekir. Bir prompt yazarken ilk adım, ilgili tabloların yapısını (DDL) paylaşmaktır.

Neden Önemli? Eğer orders tablosundaki user_id ile users tablosundaki id sütununun ilişkili olduğunu belirtmezseniz, YZ yanlış sütunlar üzerinden JOIN yapabilir.

Örnek Şema Tanımlama Promptu:

"Aşağıdaki SQL şemasına göre çalışmanı istiyorum:

  • users: id (int), name (varchar), email (varchar), created_at (timestamp)
  • orders: id (int), user_id (int), total_price (decimal), status (varchar)
  • order_items: id (int), order_id (int), product_name (varchar), quantity (int)"

2. Karmaşık Sorgular İçin Profesyonel Prompt Kalıpları​

A. JOIN ve Agregasyon Sorguları​

Geliştiricilerin en çok zaman harcadığı alanlardan biri, birden fazla tablodan veri çekip bunları gruplandırmaktır.

Prompt Örneği:

"Verdiğim şemayı kullanarak; son 30 gün içinde toplamda 500 TL'den fazla harcama yapmış kullanıcıların isimlerini, e-posta adreslerini ve toplam harcama miktarlarını getiren bir PostgreSQL sorgusu yaz. Sonuçları harcama miktarına göre azalan sırada sırala."

B. Pencere Fonksiyonları (Window Functions)​

Analitik sorgularda (sıralama, kümülatif toplam vb.) pencere fonksiyonları hayat kurtarır.

Prompt Örneği:

"Her kullanıcının verdiği siparişleri, kendi sipariş geçmişi içinde tarih sırasına göre numaralandıran (row_number) bir SQL sorgusu yaz. Çıktıda kullanıcı adı, sipariş tarihi ve sipariş sırası olmalı."

3. SQL Optimizasyonu ve Performans Promptları​

Bir sorgunun sadece "çalışması" yetmez; hızlı çalışması gerekir. YZ'yi mevcut sorgularınızı iyileştirmek için kullanabilirsiniz.

Prompt Örneği:

"Aşağıdaki SQL sorgusu büyük bir veri kümesinde çok yavaş çalışıyor. Bu sorguyu performans açısından analiz et, gereksiz alt sorguları (subqueries) JOIN veya CTE (Common Table Expressions) ile değiştirerek optimize et:SELECT name FROM users WHERE id IN (SELECT user_id FROM orders WHERE status = 'completed')"

4. Yazılım Güvenliği: SQL Injection Koruması​

Güvenlik, her geliştiricinin önceliğidir. YZ'den sadece SQL değil, bu SQL'i uygulama kodunuzda (Node.js, Python, PHP vb.) nasıl güvenli kullanacağınızı da isteyebilirsiniz.

Prompt Örneği:

"Kullanıcıdan alınan bir email değişkeni ile kullanıcıyı bulan bir SQL sorgusu yaz. Sorguyu SQL Injection riskine karşı korumak için 'Prepared Statements' kullanarak Node.js (pg kütüphanesi) örneğiyle birlikte sun."

5. Veri Manipülasyonu ve DDL İşlemleri (Migration Hazırlığı)​

Yeni bir özellik geliştirirken tablo yapısını değiştirmek veya veri göçü (migration) yapmak gerekir.

Prompt Örneği:

"Mevcut users tablosuna last_login adında bir timestamp sütunu ekleyen ve bu sütunun varsayılan değerini şimdiki zaman yapan bir MySQL ALTER TABLE sorgusu yaz. Ayrıca bu işlemi geri alacak (rollback) sorguyu da ekle."

6. Prompt Mühendisliği İpucu: Çıktı Formatını Belirleyin​

Sadece kodu almak yerine, kodun açıklamasını da isteyerek öğrenme sürecinizi hızlandırın.

Örnek Format Promptu:

"Sorguyu yazarken şu formatı izle:

  1. SQL Kodu (Markdown blok içinde)
  2. Sorgunun mantığının kısa açıklaması
  3. Performans için eklenmesi gereken INDEX önerileri"

7. Yazılım Geliştiriciler İçin "Hazır SQL Prompt" Kütüphanesi​

İşte kopyalayıp kullanabileceğiniz bazı özel senaryolar:

  • Veri Temizleme: "E-posta sütununda mükerrer (duplicate) olan kayıtları bulan ve sadece en eski kaydı tutan bir DELETE sorgusu yaz."
  • İstatistiksel Analiz: "Geçen ayın her günü için toplam satış miktarını ve bir önceki güne göre değişim yüzdesini hesaplayan bir SQL yaz."
  • JSON Veri İşleme: "PostgreSQL'de bir JSONB sütunu içinde saklanan 'tags' dizisinde 'indirim' etiketi bulunan satırları getiren sorguyu yaz."

Dikkat Edilmesi Gerekenler: YZ Yanılabilir!​

Yapay zeka harika bir asistan olsa da, her zaman şu kuralları izleyin:

  1. Üretim (Production) ortamında denemeden önce test edin: YZ bazen var olmayan fonksiyonları uydurabilir.
  2. Diyalekt Seçin: MySQL, PostgreSQL, MS SQL ve SQLite arasında küçük ama kritik farklar vardır. Promptunuzda mutlaka hangi veritabanını kullandığınızı belirtin.
  3. Hassas Verileri Paylaşmayın: Şemanızı paylaşırken gerçek kullanıcı verilerini veya gizli bağlantı bilgilerini asla promptlara eklemeyin.

Sonuç​

Yapay zeka destekli SQL yazımı, geliştiricilerin üzerindeki bilişsel yükü azaltır ve "boilerplate" kod yazma süresini kısaltır. Doğru kurgulanmış bir şema + görev + kısıtlama üçlüsüyle, en karmaşık raporlama sorgularını bile dakikalar içinde hazırlayabilirsiniz.

SQL yazmak artık sadece bir sözdizimi ezberleme işi değil; problemi doğru komutlarla (prompt) ifade edebilme becerisidir. Bu teknikleri kullanarak veritabanı işlemlerinizde %50'den fazla zaman kazanabilirsiniz.
 
Geri
Üst