# database-query > Execute read-only SQL queries against MySQL/PostgreSQL/OceanBase databases with multi-connection support and defense-in-depth security. - Author: zhuyifan - Repository: kiligzzz/kiligz-skills - Version: 20260124204059 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/kiligzzz/kiligz-skills - Web: https://mule.run/skillshub/@@kiligzzz/kiligz-skills~database-query:20260124204059 --- --- name: database-query description: Execute read-only SQL queries against MySQL/PostgreSQL/OceanBase databases with multi-connection support and defense-in-depth security. author: Claude Code User version: 1.0.0 --- # Database Query Skill Execute read-only SQL queries safely across multiple database connections. ## Natural Language Triggers This skill responds to queries in these patterns: - "连接[数据库名],找到[表名]中[字段名]等于[值]的结果" - "查询[数据库名]的[表名],条件是[字段名]=[值]" - "在[数据库名]执行SQL:[SQL语句]" - "连接[数据库名],执行[SQL查询]" - "从[数据库名]查询[表名]" - "查[数据库名]的[表名]" - "[数据库名]里[表名]的[字段名]=[值]" - "看[数据库名]的[表名]" - "数据库[数据库名]查询" - "连[数据库名]数据库" - "query [数据库名]" Examples: - `连接popbee,找到store_display_task中display_id等于CLXJ2026010031的结果` - `查询popbee的store_display_task,条件是display_id='CLXJ2026010031'` - `在popbee执行SELECT * FROM store_display_task WHERE display_id = 'CLXJ2026010031'` - `查popbee的store_display_task` - `popbee里store_display_task的display_id=CLXJ2026010031` - `看popbee的store_display_task` ## Features - Multi-connection support (MySQL, PostgreSQL, OceanBase) - Read-only query enforcement (SELECT only) - Connection management with config file - Result output in markdown table format ## Usage ### Execute a query (simplified) ```bash # Simple positional arguments query # Example python3 scripts/query.py query popbee "SELECT * FROM store_display_task LIMIT 5" ``` ### Execute a query (flag format) ```bash query --name --query # Example python3 scripts/query.py query --name popbee --query "SELECT COUNT(*) FROM store_display_task" ``` ### Add a database connection ```bash add --name --type --host --port --username --password --database # Example python3 scripts/query.py add --name mydb --type mysql --host localhost --port 3306 --username root --password xxx --database mydb ``` ### List all connections ```bash python3 scripts/query.py list ``` ## Config File Connections are stored in `../../../skills-work/database-query/connections.yaml` (relative to scripts directory): ```yaml connections: mydb: type: mysql host: localhost port: 3306 username: user password: pass database: mydb ``` ## Security Rules - Only SELECT queries are allowed (no INSERT, UPDATE, DELETE, DROP, etc.) - Each connection is isolated by name - Passwords are stored encrypted (base64) - Connection timeout: 30 seconds ## Dependencies Required packages (pymysql, pyyaml) are automatically installed on first run.