Simplify SQL querying and troubleshooting for MySQL, PostgreSQL, and SQLite. Use when users ask to inspect schema, convert natural language to SQL, debug SQL...
Data & analysis
MySQL Natural Language Query Assistant
Try ittranslate natural-language analytics requests into mysql queries, connect to a live mysql database, inspect schema and column comments, execute read-only sql...
What it does
translate natural-language analytics requests into mysql queries, connect to a live mysql database, inspect schema and column comments, execute read-only sql...
The skill document
Mysql Query Assistant
Use this skill to turn a user's request into safe MySQL work against a live database.
Core workflow
For every request, follow this sequence:
- Inspect connection prerequisites from
references/connection-and-safety.md. - Discover relevant schema first. Prefer column comments when available.
- Draft the SQL.
- Execute only read-only SQL with
scripts/run_read_query.py. - Perform double validation:
- structural validation: tables, columns, joins, filters, grouping, and syntax match the request.
- result validation: returned rows and aggregates look semantically consistent with the user's intent.
- If validation fails, revise the SQL and run it again.
- Present the final answer using the output template below.
Default behavior
- Prefer
SELECTqueries only. - Never auto-execute
INSERT,UPDATE,DELETE,REPLACE,ALTER,DROP,TRUNCATE,CREATE,GRANT, orREVOKE. - Keep result samples small by default.
- When the request is ambiguous, use schema inspection to narrow candidate tables before writing SQL.
- Prefer explicit column lists over
SELECT *unless schema exploration is the user's goal. - Prefer bounded queries. Add
LIMITwhen the user did not ask for a full extract.
Schema discovery workflow
Before generating SQL, inspect schema with scripts/introspect_schema.py.
Use this order:
- List candidate tables.
- Inspect columns, data types, keys, and column comments for the most relevant tables.
- Infer business meaning from comments and names.
- Only then draft SQL.
If comments are missing, fall back to table names, column names, keys, and a few small probing queries.
Read-only execution workflow
Use scripts/run_read_query.py to execute the SQL.
The script rejects non-read-only statements. It also blocks multi-statement execution.
When verifying a query:
- Run the first candidate SQL.
- Review row count, sample rows, and whether the columns answer the request.
- If the result is empty or suspicious, explain why and try a corrected query when appropriate.
- If multiple interpretations are plausible, prefer the query best supported by schema and results, and say what assumption you made.
Restricted write workflow
When the user asks for a write operation:
- Do not execute the write statement.
- First produce a preview
SELECTthat shows exactly which rows would be affected. - Then produce the write SQL separately.
- Clearly label the write SQL as not executed.
- Call out any missing safety condition such as a weak or absent
WHEREclause.
Output template
Use this structure unless the user asks for a different format.
Final SQL
[final sql]
Validation
- Structural check: [why the sql shape matches the request]
- Result check: [why the returned data seems correct, or why confidence is limited]
Sample results
Show 5 to 20 rows when available and useful. Keep wide tables compact.
Result summary
Provide a brief natural-language summary of what the query shows.
Notes
Include assumptions, caveats, and any schema uncertainties.
Execution details
- Use environment variables described in
references/connection-and-safety.md. - Use
scripts/introspect_schema.pyfor schema discovery. - Use
scripts/run_read_query.pyfor executing read-only SQL. - If the python mysql driver is missing, install one of the documented options before running the scripts.
Examples
Example: analytics request
User request: 统计最近 7 天每天新增用户数
Expected approach:
- Inspect likely user table and created-at column.
- Confirm time column semantics from comments or names.
- Generate grouped date query.
- Run it.
- Verify the date buckets and counts look plausible.
Example: restricted write request
User request: 把 status = 'pending' 且 30 天前创建的订单改成 expired
Expected approach:
- Generate preview
SELECTfor the target rows. - Generate
UPDATESQL separately. - Do not execute the
UPDATE. - Warn if the table lacks a reliable key or if the filter looks too broad.
Related skills
Convert natural language to SQL, explore database schemas, execute queries safely, and get optimization suggestions.
Connect to test-environment MySQL databases for troubleshooting, data verification, schema inspection, and controlled validation queries. Use when the user a...
Support generating SQL queries through natural language; use when users need to configure Text-to-SQL database, manage data topics, or generate SQL with natural language questions
Write, review, and tune SQL across MySQL, SQLite, MariaDB, and SQL Server with safe migrations.
Database architecture design, SQL optimization, schema review and migration planning. AI-delivered service via clawtip verification.