Skip to content

SQL Sorgu Yazımı ve Açıklama

ChatGPT ile doğal dilden SQL'e, mevcut sorguyu açıklama, optimizasyon ve hata bulma.

Şükrü Yusuf KAYA
10 min read
Intermediate
SQL Sorgu Yazımı ve Açıklama

SQL = "Veri sorma dili"#

ChatGPT SQL üretiminde son derece güçlü. 4 ana kullanım:
  1. Doğal dilden SQL'e — "Şu soruyu cevaplayan sorgu yaz"
  2. SQL'i açıkla — "Bu sorgu ne yapıyor adım adım"
  3. Optimize — "Bu sorgu yavaş, nasıl hızlandırırım"
  4. Hata — "Bu sorgu hata veriyor, ne yanlış"
text
Aşağıdaki tablo şemama göre SQL sorguları yazacağım. Her sorguyu yazmadan önce bu şemayı hatırla.
 
```sql
-- USERS
id BIGINT PRIMARY KEY
email TEXT UNIQUE
created_at TIMESTAMPTZ
country TEXT
plan TEXT -- 'free' | 'plus' | 'pro' | 'team' | 'enterprise'
 
-- ORDERS
id BIGINT PRIMARY KEY
user_id BIGINT REFERENCES users(id)
amount_tl NUMERIC(10,2)
status TEXT -- 'pending' | 'paid' | 'refunded'
created_at TIMESTAMPTZ
currency TEXT -- 'TL' | 'USD' | 'EUR'
 
-- PRODUCTS
id BIGINT PRIMARY KEY
sku TEXT UNIQUE
name TEXT
category TEXT
price_tl NUMERIC(10,2)
 
-- ORDER_ITEMS
order_id BIGINT REFERENCES orders(id)
product_id BIGINT REFERENCES products(id)
quantity INT
unit_price_tl NUMERIC(10,2)
```
 
Şimdi her sorgu için:
1. SELECT yaz (PostgreSQL syntax)
2. Adım adım Türkçe açıkla
3. Performance ipucu (index var mı, JOIN sırası vs.)
SQL şema bağlamı — bir kez ver, sonra her sorgu için ona referans.
Prompt:
Soru: "Geçen ayın 'pro' planlı kullanıcılarının ortalama sipariş sayısı nedir?"
ChatGPT yanıt:
SELECT AVG(order_count) AS avg_orders_per_user FROM ( SELECT u.id, COUNT(o.id) AS order_count FROM users u LEFT JOIN orders o ON o.user_id = u.id AND o.created_at >= DATE_TRUNC('month', NOW() - INTERVAL '1 month') AND o.created_at < DATE_TRUNC('month', NOW()) WHERE u.plan = 'pro' GROUP BY u.id ) t;
⚠️ ChatGPT SQL'de hayal görür
Şema vermezsen ChatGPT sütun adı uydurur (column 'user_age' diye yazar — sende öyle bir sütun yok). Şemayı her zaman ver. Custom Instructions'a koymak veya Custom GPT yapmak en sağlam yol (Modül 9).

Özet#

✓ SQL: doğal dil → SQL, açıklama, optimize, hata düzeltme ✓ Şemayı her zaman ver — uydurma kolon riski ✓ EXPLAIN ANALYZE çıktısı vermek = doğru optimize önerisi ✓ Hangi DB'ye (PostgreSQL, MySQL, SQLite) yazacağını belirt — syntax değişebilir
Sıradaki ders: İstatistiksel testler ve yorumlama.

Yorumlar & Soru-Cevap

(0)
Yorum yazmak için giriş yap.
Yorumlar yükleniyor...

Related Content