Yazılım ve Kod Orta 3 dk okuma

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.

Çalışır: ChatGPTClaudeGeminiDeepSeek Güncellendi: 24 Ekim 2026
Prompt 1139 karakter · 9 değişken
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?

  1. 01

    Şemayı mutlaka verin; şemasız yazılan SQL'de sütun adları uydurulur.

  2. 02

    Beklenen satır sayısını yazın; sonucu doğrulamanın en hızlı yolu budur.

  3. 03

    Sorguyu küçük bir tarih aralığında test edin, sonra tüm veriye uygulayın.

  4. 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

Bu 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.