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 dakikalık okuma
OrtaSQL = "Veri sorma dili"#
ChatGPT SQL üretiminde son derece güçlü. 4 ana kullanım:
- Doğal dilden SQL'e — "Şu soruyu cevaplayan sorgu yaz"
- SQL'i açıkla — "Bu sorgu ne yapıyor adım adım"
- Optimize — "Bu sorgu yavaş, nasıl hızlandırırım"
- 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-- USERSid BIGINT PRIMARY KEYemail TEXT UNIQUEcreated_at TIMESTAMPTZcountry TEXTplan TEXT -- 'free' | 'plus' | 'pro' | 'team' | 'enterprise' -- ORDERSid BIGINT PRIMARY KEYuser_id BIGINT REFERENCES users(id)amount_tl NUMERIC(10,2)status TEXT -- 'pending' | 'paid' | 'refunded'created_at TIMESTAMPTZcurrency TEXT -- 'TL' | 'USD' | 'EUR' -- PRODUCTSid BIGINT PRIMARY KEYsku TEXT UNIQUEname TEXTcategory TEXTprice_tl NUMERIC(10,2) -- ORDER_ITEMSorder_id BIGINT REFERENCES orders(id)product_id BIGINT REFERENCES products(id)quantity INTunit_price_tl NUMERIC(10,2)``` Şimdi her sorgu için:1. SELECT yaz (PostgreSQL syntax)2. Adım adım Türkçe açıkla3. 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...
İlgili İçerikler
Modül 1: Başlangıç ve Temeller
ChatGPT Nedir? Tarihçe, Evrim ve Bugünün Manzarası
Öğrenmeye BaşlaModül 1: Başlangıç ve Temeller
Hesap Açma ve Plan Karşılaştırması: Free, Plus, Pro, Team, Enterprise
Öğrenmeye BaşlaModül 1: Başlangıç ve Temeller