SQL Sorgu Yazma Promptu (Şema Vererek)
Şemayı vermeden yazdırılan SQL genelde çalışmaz; bu prompt şema, ilişki ve beklenen çıktıyı zorunlu kılar.
Sen veritabanı konusunda deneyimli bir analistsin. Aşağıdaki istek için SQL sorgusu yaz. VERİTABANI: [POSTGRESQL / MYSQL / MSSQL / SQLITE / ORACLE] SÜRÜM: [SÜRÜM] ŞEMA ```sql [TABLO TANIMLARINI YAPIŞTIR — CREATE TABLE veya kısa şema özeti] ``` İLİŞKİLER [ÖRN. orders.user_id → users.id, order_items.order_id → orders.id] İSTEK [NE ÖĞRENMEK İSTİYORSUN — iş diliyle] BEKLENEN ÇIKTI - Sütunlar: [SÜTUN 1], [SÜTUN 2], ... - Satır sayısı: [KAÇ SATIR BEKLİYORSUN] - Sıralama: [HANGİ SÜTUNA GÖRE] ÇIKTI 1) SORGU Okunabilir biçimde yazılmış, çalışır SQL. Girinti ve satır sonları olsun. 2) SORGUYU AÇIKLA Her JOIN, WHERE ve GROUP BY bloğunun ne yaptığını tek satırla açıkla. 3) VARSAYIMLAR Şemadan çıkaramadığın ama sorguda varsaydığın şeyler (null davranışı, tarih dilimi, para birimi). 4) PERFORMANS NOTU Hangi sütunlarda index gerekir, büyük tablolarda neden yavaşlayabilir. 5) ALTERNATİF Aynı sonucu veren farklı bir yaklaşım (varsa) ve hangisinin neden daha iyi olduğu. KURALLAR - SELECT * kullanma, sütunları açıkça yaz. - Tarih ve saat dilimi varsayımı yapıyorsan belirt. - Sorgu veri değiştirmesin; sadece okuma (SELECT) olsun.
02 — Değişkenler
Köşeli parantezleri doldurun
Prompt içindeki renkli alanlar sizin bilginizle değişecek yerlerdir. Hepsini doldurmak zorunda değilsiniz; boş bırakılan alanı model kendi varsayımıyla tamamlar.
[VERİTABANI]
Hangi veritabanı
ör. PostgreSQL [TABLO TANIMLARINI YAPIŞTIR]
Şema
ör. users, orders, order_items [NE ÖĞRENMEK İSTİYORSUN]
İş sorusu
ör. son 30 günde en çok satan 10 ürün [POSTGRESQL / MYSQL / MSSQL / SQLITE / ORACLE]
Prompt içinde doldurulacak alan
[SÜRÜM]
Prompt içinde doldurulacak alan
[SÜTUN 1]
Prompt içinde doldurulacak alan
[SÜTUN 2]
Prompt içinde doldurulacak alan
[KAÇ SATIR BEKLİYORSUN]
Prompt içinde doldurulacak alan
[HANGİ SÜTUNA GÖRE]
Prompt içinde doldurulacak alan
03 — Kullanım
Adım adım nasıl kullanılır?
- 01
Şemayı mutlaka verin; şemasız yazılan SQL'de sütun adları uydurulur.
- 02
Beklenen satır sayısını yazın; sonucu doğrulamanın en hızlı yolu budur.
- 03
Sorguyu küçük bir tarih aralığında test edin, sonra tüm veriye uygulayın.
- 04
Sonucu elle bilinen bir değerle karşılaştırın — özellikle toplamlarda.
04 — Varyasyonlar
Aynı prompt, farklı sonuç
Tek bir prompt her işi çözmez. Aşağıdaki varyasyonlar aynı görevi farklı ton, uzunluk veya formatta ister — duruma göre birini seçin.
Sorgu optimizasyonu
Yavaş sorguyu hızlandırır.
Aşağıdaki SQL sorgusu [SÜRE] sürüyor, [HEDEF] olması gerekiyor. Veritabanı: [DB]. Şema: [ŞEMA]. Sorgu: ```sql [SORGU] ``` Çıktı: (1) yavaşlığın 3 olası nedeni, (2) EXPLAIN ile neye bakmalıyım, (3) yeniden yazılmış sorgu, (4) gerekli index'ler (CREATE INDEX ifadeleriyle), (5) sonuç aynı kalacak mı — nasıl doğrularım.
Sorguyu açıkla
Devraldığınız karmaşık sorgu.
Aşağıdaki SQL sorgusunu satır satır açıkla. Yapı: (1) sorgunun tek cümlelik amacı, (2) her CTE/alt sorgu ne yapıyor, (3) join'lerin mantığı ve hangi satırları elediği, (4) gizli riskler (kartezyen çarpım, null davranışı, tekrarlanan satırlar), (5) sadeleştirilmiş sürümü. ```sql [SORGU] ```
Migration yaz
Şema değişikliği.
[DB] için migration yaz: [DEĞİŞİKLİK — örn. users tablosuna email_verified sütunu ekle]. Çıktı: (1) up migration, (2) down migration (geri alınabilir), (3) mevcut veri ne olacak (varsayılan değer, null izni), (4) kilitlenme riski ve büyük tablolarda güvenli uygulama yöntemi, (5) uygulama kodu bu değişiklikten nasıl etkilenir. Şema: [ŞEMA].
05 — İpuçları
Sonucu bir üst seviyeye taşıyan notlar
- Şemayı vermeden SQL yazdırmak, hayali sütun adlarıyla sonuçlanır — en sık yapılan hata.
- Beklenen satır sayısını yazmak, sessizce yanlış sonuç veren join hatalarını yakalar.
- Üretimde çalıştırmadan önce LIMIT ekleyerek test edin.
06 — Sık sorulanlar
Yazılım ve Kod hakkında sık sorulanlar
Neden SQL sorgum yanlış sonuç veriyor?
En sık üç neden: (1) JOIN türü yanlış (INNER yerine LEFT gerekiyorken INNER kullanmak), (2) GROUP BY sonrası filtrenin WHERE yerine HAVING olması gerektiği, (3) NULL değerlerin karşılaştırmalarda beklenmedik davranması. Prompt bu üçünü ayrı ayrı kontrol eder.
Hangi veritabanı için daha iyi?
PostgreSQL, MySQL ve MSSQL'de çok iyi; aralarındaki sözdizimi farklarını (tarih fonksiyonları, string birleştirme, LIMIT/OFFSET) genelde doğru uygular. Ancak sürüm belirtmek önemli: örneğin PostgreSQL 14 ile 16 arasında fark eden özellikler olabilir.
Üretim veritabanında doğrudan çalıştırabilir miyim?
Hayır. Önce kopya bir ortamda veya LIMIT ile test edin. Yazma sorguları için (UPDATE/DELETE) mutlaka önce SELECT ile aynı koşulu doğrulayın ve transaction içinde çalıştırın.
Devamı
Bunlar da işinize yarar
Kod Yazma Promptu: Temiz, Test Edilebilir Fonksiyon
Belirsiz istek yerine sözleşme tanımlayan kod promptu: dil, sürüm, girdi/çıktı, hata durumları ve testler.
Orta ChatGPTClaudeRegex Üretme Promptu: Test Edilebilir Desen
Regex'i tahminle değil test case'lerle üreten prompt: eşleşmesi ve eşleşmemesi gereken örnekler zorunlu.
Orta ChatGPTClaudeKod Hatası Bulma (Debug) Promptu
“Neden çalışmıyor?” sorusunu sistematik bir teşhise çeviren, hipotez kurduran ve doğrulama adımı isteyen debug promptu.
Orta ChatGPTClaudePython Kod Yazdırma Promptu (Çalışan ve Açıklamalı)
“Bana bir script yaz” demek eksik kod getirir. Bu prompt girdiyi, çıktıyı, hata durumunu ve testi baştan tanımlar.
OrtaBu sayfa CopyPromt editör ekibi tarafından hazırlandı, ilk yayın 24 Ekim 2026. Promptlar modelden bağımsız çalışacak şekilde yazılır; marka adları yalnızca tanımlama amacıyla anılır.