Generate SQL Query
Deskripsi pake bahasa sehari, AI tulis SQL buat kamu
Jebakan nulis SQL
JOIN 3 tabel, kode jalan data baris jadi 10 kali lipat dari harapan—JOIN mana yang nggak bener? Cari setengah jam baru ketemu relasi many-to-many nggak handle baik.
Subquery nesting 3 layer, nulis selesai sendiri nggak paham. Temen tanya "SQL ini buat apa?", lihat 2 menit bilang "tunggu aku pikir dulu".
Lebih parah masalah performa: satu query jalan 30 detik, EXPLAIN lihat setengah hari juga bingung. Tambahin index malah lebih lambat? Sebetulnya kenapa sih?
Bilang pake bahasa sehari-hari "cari total spending setiap user 30 hari terakhir, sort pake amount dari tinggi ke rendah", OpenClaw auto-generate SQL standard.
Bukan cuma sekedar translate: dia pikirin hubungan antar tabel, skala data, skenario index, SQL yang dihasilkan nggak cuma bener tapi performanya oke.
Ada slow query? Lempar SQL + hasil EXPLAIN, dia bilang bottleneck di mana, index apa yang perlu, gimana rewrite lebih cepat.Seperti ada DBA duduk sebelah siap jawab pertanyaan.
3 Prompt SQL, cover 90% skenario daily
Dari daily data pull sampai performance tune, pakai sesuai butuh.
Database punya tabel berikut:
- users(id, name, email, channel, created_at, status)
- user_profiles(user_id, age, gender, city)
Bantu nulis SQL:
1. Cari user baru tiap hari 30 hari terakhir
2. Group pake channel registrasi (channel)
3. Hitung juga next-day retention rate setiap channel
4. Sort pake tanggal descending
Database MySQL 8.0, tabel users sekitar 5 juta baris.
Kasih juga saran index yang bagus.
SQL ini jalannya 30 detik, tolong optimize:
[Paste slow SQL kamu di sini]
Hasil EXPLAIN:
[Paste output EXPLAIN di sini]
Tolong analisis:
1. Bottleneck di mana (full table scan? temporary table? file sort?)
2. Index apa yang perlu ditambahin (kasih CREATE INDEX statement)
3. Gimana rewrite SQL lebih cepat (ada cara setara tapi lebih efisien?)
4. Perkiraan execution time setelah optimize
Database: PostgreSQL 15, data tabel skala 20 juta baris.
Database punya 3 tabel:
- users(id, name, registered_at)
- orders(id, user_id, product_id, amount, created_at, status)
- products(id, name, category, brand)
Bantu nulis query:
1. Total spending user (cuma order status completed)
2. Kategori paling sering dibeli user (kalau tie ambil pertama)
3. First dan last purchase time setiap user
4. Cuma user yang punya spending 1 tahun terakhir
5. Sort total spending dari tinggi ke rendah, ambil Top 100
Database: MySQL 8.0. Pakai CTE biar SQL lebih readable.
Config Koneksi Database
Opsi OpenClaw langsung connect database query data (optional, nggak perlu config juga bisa generate SQL).
# Database connection (opsi, config ini AI bisa direct query data verify result)
database:
type: mysql # mysql / postgresql / sqlite
host: localhost
port: 3306
database: my_app
user: readonly_user # Highly recommend read-only account!
password_env: DB_PASSWORD # Baca password dari env var, jangan hardcode
# Security limit
read_only: true # Cuma SELECT allowed, modify data nope
max_rows: 10000 # Single query max return rows
timeout: 30 # Query timeout (detik)
# Nggak config database juga okey, AI tetap bisa generate SQL pake deskripsi tabel
# Cuma nggak bisa direct run verify result aja
Nulis SQL: OpenClaw vs ChatGPT
Sama-sama bisa generate SQL, tapi detail beda signifikan.
- Bisa baca database schema, generate SQL match struktur tabel actual
- Bisa direct connect database verify result query (kalau config read-only account)
- Paham konteks: query sebelumnya, relasi tabel inget, follow-up nggak perlu repeat
- Jalankan lokal, struktur tabel + logic bisnis nggak bocor
- Cuma bisa pake deskripsi tabel kamu kasih, tebak-tebakan banyak
- Nggak bisa langsung jalanin SQL verify, syntax bener-salah harus coba sendiri
- Context window terbatas, logic bisnis kompleks diomong terus lupa
- SQL yang dihasilkan sometime syntax bener tapi logic salah, susah trace