CHAT2DB_AI_SQL.md
Chat2DB包含一系列基于ChatGPT的AI SQL使用功能,主要包括自然语言转SQL、SQL解释、SQL优化和SQL转换。 使用这些AI功能,可以将自然语言转换成本地查询SQL,而不仅仅是SQL查询伪代码;可以将SQL解释成自然语言,帮助用户理解复杂的SQL;可以针对慢SQL提供全方位的优化建议,提升查询效率;可以转换不同数据库类型的SQL语言,降低数据库迁移难度等等。
<a></a>
使用OPENAI的ChatSql功能需要满足两个条件
输入自然语言,选中执行并传入查询相关的表结构信息,则会返回相应的SQL
SELECT score.score
FROM score
INNER JOIN student_course ON score.course_id = student_course.course_id
INNER JOIN student ON student_course.student_id = student.id
WHERE student.name = '小明'
输入SQL,选中执行并传入附加信息,附加信息可以添加希望解释《输入SQL》哪方面的信息,如SQL执行目标,则会返回此条SQL附加信息相关的解释
输入SQL,选中执行并传入优化附加信息,附加信息可以添加希望具体优化方面和要求,则会返回此条SQL附加信息相关的优化建议
输入SQL,选中执行并传入目标SQL类型和附加信息,附加信息中可以添加转换的自定义要求,则会返回目标SQL类型且符合附加要求的SQL语言
输入任意prompt,点击ChatRobot按钮即可根据prompt返回相应的结果,此处聊天对话默认支持上下文,默认上下文长度为4,可在application.yml文件中修改上下文长度
查看student表中是否已经存在索引。可以使用以下命令查看:
SHOW INDEX FROM student;
如果已经存在索引,则可以跳过下一步。
在student表中添加索引。可以使用以下命令添加:
ALTER TABLE student ADD INDEX name_index (name);
这里的name_index是索引的名称,name是需要建立索引的列名。
注意:如果student表中的数据量很大,添加索引可能需要一些时间。
重新执行原始SQL语句,查看查询速度是否有所提升。
SELECT score.score FROM score INNER JOIN student ON score.student_id = student.id WHERE student.name = '小明';
如果查询速度有所提升,则说明索引建立成功。