一、技能目标
- 允许用户提供 MySQL 连接信息(URL、用户名、密码)。
- 对数据进行分析,例如统计销量、趋势、Top N 数据。
- 生成报表(Excel、PDF 或 HTML 可视化表格)。
二、技能输入参数
{ "mysql_url": "jdbc:mysql://host:port/database", "username": "root", "password": "123456", "query": "SELECT * FROM orders"}
三、技能核心步骤
1. 连接 MySQL
- 使用 JDBC(Java)或者 Python
mysql-connector-python 连接数据库。
import mysql.connectordef connect_mysql(url, user, password): conn = mysql.connector.connect( host=url.split("//")[1].split(":")[0], port=int(url.split(":")[2].split("/")[0]), database=url.split("/")[-1], user=user, password=password ) return conn
2. 查询数据
def query_data(conn, sql): cursor = conn.cursor(dictionary=True) cursor.execute(sql) result = cursor.fetchall() cursor.close() return result
3. 数据分析示例
- 假设查询的是小龙虾订单表
orders,字段包含: order_id、product_name、quantity、price、order_date
import pandas as pddef analyze_data(data): df = pd.DataFrame(data) daily_sales = df.groupby('order_date')['quantity'].sum() top_products = df.groupby('product_name')['quantity'].sum().sort_values(ascending=False).head(5) total_revenue = (df['quantity'] * df['price']).sum() return daily_sales, top_products, total_revenue
4. 生成报表
- 可导出 Excel 或生成 HTML 可视化表格:
def generate_report(daily_sales, top_products, total_revenue, file_path="report.xlsx"): with pd.ExcelWriter(file_path) as writer: daily_sales.to_excel(writer, sheet_name='Daily Sales') top_products.to_excel(writer, sheet_name='Top Products') pd.DataFrame({'Total Revenue':[total_revenue]}).to_excel(writer, sheet_name='Revenue')
- 可选:用
matplotlib 或 plotly 生成图表,增强报表可视化。

四、技能调用流程(用户视角)
五、可拓展功能
- 支持多数据库(PostgreSQL、SQL Server)