technical

Doğal Dilden SQL Üreten Yapay Zeka

Şemayı paylaş, istediğini Türkçe tarif et — Ryna AI optimize edilmiş SQL üretsin. Index önerileri ve performans notları dahil.

4.6Play Store puanıKart gerekmezTR & EN destekli30 saniyede üye ol

Veri analisti, ürün yöneticisi veya backend developer olarak SQL'in size düşman gibi göründüğü anlar var: 6 tablo arası JOIN, window function, CTE'li sorgular… 'PostgreSQL ile MAU trendi' yazmak isterken syntax hatasıyla 20 dakika kayboluyorsunuz. AI burada bir tür 'SQL'i Türkçe konuşmaya çevirir' rolüne giriyor.

Ryna AI şemanızı ister, ihtiyacı düz Türkçe (veya İngilizce) tarif edersiniz, optimize SQL emit eder. PostgreSQL, MySQL, SQLite, SQL Server, BigQuery, Snowflake — hangisini kullandığınızı başta belirtmeniz yeterli; lehçe-spesifik fonksiyonları (LATERAL JOIN, ARRAY_AGG, JSON operatörleri) doğru kullanır. Index önerisi ve performans notları otomatik gelir.

Komplikasyonlu işler için 'bu sorgu 1M row'da ne yapar?' diye sorduğunuzda EXPLAIN ANALYZE çıktısı tahmini, bottleneck noktası ve refactor önerisi sunar. Ücretsiz planda günlük neredeyse sınırsız sorgu; veritabanı şema export'unu (CREATE TABLE statement'ları, ER diagram PDF) yüklemek için Plus (399,99 TL/ay).

Ryna AI ile neden bu iş

6 lehçe desteği: PostgreSQL, MySQL, SQLite, SQL Server, BigQuery, Snowflake — lehçe-spesifik fonksiyon ve syntax.

Doğal dilden sorgu: Türkçe veya İngilizce tarif et, optimize SQL al — JOIN, CTE, window function, subquery.

Index önerisi: 'Bu sorgu 1M row'da yavaşlar — şu kompozit indeksi öner' otomatik analiz.

Performans tahmini: EXPLAIN ANALYZE simulasyonu — bottleneck noktası + refactor önerisi.

Sorgu açıklama: 'Neden bu JOIN?' / 'Bu CTE alternatif olarak nasıl yazılabilir?' interaktif öğrenme.

Hata debugging: Mevcut sorgun + hata mesajını yapıştır → kök neden + düzeltme + benzer hatadan kaçınma ipucu.

Örnek promptlar

Aşağıdaki promptlardan birini kopyalayıp chat.rynaai.com'a yapıştırın. Her prompt farklı bir senaryo için hazırlandı — Ryna AI'nın nasıl uyum sağladığını görmek için hepsini deneyin.

>Şema: orders (id, user_id, total, created_at), users (id, name, country). Son 30 günde Türkiye'den toplam 10000 TL üzeri sipariş veren kullanıcılar — PostgreSQL.
>BigQuery için MAU trendi pivot tablo formatında. Kullanıcı tablosu user_events (user_id, event_at). Son 12 ayı sütun olarak göster.
>Bu sorgu 8 saniye sürüyor [SQL]. EXPLAIN ANALYZE simülasyonu yap, bottleneck'i bul ve index öner.
>RFM (Recency, Frequency, Monetary) müşteri segmentasyonu — Snowflake. customers ve orders şemam: [yapıştır]. Her segment için kullanıcı sayısı.
>Bu hata: 'ERROR: column reference "id" is ambiguous' — sorgu: SELECT id FROM orders JOIN users ON orders.user_id = users.id. Düzelt + neden böyle olduğunu açıkla.
>Window function ile 'her ürün için son 7 günün ortalama satışı' — MySQL 8. Tablo: product_sales (product_id, sale_date, units).

Adım adım nasıl çalışır

  1. 1

    Şemayı net belirt

    CREATE TABLE statement'larını veya tablo açıklaması yapıştır. 'orders (id, user_id, total, created_at)' formatı yeterli, tip belirtmek bonus ('int', 'varchar(100)', 'timestamp'). 4+ tablo varsa ER diagram PDF yükle (Plus).

  2. 2

    Lehçeyi söyle

    'PostgreSQL 15' veya 'MySQL 8' veya 'BigQuery' — lehçe spesifik fonksiyonlar farklı (PG: LATERAL JOIN, BQ: STRUCT, MySQL: JSON_EXTRACT). Lehçe yanlışsa sorgu execute edilemez. Genel SQL gerekirse 'standart ANSI SQL' de.

  3. 3

    İhtiyacı doğal dilde tarif et

    'Son 30 günde en çok harcayan 10 müşteri, ülke filtresiyle' — Ryna bunu CTE + JOIN + ORDER BY LIMIT yapısına çevirir. Performance hint istersen 'bu 5M row'lu tabloda hızlı çalışsın' diye ekle.

  4. 4

    Sorgu açıklaması iste

    'Bu sorguyu satır satır açıkla, neden CTE kullandın, alternatif olarak nasıl yazılabilirdi?' Öğrenme modu — özellikle junior data analist için critical. Birkaç sorguda CTE vs subquery vs window function tradeoff'larını öğrenirsin.

Örnek: girdi → çıktı

Siz sorarsınız

PostgreSQL. orders (id, user_id, total, created_at), users (id, name, country). Son 30 günde Türkiye'den 10000 TL+ harcayan top 10 müşteri.

Ryna AI çıkartır

```sql WITH recent_orders AS ( SELECT o.user_id, SUM(o.total) AS total_spent, COUNT(*) AS order_count FROM orders o WHERE o.created_at >= NOW() - INTERVAL '30 days' GROUP BY o.user_id HAVING SUM(o.total) >= 10000 ) SELECT u.id, u.name, ro.total_spent, ro.order_count FROM recent_orders ro JOIN users u ON u.id = ro.user_id WHERE u.country = 'TR' ORDER BY ro.total_spent DESC LIMIT 10; ``` **Performans notu:** orders.created_at ve orders.user_id üzerinde kompozit index olması önerilir: ```sql CREATE INDEX idx_orders_created_user ON orders (created_at DESC, user_id); ``` **Neden CTE?** Önce filtre + agregasyon yapıyoruz (orders ~5M row varsay), sonra users ile JOIN — sadece kalifiye user'lara JOIN attığı için 70-80% daha az veri taşır. Subquery yerine CTE okunaklılık için.

İpuçları

  • Şemayı 'tip' bilgisiyle ver: 'created_at TIMESTAMP', 'total NUMERIC(10,2)' — Ryna doğru fonksiyonu seçer (DATE_TRUNC vs CAST).
  • Karmaşık sorgularda CTE'lerle parçala — okunaklılık + planner optimizasyon iki yönden faydalı.
  • INDEX önerisi geldiğinde 'production'a uygulamadan önce CREATE INDEX CONCURRENTLY' kullan — aksi takdirde tablo lock olur.
  • Window function (LAG, LEAD, ROW_NUMBER) çoğu zaman GROUP BY + JOIN'den daha hızlı.
  • BigQuery'de 'SELECT *' kullanma — sadece gerekli sütunları seç, billable bytes düşer.
  • EXPLAIN ANALYZE çıktısını yapıştırırsan Ryna gerçek bottleneck'i (Seq Scan vs Index Scan) tespit edip optimize eder.

Ryna AI ile ChatGPT (free) / GitHub Copilot karşılaştırması

ÖzellikRyna AIChatGPT (free) / GitHub Copilot
Lehçe spesifik fonksiyonlar6 lehçenin syntax farkları yerleşikBilir ama lehçe karıştırma sık (PG fonksiyonu MySQL'de)
Performans analiziEXPLAIN simülasyonu + index önerisiGenel; gerçek query plan analizi sınırlı
Şema yükleme (PDF/CSV)Plus ile dahili (399,99 TL/ay)ChatGPT Plus ile mümkün; Copilot'ta yok
Türkçe doğal dil → SQLYerleşik (Türkçe öncelikli geliştirme)Mümkün ama EN'e çevirme katmanı

Sık yapılan hatalar

  • Lehçeyi belirtmeden sorgu istemek — Ryna varsayılan PostgreSQL döner; MySQL'de çalışmazsa şaşırma.
  • SELECT * kullanmak büyük tablolarda — özellikle BigQuery'de billable bytes patlatır.
  • Composite index önerisini test etmeden production'a uygulamak — tablo locking riski.
  • Optimization yapmadan 8+ JOIN'li sorgu yazmak — query planner zorlanır, latency büyür.
  • Schema tip bilgisini paylaşmamak — Ryna varsayım yapar, fonksiyon yanlış seçilebilir (TIMESTAMPTZ vs DATE).
  • 'Bu sorgu yavaş, optimize et' demek hata mesajı veya EXPLAIN olmadan — kör optimization değer üretmez.

Kimler için

Data analistler, ürün yöneticileri, backend geliştiriciler, data scientist'ler.

Sık sorulanlar

Hangi SQL lehçelerini destekliyor?

PostgreSQL (9-16), MySQL (5.7-8.x), SQLite, SQL Server, BigQuery, Snowflake. Redshift ve Oracle için temel destek var ama lehçe-spesifik fonksiyonlar daha sınırlı. Başta lehçeyi belirt.

Production database'ime bağlanıp execute eder mi?

Hayır — Ryna AI sorgu yazar, execute etmez. Çıktıyı kendi DB client'ında (DBeaver, pgAdmin, MySQL Workbench, BigQuery Console) çalıştır. Bu güvenlik avantajı: production'a yanlışlıkla DELETE atılmaz.

PII içeren tablo için sorgu yazmak güvenli mi?

Şema yapısı (sütun adları, tipler) güvenli — gerçek veri içermez. Ama emin olmak için 'email_hash' veya 'pii_redacted' gibi anonim kolon adlarıyla şema paylaş, AI gerçek email pattern'lerine ihtiyaç duymaz.

Mevcut yavaş sorgumu optimize edebilir mi?

Evet — sorguyu + EXPLAIN ANALYZE çıktısı + tablo boyut bilgisi yapıştır. Ryna bottleneck'i tespit eder, refactor önerir, index önerisi verir. Genelde 2-5x hızlanma elde edilir.

Stored procedure veya trigger yazıyor mu?

Evet — 'audit log için trigger yaz, INSERT/UPDATE/DELETE'i users_audit tablosuna kopyalasın' diyebilirsin. Plain SQL, Stored Procedure (PG/MySQL) ve T-SQL (SQL Server) destekli.

ORM (Prisma, TypeORM, SQLAlchemy) kodu üretiyor mu?

Evet — 'Bu PostgreSQL sorgusunu Prisma query API'sinde nasıl yazarım?' diye sorabilirsin. Prisma, TypeORM, SQLAlchemy, Sequelize, Hibernate, Eloquent destekli. Sürüm versiyonunu belirt.

Hata mesajını yapıştırınca düzeltir mi?

Evet — bu en güçlü kullanımlardan biri. Sorgu + tam hata mesajı + (opsiyonel) lehçe + sürüm yapıştır. Ryna kök nedeni açıklar, düzeltilmiş sorgu verir, benzer hatayı önleme ipucu ekler.

Ücretsiz planla limit var mı?

Free planda günlük neredeyse sınırsız mesaj — gün boyu rahatça 100+ sorgu çalıştırabilirsin. Sadece şema PDF veya ER diagram yüklemek için Plus (399,99 TL/ay).

İlgili kullanım alanları

Ücretsiz — sınırsıza yakın günlük mesaj

Kredi kartı gerekmez. 399,99 TL/ay Plus ile görsel analiz, dosya analizi (PDF/Word/Excel), derin düşünme, web araştırması ve asistanlar açılır.