13_Dify中使用工作流构建数据分析助手实战

前言

本文详细介绍了在 Dify 中构建 NLP2SQL(自然语言转 SQL)工作流的完整过程,实现通过自然语言查询 MySQL 数据库并生成可视化图表。首先创建学生成绩表并插入示例数据,随后在 Dify 中配置 Database 插件(含 URI 和 API Key)。工作流包含开始节点、大模型节点(根据用户问题生成多条 SQL)、代码执行节点(解析 JSON)、循环迭代节点(逐条执行 SQL 并汇总结果)、条件分支节点(判断图表类型),最终调用 ECharts 插件生成线型图、柱状图或饼图并回复用户。整个流程融合了 NLU、数据库查询、循环控制与图表渲染,实现了数据智能问答与可视化。

一、需求

二、业务场景

三、创建 MySQL 数据库表

3.1 安装MySQL

Windows下MySQL安装配置,含软件安装包

3.2 创建数据库

执行以下 SQL 语句创建 student_grades 表

sql 复制代码
CREATE TABLE student_grades(
    id INT AUTO_INCREMENT PRIMARY KEY,
    student_id VARCHAR(36) NOT NULL,
    student_name VARCHAR(64) NOT NULL,
    class_name VARCHAR(64) NOT NULL,
    subject VARCHAR(64) NOT NULL,
    score DECIMAL(5,2) NOT NULL,
    exam_date DATE NOT NULL,
    semester VARCHAR(64) NOT NULL,
    grade VARCHAR(64) NOT NULL,
    created_at DATETIME NOT NULL,
    updated_at DATETIME NOT NULL
);

执行以下 INSERT 语句插入数据

sql 复制代码
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00001','王小明','一年级1班','语文',85.50,'2023-11-15','2023-2024-1','一年级','2023-11-16 09:00:00','2023-11-16 09:00:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00001','王小明','一年级1班','数学',92.00,'2023-11-16','2023-2024-1','一年级','2023-11-17 10:30:00','2023-11-17 10:30:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00001','王小明','一年级1班','英语',78.50,'2024-01-08','2023-2024-1','一年级','2024-01-09 08:15:00','2024-01-09 08:15:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00001','王小明','一年级1班','科学',88.00,'2024-04-12','2023-2024-2','一年级','2024-04-13 14:20:00','2024-04-13 14:20:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00001','王小明','一年级1班','道德与法治',95.00,'2024-06-20','2023-2024-2','一年级','2024-06-21 11:00:00','2024-06-21 11:00:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00001','王小明','一年级1班','体育',88.50,'2024-10-18','2024-2025-1','一年级','2024-10-19 15:30:00','2024-10-19 15:30:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00002','李小萌','一年级2班','语文',91.00,'2023-11-14','2023-2024-1','一年级','2023-11-15 09:30:00','2023-11-15 09:30:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00002','李小萌','一年级2班','数学',88.00,'2023-11-16','2023-2024-1','一年级','2023-11-17 10:00:00','2023-11-17 10:00:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00002','李小萌','一年级2班','英语',94.50,'2024-01-09','2023-2024-1','一年级','2024-01-10 08:45:00','2024-01-10 08:45:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00002','李小萌','一年级2班','音乐',89.00,'2024-03-22','2023-2024-2','一年级','2024-03-23 13:20:00','2024-03-23 13:20:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00002','李小萌','一年级2班','美术',96.50,'2024-05-10','2023-2024-2','一年级','2024-05-11 09:15:00','2024-05-11 09:15:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00002','李小萌','一年级2班','体育',85.00,'2024-10-20','2024-2025-1','一年级','2024-10-21 14:10:00','2024-10-21 14:10:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00003','张子轩','二年级1班','语文',82.00,'2023-12-05','2023-2024-1','二年级','2023-12-06 09:00:00','2023-12-06 09:00:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00003','张子轩','二年级1班','数学',76.50,'2023-12-06','2023-2024-1','二年级','2023-12-07 10:30:00','2023-12-07 10:30:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00003','张子轩','二年级1班','英语',69.00,'2024-01-12','2023-2024-1','二年级','2024-01-13 11:15:00','2024-01-13 11:15:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00003','张子轩','二年级1班','科学',90.00,'2024-04-18','2023-2024-2','二年级','2024-04-19 13:40:00','2024-04-19 13:40:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00003','张子轩','二年级1班','道德与法治',84.50,'2024-06-15','2023-2024-2','二年级','2024-06-16 08:50:00','2024-06-16 08:50:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00003','张子轩','二年级1班','体育',91.00,'2024-11-05','2024-2025-1','二年级','2024-11-06 15:00:00','2024-11-06 15:00:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00004','刘雨桐','二年级2班','语文',95.50,'2023-12-03','2023-2024-1','二年级','2023-12-04 09:20:00','2023-12-04 09:20:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00004','刘雨桐','二年级2班','数学',98.00,'2023-12-07','2023-2024-1','二年级','2023-12-08 10:10:00','2023-12-08 10:10:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00004','刘雨桐','二年级2班','英语',87.00,'2024-01-10','2023-2024-1','二年级','2024-01-11 09:05:00','2024-01-11 09:05:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00004','刘雨桐','二年级2班','美术',93.50,'2024-03-28','2023-2024-2','二年级','2024-03-29 14:30:00','2024-03-29 14:30:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00004','刘雨桐','二年级2班','音乐',88.00,'2024-05-22','2023-2024-2','二年级','2024-05-23 10:45:00','2024-05-23 10:45:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00004','刘雨桐','二年级2班','科学',91.50,'2024-11-08','2024-2025-1','二年级','2024-11-09 13:10:00','2024-11-09 13:10:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00005','陈思琪','三年级1班','语文',88.00,'2023-09-25','2023-2024-1','三年级','2023-09-26 08:30:00','2023-09-26 08:30:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00005','陈思琪','三年级1班','数学',79.50,'2023-09-27','2023-2024-1','三年级','2023-09-28 10:20:00','2023-10-28 10:20:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00005','陈思琪','三年级1班','英语',92.00,'2023-12-18','2023-2024-1','三年级','2023-12-19 09:40:00','2023-12-19 09:40:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00005','陈思琪','三年级1班','道德与法治',86.50,'2024-03-15','2023-2024-2','三年级','2024-03-16 11:00:00','2024-03-16 11:00:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00005','陈思琪','三年级1班','体育',94.00,'2024-05-30','2023-2024-2','三年级','2024-05-31 14:50:00','2024-05-31 14:50:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00005','陈思琪','三年级1班','科学',87.50,'2024-10-12','2024-2025-1','三年级','2024-10-13 09:30:00','2024-10-13 09:30:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00006','赵一航','三年级2班','语文',73.00,'2023-09-26','2023-2024-1','三年级','2023-09-27 08:45:00','2023-09-27 08:45:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00006','赵一航','三年级2班','数学',68.50,'2023-09-28','2023-2024-1','三年级','2023-09-29 10:15:00','2023-09-29 10:15:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00006','赵一航','三年级2班','英语',81.00,'2023-12-20','2023-2024-1','三年级','2023-12-21 09:20:00','2023-12-21 09:20:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00006','赵一航','三年级2班','科学',76.00,'2024-03-18','2023-2024-2','三年级','2024-03-19 13:30:00','2024-03-19 13:30:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00006','赵一航','三年级2班','美术',82.50,'2024-06-05','2023-2024-2','三年级','2024-06-06 10:10:00','2024-06-06 10:10:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00006','赵一航','三年级2班','体育',90.00,'2024-10-15','2024-2025-1','三年级','2024-10-16 15:20:00','2024-10-16 15:20:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00007','周若彤','四年级1班','语文',96.00,'2023-10-10','2023-2024-1','四年级','2023-10-11 09:00:00','2023-10-11 09:00:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00007','周若彤','四年级1班','数学',93.50,'2023-10-12','2023-2024-1','四年级','2023-10-13 10:30:00','2023-10-13 10:30:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00007','周若彤','四年级1班','英语',89.00,'2024-01-05','2023-2024-1','四年级','2024-01-06 11:45:00','2024-01-06 11:45:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00007','周若彤','四年级1班','科学',94.00,'2024-03-10','2023-2024-2','四年级','2024-03-11 14:00:00','2024-03-11 14:00:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00007','周若彤','四年级1班','道德与法治',91.50,'2024-05-18','2023-2024-2','四年级','2024-05-19 08:30:00','2024-05-19 08:30:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00007','周若彤','四年级1班','音乐',97.00,'2024-09-22','2024-2025-1','四年级','2024-09-23 13:10:00','2024-09-23 13:10:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00008','吴宇航','四年级2班','语文',74.50,'2023-10-11','2023-2024-1','四年级','2023-10-12 09:15:00','2023-10-12 09:15:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00008','吴宇航','四年级2班','数学',68.00,'2023-10-13','2023-2024-1','四年级','2023-10-14 10:45:00','2023-10-14 10:45:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00008','吴宇航','四年级2班','英语',72.50,'2024-01-07','2023-2024-1','四年级','2024-01-08 09:30:00','2024-01-08 09:30:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00008','吴宇航','四年级2班','体育',85.00,'2024-03-12','2023-2024-2','四年级','2024-03-13 14:20:00','2024-03-13 14:20:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00008','吴宇航','四年级2班','美术',79.00,'2024-05-20','2023-2024-2','四年级','2024-05-21 11:00:00','2024-05-21 11:00:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00008','吴宇航','四年级2班','科学',81.50,'2024-09-25','2024-2025-1','四年级','2024-09-26 15:40:00','2024-09-26 15:40:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00009','郑乐怡','五年级1班','语文',89.00,'2023-11-01','2023-2024-1','五年级','2023-11-02 08:50:00','2023-11-02 08:50:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00009','郑乐怡','五年级1班','数学',94.50,'2023-11-02','2023-2024-1','五年级','2023-11-03 10:20:00','2023-11-03 10:20:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00009','郑乐怡','五年级1班','英语',88.00,'2024-01-15','2023-2024-1','五年级','2024-01-16 09:10:00','2024-01-16 09:10:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00009','郑乐怡','五年级1班','道德与法治',92.00,'2024-04-02','2023-2024-2','五年级','2024-04-03 13:50:00','2024-04-03 13:50:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00009','郑乐怡','五年级1班','科学',87.50,'2024-06-10','2023-2024-2','五年级','2024-06-11 10:30:00','2024-06-11 10:30:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00009','郑乐怡','五年级1班','体育',95.00,'2024-10-08','2024-2025-1','五年级','2024-10-09 14:45:00','2024-10-09 14:45:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00010','林俊杰','五年级2班','语文',62.00,'2023-11-03','2023-2024-1','五年级','2023-11-04 09:05:00','2023-11-04 09:05:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00010','林俊杰','五年级2班','数学',71.50,'2023-11-04','2023-2024-1','五年级','2023-11-05 10:40:00','2023-11-05 10:40:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00010','林俊杰','五年级2班','英语',66.00,'2024-01-16','2023-2024-1','五年级','2024-01-17 09:25:00','2024-01-17 09:25:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00010','林俊杰','五年级2班','美术',74.00,'2024-04-05','2023-2024-2','五年级','2024-04-06 14:15:00','2024-04-06 14:15:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00010','林俊杰','五年级2班','音乐',80.50,'2024-06-12','2023-2024-2','五年级','2024-06-13 11:20:00','2024-06-13 11:20:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00010','林俊杰','五年级2班','体育',84.00,'2024-10-10','2024-2025-1','五年级','2024-10-11 15:10:00','2024-10-11 15:10:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00011','郭静怡','六年级1班','语文',93.00,'2023-09-18','2023-2024-1','六年级','2023-09-19 08:40:00','2023-09-19 08:40:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00011','郭静怡','六年级1班','数学',97.50,'2023-09-20','2023-2024-1','六年级','2023-09-21 10:25:00','2023-09-21 10:25:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00011','郭静怡','六年级1班','英语',91.00,'2023-12-11','2023-2024-1','六年级','2023-12-12 09:35:00','2023-12-12 09:35:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00011','郭静怡','六年级1班','科学',95.00,'2024-03-05','2023-2024-2','六年级','2024-03-06 13:45:00','2024-03-06 13:45:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00011','郭静怡','六年级1班','道德与法治',98.00,'2024-05-25','2023-2024-2','六年级','2024-05-26 10:05:00','2024-05-26 10:05:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00011','郭静怡','六年级1班','音乐',96.50,'2024-09-15','2024-2025-1','六年级','2024-09-16 14:30:00','2024-09-16 14:30:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00012','唐雅静','六年级2班','语文',84.00,'2023-09-19','2023-2024-1','六年级','2023-09-20 09:10:00','2023-09-20 09:10:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00012','唐雅静','六年级2班','数学',79.50,'2023-09-21','2023-2024-1','六年级','2023-09-22 10:50:00','2023-09-22 10:50:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00012','唐雅静','六年级2班','英语',86.00,'2023-12-13','2023-2024-1','六年级','2023-12-14 09:15:00','2023-12-14 09:15:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00012','唐雅静','六年级2班','体育',88.50,'2024-03-07','2023-2024-2','六年级','2024-03-08 14:00:00','2024-03-08 14:00:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00012','唐雅静','六年级2班','美术',82.00,'2024-05-28','2023-2024-2','六年级','2024-05-29 11:10:00','2024-05-29 11:10:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00012','唐雅静','六年级2班','科学',90.50,'2024-09-18','2024-2025-1','六年级','2024-09-19 15:30:00','2024-09-19 15:30:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00013','孙浩然','一年级1班','语文',78.50,'2024-11-02','2024-2025-1','一年级','2024-11-03 09:00:00','2024-11-03 09:00:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00013','孙浩然','一年级1班','数学',82.00,'2024-11-05','2024-2025-1','一年级','2024-11-06 10:20:00','2024-11-06 10:20:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00013','孙浩然','一年级1班','英语',75.50,'2025-01-08','2024-2025-1','一年级','2025-01-09 11:30:00','2025-01-09 11:30:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00013','孙浩然','一年级1班','美术',88.00,'2025-03-15','2024-2025-2','一年级','2025-03-16 14:10:00','2025-03-16 14:10:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00013','孙浩然','一年级1班','体育',92.50,'2025-05-20','2024-2025-2','一年级','2025-05-21 08:45:00','2025-05-21 08:45:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00014','宋佳怡','一年级2班','语文',94.00,'2024-11-03','2024-2025-1','一年级','2024-11-04 09:25:00','2024-11-04 09:25:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00014','宋佳怡','一年级2班','数学',90.50,'2024-11-06','2024-2025-1','一年级','2024-11-07 10:40:00','2024-11-07 10:40:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00014','宋佳怡','一年级2班','科学',86.00,'2025-01-10','2024-2025-1','一年级','2025-01-11 09:50:00','2025-01-11 09:50:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00014','宋佳怡','一年级2班','音乐',93.00,'2025-03-18','2024-2025-2','一年级','2025-03-19 13:30:00','2025-03-19 13:30:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00014','宋佳怡','一年级2班','道德与法治',89.50,'2025-05-22','2024-2025-2','一年级','2025-05-23 11:15:00','2025-05-23 11:15:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00015','徐子涵','二年级1班','语文',81.00,'2024-10-25','2024-2025-1','二年级','2024-10-26 08:35:00','2024-10-26 08:35:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00015','徐子涵','二年级1班','数学',77.50,'2024-10-28','2024-2025-1','二年级','2024-10-29 10:15:00','2024-10-29 10:15:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00015','徐子涵','二年级1班','英语',69.00,'2025-01-05','2024-2025-1','二年级','2025-01-06 09:40:00','2025-01-06 09:40:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00015','徐子涵','二年级1班','体育',86.50,'2025-03-22','2024-2025-2','二年级','2025-03-23 14:50:00','2025-03-23 14:50:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00015','徐子涵','二年级1班','科学',83.00,'2025-05-10','2024-2025-2','二年级','2025-05-11 10:10:00','2025-05-11 10:10:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00016','黄子韬','二年级2班','语文',72.00,'2024-10-26','2024-2025-1','二年级','2024-10-27 09:05:00','2024-10-27 09:05:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00016','黄子韬','二年级2班','数学',65.50,'2024-10-29','2024-2025-1','二年级','2024-10-30 10:30:00','2024-10-30 10:30:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00016','黄子韬','二年级2班','美术',78.00,'2025-01-07','2024-2025-1','二年级','2025-01-08 09:20:00','2025-01-08 09:20:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00016','黄子韬','二年级2班','音乐',81.50,'2025-03-25','2024-2025-2','二年级','2025-03-26 13:40:00','2025-03-26 13:40:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00016','黄子韬','二年级2班','道德与法治',74.00,'2025-05-12','2024-2025-2','二年级','2025-05-13 11:25:00','2025-05-13 11:25:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00017','马伊琍','三年级1班','语文',87.00,'2024-09-30','2024-2025-1','三年级','2024-10-01 08:50:00','2024-10-01 08:50:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00017','马伊琍','三年级1班','数学',91.50,'2024-10-02','2024-2025-1','三年级','2024-10-03 10:45:00','2024-10-03 10:45:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00017','马伊琍','三年级1班','英语',84.00,'2024-12-18','2024-2025-1','三年级','2024-12-19 09:30:00','2024-12-19 09:30:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00017','马伊琍','三年级1班','科学',89.50,'2025-03-10','2024-2025-2','三年级','2025-03-11 14:20:00','2025-03-11 14:20:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00017','马伊琍','三年级1班','体育',93.00,'2025-05-28','2024-2025-2','三年级','2025-05-29 10:05:00','2025-05-29 10:05:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00018','朱亚文','三年级2班','语文',68.50,'2024-10-01','2024-2025-1','三年级','2024-10-02 09:15:00','2024-10-02 09:15:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00018','朱亚文','三年级2班','数学',73.00,'2024-10-03','2024-2025-1','三年级','2024-10-04 10:20:00','2024-10-04 10:20:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00018','朱亚文','三年级2班','英语',70.50,'2024-12-20','2024-2025-1','三年级','2024-12-21 09:40:00','2024-12-21 09:40:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00018','朱亚文','三年级2班','美术',77.00,'2025-03-12','2024-2025-2','三年级','2025-03-13 13:30:00','2025-03-13 13:30:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00018','朱亚文','三年级2班','音乐',82.50,'2025-05-30','2024-2025-2','三年级','2025-05-31 11:00:00','2025-05-31 11:00:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00019','秦海璐','四年级1班','语文',95.00,'2024-10-15','2024-2025-1','四年级','2024-10-16 08:30:00','2024-10-16 08:30:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00019','秦海璐','四年级1班','数学',98.00,'2024-10-17','2024-2025-1','四年级','2024-10-18 10:00:00','2024-10-18 10:00:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00019','秦海璐','四年级1班','英语',92.50,'2025-01-12','2024-2025-1','四年级','2025-01-13 09:45:00','2025-01-13 09:45:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00019','秦海璐','四年级1班','科学',96.00,'2025-03-28','2024-2025-2','四年级','2025-03-29 14:15:00','2025-03-29 14:15:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00019','秦海璐','四年级1班','道德与法治',94.50,'2025-06-05','2024-2025-2','四年级','2025-06-06 10:30:00','2025-06-06 10:30:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00020','顾佳佳','四年级2班','语文',79.00,'2024-10-16','2024-2025-1','四年级','2024-10-17 09:10:00','2024-10-17 09:10:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00020','顾佳佳','四年级2班','数学',74.50,'2024-10-18','2024-2025-1','四年级','2024-10-19 10:35:00','2024-10-19 10:35:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00020','顾佳佳','四年级2班','英语',81.00,'2025-01-14','2024-2025-1','四年级','2025-01-15 09:25:00','2025-01-15 09:25:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00020','顾佳佳','四年级2班','体育',88.00,'2025-03-30','2024-2025-2','四年级','2025-03-31 13:55:00','2025-03-31 13:55:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00020','顾佳佳','四年级2班','美术',85.50,'2025-06-07','2024-2025-2','四年级','2025-06-08 11:20:00','2025-06-08 11:20:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00021','欧阳娜娜','五年级1班','语文',90.00,'2024-11-10','2024-2025-1','五年级','2024-11-11 08:45:00','2024-11-11 08:45:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00021','欧阳娜娜','五年级1班','数学',93.50,'2024-11-12','2024-2025-1','五年级','2024-11-13 10:25:00','2024-11-13 10:25:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00021','欧阳娜娜','五年级1班','英语',87.00,'2025-01-20','2024-2025-1','五年级','2025-01-21 09:35:00','2025-01-21 09:35:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00021','欧阳娜娜','五年级1班','科学',91.00,'2025-04-08','2024-2025-2','五年级','2025-04-09 14:40:00','2025-04-09 14:40:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00021','欧阳娜娜','五年级1班','音乐',96.00,'2025-06-15','2024-2025-2','五年级','2025-06-16 10:15:00','2025-06-16 10:15:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00022','慕容云海','五年级2班','语文',63.00,'2024-11-11','2024-2025-1','五年级','2024-11-12 09:05:00','2024-11-12 09:05:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00022','慕容云海','五年级2班','数学',59.50,'2024-11-13','2024-2025-1','五年级','2024-11-14 10:50:00','2024-11-14 10:50:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00022','慕容云海','五年级2班','英语',67.00,'2025-01-22','2024-2025-1','五年级','2025-01-23 09:15:00','2025-01-23 09:15:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00022','慕容云海','五年级2班','体育',72.50,'2025-04-10','2024-2025-2','五年级','2025-04-11 13:45:00','2025-04-11 13:45:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00022','慕容云海','五年级2班','道德与法治',68.00,'2025-06-17','2024-2025-2','五年级','2025-06-18 11:30:00','2025-06-18 11:30:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00023','令狐嫣然','六年级1班','语文',86.50,'2024-09-22','2024-2025-1','六年级','2024-09-23 08:55:00','2024-09-23 08:55:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00023','令狐嫣然','六年级1班','数学',90.00,'2024-09-24','2024-2025-1','六年级','2024-09-25 10:10:00','2024-09-25 10:10:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00023','令狐嫣然','六年级1班','英语',94.50,'2024-12-05','2024-2025-1','六年级','2024-12-06 09:20:00','2024-12-06 09:20:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00023','令狐嫣然','六年级1班','科学',88.00,'2025-03-05','2024-2025-2','六年级','2025-03-06 14:25:00','2025-03-06 14:25:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00023','令狐嫣然','六年级1班','美术',92.50,'2025-05-15','2024-2025-2','六年级','2025-05-16 10:40:00','2025-05-16 10:40:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00024','东方婉儿','六年级2班','语文',82.00,'2024-09-23','2024-2025-1','六年级','2024-09-24 09:30:00','2024-09-24 09:30:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00024','东方婉儿','六年级2班','数学',78.50,'2024-09-25','2024-2025-1','六年级','2024-09-26 10:45:00','2024-09-26 10:45:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00024','东方婉儿','六年级2班','英语',85.00,'2024-12-07','2024-2025-1','六年级','2024-12-08 09:10:00','2024-12-08 09:10:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00024','东方婉儿','六年级2班','音乐',89.50,'2025-03-07','2024-2025-2','六年级','2025-03-08 13:35:00','2025-03-08 13:35:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00024','东方婉儿','六年级2班','体育',91.00,'2025-05-18','2024-2025-2','六年级','2025-05-19 11:05:00','2025-05-19 11:05:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00025','西门小雪','一年级1班','语文',87.50,'2024-10-28','2024-2025-1','一年级','2024-10-29 09:15:00','2024-10-29 09:15:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00025','西门小雪','一年级1班','数学',84.00,'2024-10-30','2024-2025-1','一年级','2024-10-31 10:25:00','2024-10-31 10:25:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00025','西门小雪','一年级1班','英语',79.50,'2025-01-18','2024-2025-1','一年级','2025-01-19 09:40:00','2025-01-19 09:40:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00025','西门小雪','一年级1班','科学',90.00,'2025-03-20','2024-2025-2','一年级','2025-03-21 14:30:00','2025-03-21 14:30:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00025','西门小雪','一年级1班','体育',86.50,'2025-06-02','2024-2025-2','一年级','2025-06-03 10:50:00','2025-06-03 10:50:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00026','杨超越','一年级2班','语文',92.00,'2024-10-29','2024-2025-1','一年级','2024-10-30 08:40:00','2024-10-30 08:40:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00026','杨超越','一年级2班','数学',95.50,'2024-10-31','2024-2025-1','一年级','2024-11-01 10:05:00','2024-11-01 10:05:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00026','杨超越','一年级2班','英语',88.00,'2025-01-19','2024-2025-1','一年级','2025-01-20 09:50:00','2025-01-20 09:50:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00026','杨超越','一年级2班','美术',96.00,'2025-03-22','2024-2025-2','一年级','2025-03-23 13:15:00','2025-03-23 13:15:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00026','杨超越','一年级2班','道德与法治',91.50,'2025-06-04','2024-2025-2','一年级','2025-06-05 11:10:00','2025-06-05 11:10:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00027','白敬亭','二年级1班','语文',75.00,'2024-11-20','2024-2025-1','二年级','2024-11-21 09:00:00','2024-11-21 09:00:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00027','白敬亭','二年级1班','数学',70.50,'2024-11-22','2024-2025-1','二年级','2024-11-23 10:20:00','2024-11-23 10:20:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00027','白敬亭','二年级1班','英语',66.00,'2025-01-25','2024-2025-1','二年级','2025-01-26 09:30:00','2025-01-26 09:30:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00027','白敬亭','二年级1班','音乐',73.50,'2025-03-28','2024-2025-2','二年级','2025-03-29 14:10:00','2025-03-29 14:10:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00027','白敬亭','二年级1班','科学',80.00,'2025-06-10','2024-2025-2','二年级','2025-06-11 10:25:00','2025-06-11 10:25:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00028','江疏影','二年级2班','语文',88.00,'2024-11-21','2024-2025-1','二年级','2024-11-22 08:55:00','2024-11-22 08:55:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00028','江疏影','二年级2班','数学',84.50,'2024-11-23','2024-2025-1','二年级','2024-11-24 10:35:00','2024-11-24 10:35:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00028','江疏影','二年级2班','英语',90.00,'2025-01-26','2024-2025-1','二年级','2025-01-27 09:45:00','2025-01-27 09:45:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00028','江疏影','二年级2班','体育',82.50,'2025-03-30','2024-2025-2','二年级','2025-03-31 13:40:00','2025-03-31 13:40:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00028','江疏影','二年级2班','美术',87.00,'2025-06-12','2024-2025-2','二年级','2025-06-13 11:35:00','2025-06-13 11:35:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00029','胡一天','三年级1班','语文',83.50,'2024-10-05','2024-2025-1','三年级','2024-10-06 09:10:00','2024-10-06 09:10:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00029','胡一天','三年级1班','数学',79.00,'2024-10-07','2024-2025-1','三年级','2024-10-08 10:40:00','2024-10-08 10:40:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00029','胡一天','三年级1班','英语',85.50,'2025-01-02','2024-2025-1','三年级','2025-01-03 09:25:00','2025-01-03 09:25:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00029','胡一天','三年级1班','科学',81.00,'2025-03-15','2024-2025-2','三年级','2025-03-16 14:20:00','2025-03-16 14:20:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00029','胡一天','三年级1班','道德与法治',77.50,'2025-05-25','2024-2025-2','三年级','2025-05-26 10:00:00','2025-05-26 10:00:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00030','沈梦辰','三年级2班','语文',97.00,'2024-10-06','2024-2025-1','三年级','2024-10-07 08:35:00','2024-10-07 08:35:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00030','沈梦辰','三年级2班','数学',99.50,'2024-10-08','2024-2025-1','三年级','2024-10-09 10:15:00','2024-10-09 10:15:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00030','沈梦辰','三年级2班','英语',93.00,'2025-01-04','2024-2025-1','三年级','2025-01-05 09:55:00','2025-01-05 09:55:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00030','沈梦辰','三年级2班','体育',95.00,'2025-03-17','2024-2025-2','三年级','2025-03-18 13:50:00','2025-03-18 13:50:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00030','沈梦辰','三年级2班','音乐',98.00,'2025-05-27','2024-2025-2','三年级','2025-05-28 11:15:00','2025-05-28 11:15:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00001','王小明','一年级1班','美术',89.00,'2025-03-25','2024-2025-2','一年级','2025-03-26 14:30:00','2025-03-26 14:30:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00002','李小萌','一年级2班','科学',92.50,'2025-03-26','2024-2025-2','一年级','2025-03-27 09:15:00','2025-03-27 09:15:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00003','张子轩','二年级1班','音乐',78.00,'2025-03-27','2024-2025-2','二年级','2025-03-28 10:45:00','2025-03-28 10:45:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00004','刘雨桐','二年级2班','道德与法治',96.00,'2025-03-28','2024-2025-2','二年级','2025-03-29 13:20:00','2025-03-29 13:20:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00005','陈思琪','三年级1班','英语',84.00,'2025-03-29','2024-2025-2','三年级','2025-03-30 11:10:00','2025-03-30 11:10:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00006','赵一航','三年级2班','数学',71.00,'2025-03-30','2024-2025-2','三年级','2025-03-31 14:40:00','2025-03-31 14:40:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00007','周若彤','四年级1班','体育',97.00,'2025-03-31','2024-2025-2','四年级','2025-04-01 09:30:00','2025-04-01 09:30:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00008','吴宇航','四年级2班','语文',69.50,'2025-04-01','2024-2025-2','四年级','2025-04-02 10:20:00','2025-04-02 10:20:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00009','郑乐怡','五年级1班','数学',96.00,'2025-04-02','2024-2025-2','五年级','2025-04-03 13:55:00','2025-04-03 13:55:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00010','林俊杰','五年级2班','科学',75.00,'2025-04-03','2024-2025-2','五年级','2025-04-04 11:25:00','2025-04-04 11:25:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00011','郭静怡','六年级1班','英语',94.00,'2025-04-04','2024-2025-2','六年级','2025-04-05 14:15:00','2025-04-05 14:15:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00012','唐雅静','六年级2班','数学',82.50,'2025-04-05','2024-2025-2','六年级','2025-04-06 09:05:00','2025-04-06 09:05:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00013','孙浩然','一年级1班','英语',80.00,'2025-04-06','2024-2025-2','一年级','2025-04-07 10:30:00','2025-04-07 10:30:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00014','宋佳怡','一年级2班','体育',94.50,'2025-04-07','2024-2025-2','一年级','2025-04-08 13:40:00','2025-04-08 13:40:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00015','徐子涵','二年级1班','数学',74.00,'2025-04-08','2024-2025-2','二年级','2025-04-09 11:15:00','2025-04-09 11:15:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00016','黄子韬','二年级2班','语文',67.50,'2025-04-09','2024-2025-2','二年级','2025-04-10 14:50:00','2025-04-10 14:50:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00017','马伊琍','三年级1班','英语',86.00,'2025-04-10','2024-2025-2','三年级','2025-04-11 09:20:00','2025-04-11 09:20:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00018','朱亚文','三年级2班','科学',73.50,'2025-04-11','2024-2025-2','三年级','2025-04-12 10:10:00','2025-04-12 10:10:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00019','秦海璐','四年级1班','数学',97.00,'2025-04-12','2024-2025-2','四年级','2025-04-13 13:30:00','2025-04-13 13:30:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00020','顾佳佳','四年级2班','英语',83.50,'2025-04-13','2024-2025-2','四年级','2025-04-14 11:40:00','2025-04-14 11:40:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00021','欧阳娜娜','五年级1班','科学',92.00,'2025-04-14','2024-2025-2','五年级','2025-04-15 14:25:00','2025-04-15 14:25:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00022','慕容云海','五年级2班','英语',64.50,'2025-04-15','2024-2025-2','五年级','2025-04-16 09:35:00','2025-04-16 09:35:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00023','令狐嫣然','六年级1班','数学',91.00,'2025-04-16','2024-2025-2','六年级','2025-04-17 10:50:00','2025-04-17 10:50:00');
INSERT INTO student_grades (student_id, student_name, class_name, subject, score, exam_date, semester, grade, created_at, updated_at) VALUES ('STU00024','东方婉儿','六年级2班','语文',84.00,'2025-04-17','2024-2025-2','六年级','2025-04-18 13:15:00','2025-04-18 13:15:00');

四、NLP2SQL 数据库查询图表工作流

4.1 基本介绍

NLP2SQL(或称Text2SQL)是一种自然语言处理技术,旨在将自然语言问题转化为关系型数据库中可执行的结构化查询语言(Structured Query Language, SQL),从而实现对数据库的查询和交互。这项技术的核心目标是通过自然语言描述,无需用户具备SQL语法知识,即可完成复杂的数据库查询任务。

4.2 安装工具

需要提前安装的工具:时间工具、ECharts图表生成、database

注意:安装完成 Database 插件后,需要进行 API_Key 的配置

注意:数据库URI的配置

bash 复制代码
# password为数据库密码,database为数据库名称
mysql+pymysql://root:password@host.docker.internal:3306/database

保存

4.3 创建工作流

创建空白应用

添加对话工作流信息

创建对话工作流

4.4 开始节点

接收用户输入的问题,默认即可,无需修改

4.5 大模型节点

作用:根据用户提出的问题,生成SQL查询数组

系统提示词

text 复制代码
## 角色
你是一个专业的SQL查询生成器,负责根据用户查询创建标准的MySQL数据库SQL语句。

## 任务
根据以下问题,生成一个格式清晰、结构明确的JSON数组,其中每个元素是一条合法且性能优化的MySQL查询语句。

## 表信息
表名:student_grades (学生成绩信息表)

### 字段说明
- id:主键
- student_id:学号
- student_name:学生姓名
- class_name:班级
- subject:科目
- score:分数
- exam_date:考试日期
- semester:学期
- grade:年级
- created_at:记录创建时间
- updated_at:记录更新时间

### 输出要求
1. 根据用户的问题,生成最多10条直接关联问题的SQL查询语句。
2. 每条SQL应从不同分析角度(如按科目、班级、学期、年级等维度)切入,确保覆盖多维统计需求。
3. 所有SQL必须语法正确、可执行,并注重性能优化(如避免SELBCT*,合理使用索引字段等)。
4. 若问题涉及多维统计(例如"各班各科平均分"),请为每个统计维度单独生成子查询。
5. 对于全量数据查询,必须按semester (学期) 进行聚合或排序。
6.最终输出必须是纯JSON数组格式,以 ```json 开头,以 ```结尾,不包含任何额外解释或文本,其中每个元素必须是对象,且仅包含一个字段: `"sq1"`** (字符串类型),格式示例:
   ```json
   [
     {"sql":"SELECT ...;"},
     {"sql":"SELECT ...;"}
   ]
   ```

请严格按照上述格式和要求生成响应

用户提示词(主要给一下大模型一个用户提示词样例)

text 复制代码
查询全校各科目平均分情况

assistant提示词

text 复制代码
```json
[
  {
    "title": "统计全校各科目平均分",
    "sql": "SELECT subject, ROUND(AVG(score),2) As avg_score FROM student_scores GROUP BY subject ORDER BY avg_score DESC;"
  },
  {
    "title": "统计各科目及格率",
    "sql": "SELECT subect, ROUND(COUNT(CASE WHEN score >= 60 THEN 1 END) * 100.0 / COUNT(*), 2)as pass_rate FROM student_scores GROUP BY subject ORDER BY pass_rate DESC;"
  },
  {
    "title": "统计各科目成绩分布",
    "sql": "SELECT subject, COUNT(CASE WHEN score >= 90 THEN 1 END) as excellent, COUNT(CASE WHEN score >= 75 AND score < 9O THEN 1 END) as good, COUNT(CASE WHEN score 60 AND score < 75 THEN 1 END) AS pass, COUNT(CASE WHEN score < 60 THEN 1 END) as fail FROM student scores GROUP BY subiect;"
  }
]
```

用户输入

text 复制代码
用户问题:/{x}query

测试效果

4.6 直接回复节点

作用:对大模型生成的SQL语句提出提示:SQL正在生成中

text 复制代码
### SQL正在生成中

4.7 代码执行节点

作用:从大模型输出的字符串中提取和解析JSON数据,返回字典形式

python 复制代码
# 导入正则表达式模块,用于字符申模式匹配
import re

# 导入JSON模块,用于处理JS0N数据
import json

# 定义函数,用于从输入字符串中提取和解析JsoN数据,返回字典
def main(input_string: str) -> dict:
    # 使用正则装达式查找并提取被 ````json 和 ````包裹的内容
    pattern_match = re.search(r'```json\s*(\[.*?\])\s*```', input_string, re.DOTALL)
    # 如果没有找到匹配的内容
    if not pattern_match:
        raise ValueError("输入字符串中未找到有效的 JSON 数据")

    # 提取匹配到的JSON字符串,并去除前后空白
    json_content = pattern_match.group(1).strip()
    # 尝试解析JSO字符串
    try: 
        # 将提取的JSON字符串解析为Python字典
        parsed_json = json.loads(json_content)
    # 如果解析过程中发生JSON解码错误
    except json.JSONDecodeError as err:
        raise ValueError(f"JSON 解析失败:{err}")

    # 返回一个包含解析结果的字典
    return {
        "result":parsed_json
    }

4.8 直接回复节点

text 复制代码
### SQL生成完成

4.9 循环迭代节点

作用:针对代码处理得到的字典结果里面的每个元素(SQL语句),循环执行后得到每个SQL的查询结果

循环体内部代码执行节点

循环体内部SQL执行节点

循环体输出配置

4.10 代码执行节点

作用:对循环迭代的结果进行格式转换

4.11 直接回复节点

作用:SQL计算完毕,模型正在汇总中

text 复制代码
### SQL计算完毕,模型正在汇总中...

测试效果

4.12 大模型回复结果节点

作用:对查询结果进行分析,另外把查询的结果转换成 ECHarts 图表组装需要的 JSON 格式数据

text 复制代码
### 角色
你是一个数据分析师,需要基于前一个模型生成的SQL语句及其执行结果,优先针对用户问题进行回答,确保回答内容紧扣主题不发散,同时对相关维度的数据进行分析,并以JSON格式输出给用户。
### 参数
- **用户输入**:{{#sys.query#}}
- **SQL 模型生成**:{{#llm.text#}}
- **SQL 查询结果**:{{#context#}}

### 图表使用场景
- 线型图:适用于展示趋势变化的数据,例如时间序列数据(如每月或每年的变化趋势)。
- 柱状图:适用于比较不同类别之间的数据或占比,例如各城市的占比情况。
- 饼状图:适用于展示整体组成部分及其比例,通常用语单维度的比较分布。

### 要求:
1. 优先回答用户问题,确保回答内容紧扣主题不发散。
2. 根据用户问题选择合适的线性图、柱状图或饼状图。
3. 将输出内容封装到JSON中,格式如下:
```json
{
    "results": "用Markdown格式先回复用户问题,其他维度数据简单概括,但必须完整展示数据",
    "ECHarts": "1",  // 如果需要生成图表,则为"1";否则为"0"
    "chartType": "线型图/柱状图/饼状图",  // 图表类型(仅当 ECHarts 为 "1" 时提供)
    "chartTitle": "图表标题",  // 图表标题(仅当 ECHarts 为 "1" 时提供)
    "chartData": "图表数据,多个用;分割",//图表数据(仅当 ECHarts 为 "1" 时提供)
    "chartXAxis": "图表的x轴,多个用;分割"  //图表的x轴数据(仅当 ECHarts 为 "1" 时提供)
}
```

### 注意事项
- 如果查询结果适合生成图表,则将 ECHarts 设置为 "1",并补充 chartType、chartTitle、chartData 和 chartXAxis 字段。
- 如果查询结果不适合生成图表,则将 ECHarts 设置为 "0",并省略chartType、chartTitle、chartData 和 chartXAxis 字段。
- 对于占比查询,必须使用饼状图进行展示,并在饼状图的 chartData 中返回百分比值。

4.13 代码执行节点

作用:对上面LLM大语言模型处理的结果我们这里用代码执行生成echart

python 复制代码
import re
import json

def main(args: str) -> dict:
    # 默认返回值(所有可能用到的字段都给出默认值)
    default_output = {
        "results": "",
        "ECHarts": "0",
        "chartType": "",
        "chartTitle": "",
        "chartData": "",
        "chartXAxis": ""
    }

    # 使用正则表达式提取被 ```json 和 ```包裹的内容
    match = re.search(r'```json\s*([\s\S]*?)\s*```', args, re.DOTALL)
    if not match:
        # 如果没有匹配到,返回默认输出
        return default_output

    json_str = match.group(1).strip()
    try:
        results_dict = json.loads(json_str)
    except Exception as e:
        # 解析失败时打印错误信息并返回默认输出
        print(f"解析失败: {e}")
        return default_output

    # 检查是否包含 ECHarts 字段,如果没有则默认设置为 "0"
    if "ECHarts" not in results_dict:
        results_dict["ECHarts"] = "0"

    # 根据 ECHarts 的值动态检查图表相关字段
    if results_dict.get("ECHarts") == "1":
        required_chart_fields = ["chartType", "chartTitle", "chartData", "chartXAxis"]
        for field in required_chart_fields:
            if field not in results_dict:
                results_dict[field] = ""   # 自动补全缺失字段为空字符串

    # 构造返回值(从解析后的字典中安全取值)
    return {
        "results": str(results_dict.get("results", "")),
        "ECHarts": str(results_dict.get("ECHarts", "0")),
        "chartType": str(results_dict.get("chartType", "")),
        "chartTitle": str(results_dict.get("chartTitle", "")),
        "chartData": str(results_dict.get("chartData", "")),
        "chartXAxis": str(results_dict.get("chartXAxis", ""))
    }

4.14 直接回复节点

作用:提示直接回复代码执行生成ECHart结果

text 复制代码
代码执行生成ECHart/{x}results

4.15 条件分支节点

作用:考虑用户输入的信息:返回结果有线型图表、柱状图、饼图的输出,所以我们需要通过这个条件分支进行判断

4.16 ECHarts图表生成

作用:主要使用ECHarts图表对线性图表、柱状图、饼图进行输出

4.17 直接回复节点

作用:结果返回,分别对应线性图表、柱状图、饼图

测试效果

五、发布工作流

运行