Van natuurlijke taal naar SQL, met AI
Deel je schema en beschrijf in gewone taal wat je wilt. Ryna AI schrijft geoptimaliseerde SQL met indextips en performance-aantekeningen.
Try one of these:
Ryna AI Editorial Team · Updated September 1, 2026
Als data-analist, PM of backend-dev heeft SQL momenten waarop het tegen je lijkt te werken: JOINs over 6 tabellen, window functions, queries vol CTE's… Je gaat zitten om de 'MAU-trend in PostgreSQL' te schrijven en verliest 20 minuten aan syntaxfouten. AI vervult hier de rol van 'vertaal gewone taal naar SQL'.
Ryna AI neemt je schema en je verzoek in gewoon Engels (of Nederlands) en levert geoptimaliseerde SQL. PostgreSQL, MySQL, SQLite, SQL Server, BigQuery, Snowflake — noem je dialect vooraf en het gebruikt de juiste functies (LATERAL JOIN, ARRAY_AGG, JSON-operatoren). Indexsuggesties en performancenotities komen er automatisch bij.
Bij complex werk levert de vraag 'hoe schaalt dit naar 1M rijen?' een geschatte EXPLAIN ANALYZE op, plus het aanwijzen van de bottleneck en refactorvoorstellen. Het Free-plan dekt tientallen queries; het uploaden van je DB-schema-export (CREATE TABLE-statements, ER-diagram-PDF's) vereist Plus (399,99 TL/maand).
Why use Ryna AI for this
6 dialecten ondersteund: PostgreSQL, MySQL, SQLite, SQL Server, BigQuery, Snowflake — dialectspecifieke functies en syntaxis.
Natuurlijke taal → SQL: beschrijf het in het Engels of Nederlands en krijg geoptimaliseerde output — JOIN, CTE, window functions, subqueries.
Indexsuggesties: automatische analyse in de trant van 'dit wordt traag bij 1M rijen — voeg deze samengestelde index toe'.
Performanceschatting: gesimuleerde EXPLAIN ANALYZE — bottleneck + refactorvoorstel.
Queryuitleg: 'waarom deze JOIN?' / 'hoe kun je deze CTE herschrijven?' om interactief te leren.
Foutopsporing: plak je query + foutmelding → grondoorzaak + fix + tip om vergelijkbare fouten te voorkomen.
Example prompts
Click any prompt to load it into the box above and run it right here. Each prompt is tuned for a different scenario — try them all to see how Ryna AI adapts.
How it works — step by step
- 1
Geef het schema netjes op
Plak de CREATE TABLE-statements of de tabelbeschrijvingen. 'orders (id, user_id, total, created_at)' is genoeg; types zijn een bonus ('int', 'varchar(100)', 'timestamp'). Vanaf 4 tabellen upload je een ER-diagram als PDF (Plus).
- 2
Noem het dialect
'PostgreSQL 15' of 'MySQL 8' of 'BigQuery' — dialectspecifieke functies verschillen (PG: LATERAL JOIN, BQ: STRUCT, MySQL: JSON_EXTRACT). Met het verkeerde dialect draait het niet. Voor dialectneutraal zeg je 'standaard ANSI SQL'.
- 3
Beschrijf de behoefte in natuurlijke taal
'Top 10 klanten op besteding in de laatste 30 dagen, gefilterd op land' — Ryna maakt daar CTE + JOIN + ORDER BY LIMIT van. Voor performancehints voeg je toe: 'moet snel draaien op een tabel van 5M rijen'.
- 4
Vraag om uitleg
'Loop deze query regel voor regel door, waarom een CTE, hoe zou je hem herschrijven?' Leermodus — cruciaal voor junior analisten. Na een paar queries snap je de afwegingen tussen CTE, subquery en window function.
Example: input → output
You ask
PostgreSQL. orders (id, user_id, total, created_at), users (id, name, country). Top 10 klanten uit de VS die in de laatste 30 dagen meer dan $5K besteedden.
Ryna AI returns
```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) >= 5000 ) 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 = 'US' ORDER BY ro.total_spent DESC LIMIT 10; ``` **Performancenotitie:** een samengestelde index op orders.created_at en orders.user_id is aan te raden: ```sql CREATE INDEX idx_orders_created_user ON orders (created_at DESC, user_id); ``` **Waarom een CTE?** We filteren en aggregeren eerst (aangenomen dat orders ~5M rijen heeft) en joinen daarna met users — zo sleep je 70-80 % minder data mee, omdat je alleen de kwalificerende gebruikers joint. CTE boven subquery vanwege de leesbaarheid.
Pro tips
- Geef het schema met types: 'created_at TIMESTAMP', 'total NUMERIC(10,2)' — dan kiest Ryna de juiste functie (DATE_TRUNC vs CAST).
- Hak complexe queries op in CTE's — dat leest beter en geeft de planner ruimte om te optimaliseren.
- Komen er indexsuggesties, gebruik dan CREATE INDEX CONCURRENTLY voordat je ze in productie toepast — anders gaat de tabel op slot.
- Window functions (LAG, LEAD, ROW_NUMBER) zijn vaak sneller dan GROUP BY + JOIN.
- Doe geen 'SELECT *' op BigQuery — pak alleen de kolommen die je nodig hebt om de gefactureerde bytes te beperken.
- Plak de output van EXPLAIN ANALYZE en Ryna wijst de echte bottleneck aan (Seq Scan vs Index Scan) en optimaliseert.
Ryna AI vs ChatGPT (free) / GitHub Copilot
| Feature | Ryna AI | ChatGPT (free) / GitHub Copilot |
|---|---|---|
| Dialectspecifieke functies | Syntaxverschillen voor 6 dialecten ingebouwd | Kent ze, maar mengt dialecten (PG-functie in MySQL) |
| Performanceanalyse | EXPLAIN-simulatie + indexsuggestie | Generiek; echte analyse van het queryplan is beperkt |
| Schema uploaden (PDF/CSV) | Inbegrepen bij Plus (399,99 TL/maand) | Beschikbaar in ChatGPT Plus; niet in Copilot |
| Nederlandse spreektaal → SQL | Ingebouwd (taalondersteuning vanaf de basis) | Mogelijk, maar voegt een vertaallaag toe |
Common mistakes to avoid
- ✕Een query vragen zonder het dialect te noemen — Ryna gaat standaard uit van PostgreSQL; kijk niet raar op als het in MySQL misgaat.
- ✕SELECT * gebruiken op grote tabellen — zeker op BigQuery jaagt dat de gefactureerde bytes omhoog.
- ✕Een voorgestelde samengestelde index ongetest op productie loslaten — risico dat de tabel op slot gaat.
- ✕Queries met 8 of meer JOINs schrijven zonder optimalisatie — de planner worstelt en de latency loopt op.
- ✕De types uit je schema niet delen — Ryna gokt en kiest mogelijk de verkeerde functie (TIMESTAMPTZ vs DATE).
- ✕Zeggen 'deze query is traag, optimaliseer hem' zonder foutmelding of EXPLAIN — blind optimaliseren kost alleen tijd.
Who this is for
Data-analisten, product managers, backend-developers, data scientists.
FAQ
Welke SQL-dialecten worden ondersteund?
PostgreSQL (9-16), MySQL (5.7-8.x), SQLite, SQL Server, BigQuery, Snowflake. Basisondersteuning voor Redshift en Oracle, maar daar zijn de dialectspecifieke functies beperkter. Noem je dialect vooraf.
Maakt het verbinding met mijn productiedatabase en voert het queries uit?
Nee — Ryna schrijft queries, maar voert ze niet uit. Draai de output in je eigen DB-client (DBeaver, pgAdmin, MySQL Workbench, BigQuery Console). Pluspunt voor de veiligheid: geen per ongeluk uitgevoerde DELETE in productie.
Is het veilig om een schema te delen met tabellen die persoonsgegevens bevatten?
De schemastructuur (kolomnamen, types) is veilig — er zitten geen echte gegevens in. Wil je extra voorzichtig zijn, deel het dan met geanonimiseerde kolomnamen zoals 'email_hash' of 'pii_redacted'. De AI heeft geen echte e-mailpatronen nodig.
Kan het mijn bestaande trage query optimaliseren?
Ja — plak de query + de output van EXPLAIN ANALYZE + informatie over de tabelgrootte. Ryna wijst de bottleneck aan, stelt een refactor voor en adviseert indexen. Typisch 2-5× sneller.
Schrijft het stored procedures of triggers?
Ja — zeg 'schrijf een trigger die INSERT/UPDATE/DELETE naar users_audit kopieert'. Het ondersteunt kale SQL, stored procedures (PG/MySQL) en T-SQL (SQL Server).
Genereert het ORM-code (Prisma, TypeORM, SQLAlchemy)?
Ja — vraag 'hoe schrijf ik deze PostgreSQL-query in de query-API van Prisma?'. Het ondersteunt Prisma, TypeORM, SQLAlchemy, Sequelize, Hibernate en Eloquent. Noem de versie erbij.
Is een foutmelding plakken genoeg om hem opgelost te krijgen?
Ja — een van de sterkste use cases. Plak de query + de volledige foutmelding + (optioneel) dialect en versie. Ryna legt de grondoorzaak uit, geeft de gecorrigeerde query en voegt een tip toe om vergelijkbare fouten te voorkomen.
Zit er een limiet op het gratis plan?
Free heeft tientallen berichten per dag — makkelijk 100+ queries per dag. Alleen het uploaden van een schema-PDF of ER-diagram vereist Plus (399,99 TL/maand).
Related use cases
Free — dozens of daily messages
No credit card. Plus at 399.99 TRY/mo unlocks image analysis, file analysis (PDF/Word/Excel), deep thinking, web research, and assistants.