The problem
Writing SQL queries is something most developers do frequently, but it can still be slow and repetitive.
Sometimes you just want to ask something simple like:
"show users created this month"
Instead of switching context, checking the schema, and writing the query manually.
I started experimenting with an idea:
What if you could generate SQL queries using natural language?
The idea
The goal was simple:
Describe the query in plain English and automatically generate the SQL.
Example:
Input:
show users created this month
Output:
SELECT *
FROM users
WHERE created_at >= DATE_TRUNC('month', CURRENT_DATE);
The idea is not to replace developers, but to make it faster to:
- explore databases
- generate queries quickly
- understand complex SQL
Challenges
While experimenting with this approach, I ran into several interesting problems.
Schema understanding
The model needs to understand:
- tables
- relationships
- column names
Without that context, the generated SQL can be incorrect.
Complex joins
Queries involving multiple tables are much harder.
For example:
- join conditions
- nested queries
- aggregations
These require much more context.
Ambiguous column names
Many databases have columns like:
- id
- name
- created_at
Without schema awareness, it becomes difficult to determine the correct table.
The experiment
To explore this idea further, I built a small prototype that generates SQL queries from natural language prompts.
You can try it here:
https://chatsql.andersonsinaluisa.com
It can also:
- explain complex SQL queries
- help explore database structures
- assist with query generation
I'm curious about your thoughts
Do you think tools like this can realistically fit into a developer workflow?
Or are they mainly useful for simple queries?
I'd love to hear your feedback.


Top comments (0)