SQL Query Generation

Hindi में requirement बोल, AI SQL लिख दे

SQL लिखने की समस्याएं

JOIN wrong हो तो, nested query से सिर घूमता है

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 हो गया? आखिर में कौन सी चीज गड़बड़ है?

OpenClaw: business logic समझो, लिखो reliable SQL

तुम 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 करो।

Daily data pulling: last 30 days new users by channel गोल्डन कमांड
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 भी दे दो।
Daily data pulling सबसे common pattern है। AI को database type (MySQL/PostgreSQL/SQLite) और data volume बता दो, different database में syntax अलग है (date functions), data volume से query strategy बदलता है।
Slow query fix: 30 second query को rescue करो advanced technique
यह 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।
Slow query optimize करते समय EXPLAIN result ज़रूरी है, सिर्फ SQL देखने से real bottleneck पता नहीं चलता। Data volume भी बता दो — 100 rows और 2 crore rows की optimization strategy पूरी तरह अलग होता है।
Complex business query: user spending analysis गोल्डन कमांड
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 अच्छी हो।
Multi-table join + aggregation + ranking, hand-write करने से आसानी से गलती हो जाती है। AI को CTE से लिखवा, readability बहुत अच्छी होती है, requirement change होने पर easy modify कर सकते हो।

Database connection setup

OpenClaw को database से directly connect करवा के data query करवाना optional है (सेटअप न भी करो SQL generate हो सकता है)।

Database connection config (.openclaw.yml)
# 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 नहीं कर सकेगा
⚠️ Production database connect करते समय read-only account ज़रूर use करो। OpenClaw के पास safety limits हैं, लेकिन security में extra layer बेहतर है। Read-only replica से connect करना ideal है, primary database से नहीं।

SQL लिखना: OpenClaw vs ChatGPT

दोनों SQL generate कर सकते हैं, लेकिन details में फर्क है।

OpenClaw
  • 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 नहीं होता
VS
ChatGPT
  • सिर्फ तुम्हारे description के हिसाब SQL बना सकता है, guessing ज्यादा होता है
  • SQL run नहीं कर सकता verify करने के लिए, syntax टेस्ट खुद करना पड़ता है
  • Context window limited है, complex business logic mention करते-करते भूल जाता है
  • Generated SQL कभी syntax तो सही, logic गड़बड़ हो, debug करना मुश्किल

असली situation

Data analyst: boss ने आखिरी minute requirement add की
3 बजे boss message आया: "Recent 3 months के हर channel का ROI check कर, weekly breakdown चाहिए, 5 बजे चाहिए।" तुम्हें table relationship अच्छे से नहीं पता, SQL hand-write में confidence नहीं है।
OpenClaw तरीका
OpenClaw को table structure बता दो, requirement plain English में बोल दो, 2 minute में SQL मिल गया। Database से directly run कर के result verify कर लिया। SQL के हर part का explanation भी ले लिया, खुद भी सीख गया। 4 बजे ही deliver हो गया, advance में।
Self-written SQL
पहले docs खोल के table structure देखो, SQL लिखो, JOIN गड़बड़ हो गई, data wrong आया, 1 घंटा debug करते हो। Finally सही हो गया, तो date function गड़बड़ है। 5 बजे deliver नहीं हो पाया, boss को "आधा घंटा और दे दो" कहना पड़ा।

SQL generation छोटी ट्रिक्स

💡 SQL generate करवाते समय database type (MySQL / PostgreSQL / SQLite), table का approx data volume, existing indexes सब बता दो। तीनों information directly generated SQL quality को affect करता है।
🎯 Complex queries को AI से CTE (WITH clause) से लिखवा, nested subqueries मत करवा। CTE readability बहुत अच्छी होती है, requirement बदलने पर one layer modify कर सकते हो।
🔒 SQL generate होने के बाद, LIMIT 100 add करके पहले test run करो, full-scale query direct मत चलाओ। Especially JOIN multiple tables तो cartesian product हो सकता है, database crash भी हो सकता है।
क्या ये केस आपके काम आया?