SQL Query Generation
Hindi में requirement बोल, AI SQL लिख दे
SQL लिखने की समस्याएं
3 tables JOIN, लिखने के बाद result rows expected से 10 गुना ज्यादा आते हैं — कौन सा JOIN गड़बड़ है? आधा घंटा debug करने के बाद पता चलता है many-to-many relationship handle नहीं किया।
3 level nested subquery, खुद जो लिखा वो खुद भी नहीं समझ पाते। Colleague पूछता है "यह SQL क्या करता है", 2 minute सोचने के बाद "wait करो, मुझे याद आने दो"।
और भी crash करने वाली चीज: query 30 सेकंड लगती है, EXPLAIN आधा घंटा देखते हो समझ नहीं आता। Index add किया तो और भी slow हो गया? आखिर में कौन सी चीज गड़बड़ है?
तुम plain English में बोलो "हर user के last 30 days का total spending निकालो, high से low को sort करो", OpenClaw सीधे proper SQL generate करेगा।
सिर्फ simple translation नहीं: table relationships, data volume, existing indexes सब consider करेगा, SQL सिर्फ correct नहीं होगा, performance भी अच्छी होगी।
Slow query मिला? SQL और EXPLAIN result एक साथ दे दो, यह bottleneck बता देगा, कौन सा index add करना, SQL को कैसे rewrite करना।बगल में एक DBA बैठा है लगता है हर सवाल का जवाब।
3 SQL Prompt, daily situation के 90% cover करते हैं
Daily data pulling से performance optimization तक, ज़रूरत के हिसाब use करो।
Database में ये tables हैं:
- users (id, name, email, channel, created_at, status)
- user_profiles (user_id, age, gender, city)
SQL लिख दो:
1. Last 30 days में हर दिन कितने नए users
2. Registration channel से group करो
3. Same time हर channel का next-day retention rate calculate करो
4. Date descending order से sort करो
Database MySQL 8.0 है, users table about 50 लाख rows है।
Index suggestion भी दे दो।
यह SQL 30 second लग रहा है, optimize कर दो:
[paste करो slow SQL]
EXPLAIN result:
[paste करो EXPLAIN output]
Analyze करो:
1. Bottleneck कहां है (full table scan? temp table? file sort?)
2. कौन से indexes add करने चाहिए (CREATE INDEX statement दे)
3. SQL को कैसे rewrite करो ज्यादा efficient (equivalent लेकिन faster)
4. Optimization के बाद execution time estimate करो
Database: PostgreSQL 15, table में about 2 crore rows।
Database में 3 tables हैं:
- users (id, name, registered_at)
- orders (id, user_id, product_id, amount, created_at, status)
- products (id, name, category, brand)
Query लिख दो:
1. हर user का total spending (completed orders ही count)
2. हर user का most-purchased category (tie तो first एक ही लो)
3. हर user का first और last purchase time
4. Last 1 year में spending किए हुए users ही चाहिए
5. Total spending से high से low sort करो, Top 100 चाहिए
Database: MySQL 8.0। CTE (WITH clause) से लिख दो readability अच्छी हो।
Database connection setup
OpenClaw को database से directly connect करवा के data query करवाना optional है (सेटअप न भी करो SQL generate हो सकता है)।
# Database connection (optional, config के बाद AI direct data query कर सकता है result verify करने के लिए)
database:
type: mysql # mysql / postgresql / sqlite
host: localhost
port: 3306
database: my_app
user: readonly_user # Strongly सलाह है read-only account use करो!
password_env: DB_PASSWORD # Environment variable से password पढ़, plain-text नहीं
# Security limits
read_only: true # सिर्फ SELECT, data modify block
max_rows: 10000 # Single query max 10000 rows return
timeout: 30 # Query timeout (seconds)
# Database configure न भी करो, AI तब भी table structure description से SQL बना देगा
# Bas result directly verify नहीं कर सकेगा
SQL लिखना: OpenClaw vs ChatGPT
दोनों SQL generate कर सकते हैं, लेकिन details में फर्क है।
- Database schema पढ़ सकता है, generated SQL actual table structure से perfectly match करता है
- Database से direct connect करके query result verify कर सकता है (read-only account setup के बाद)
- Context याद रहता है: पिछले query, table relationships सब, follow-up में repeat नहीं करना पड़ता
- Local execution, table structure और business logic leak नहीं होता
- सिर्फ तुम्हारे description के हिसाब SQL बना सकता है, guessing ज्यादा होता है
- SQL run नहीं कर सकता verify करने के लिए, syntax टेस्ट खुद करना पड़ता है
- Context window limited है, complex business logic mention करते-करते भूल जाता है
- Generated SQL कभी syntax तो सही, logic गड़बड़ हो, debug करना मुश्किल