0


开源免费的多数据库工具Chat2DB

Chat2DB v1.0.11使用

当前使用的版本为1.0.11,目前已经更新到2.0.1版本。

一.Chat2DB介绍

Chat2DB 是一款开源免费的多数据库客户端工具。
能够将自然语言转换为SQL,也可以将SQL转换为自然语言。
支持windows、mac本地安装,也支持服务器端部署,web网页访问。
支持多种数据库:MySQL,PostgreSQL,Oracle,DB2,ClickHouse,OceanBase,Redis,Hive,MongoDB等

Chat2DB地址
github地址

二.下载安装

根据实际情况选择对应版本下载安装即可。
下载地址

三.配置

1.创建连接

前提:本地或远程先启动数据库

根据实际情况创建数据库连接
在这里插入图片描述
填写连接信息,点击“测试连接”按钮,若连接无问题则点击“连接”按钮。
在这里插入图片描述

2.数据库初始化

# 根据实际情况进行修改
# 这里修改mysql配置my.ini文件,然后启动数据库
[mysql]
default-character-set=utf8mb4

[mysqld]
character-set-server=utf8mb4 
character_set_database=utf8mb4
collatior-server=utf8_general_ci

mysql中创建chat-db库,并创建表及插入数据

showcharset;SHOW VARIABLES LIKE'character%';show variables like'collation_%';showdatabases;-- 可设置字符集set names utf8mb4;set character_set_database=utf8mb4;set character_set_server=utf8mb4;set collation_database=utf8mb4_general_ci;dropdatabaseifexists chat_db;createdatabase chat_db defaultcharset'utf8mb4'COLLATE'utf8mb4_general_ci';DROPTABLEIFEXISTS chat_db.student_course;DROPTABLEIFEXISTS chat_db.score;DROPTABLEIFEXISTS chat_db.course;DROPTABLEIFEXISTS chat_db.student;-- 学生表CREATETABLE chat_db.student (
  id INTPRIMARYKEYAUTO_INCREMENTCOMMENT'学生ID',
  name VARCHAR(50)NOTNULLCOMMENT'学生姓名',
  gender VARCHAR(10)NOTNULLCOMMENT'学生性别',
  birthday DATENOTNULLCOMMENT'学生生日',
  address VARCHAR(100)NOTNULLCOMMENT'学生住址',
  phone VARCHAR(20)NOTNULLCOMMENT'学生联系方式')COMMENT'学生信息表';-- 科目表:CREATETABLE chat_db.course (
  id INTPRIMARYKEYAUTO_INCREMENTCOMMENT'科目ID',
  name VARCHAR(50)NOTNULLCOMMENT'科目名称',
  teacher VARCHAR(50)NOTNULLCOMMENT'授课教师',
  credit INTNOTNULLCOMMENT'科目学分')COMMENT'科目表';-- 学生选修科目表:CREATETABLE chat_db.student_course (
  id INTPRIMARYKEYAUTO_INCREMENTCOMMENT'关系ID',
  student_id INTNOTNULLCOMMENT'学生ID',
  course_id INTNOTNULLCOMMENT'科目ID',FOREIGNKEY(student_id)REFERENCES student(id),FOREIGNKEY(course_id)REFERENCES course(id))COMMENT'学生选修科目表';-- 学生成绩表:CREATETABLE chat_db.score (
  id INTPRIMARYKEYAUTO_INCREMENTCOMMENT'成绩ID',
  student_id INTNOTNULLCOMMENT'学生ID',
  course_id INTNOTNULLCOMMENT'科目ID',
  score INTNOTNULLCOMMENT'成绩',FOREIGNKEY(student_id)REFERENCES student(id),FOREIGNKEY(course_id)REFERENCES course(id))COMMENT'学生成绩表';deletefrom chat_db.student;insertinto chat_db.student(`name`,`gender`,`birthday`,`address`,`phone`)values('张三','男','2000-01-01','北京','12345678901'),('李四','男','2001-02-01','北京2','12345678902'),('王五','女','2002-05-01','上海','12345678903');deletefrom chat_db.course;insertinto chat_db.course(name,teacher,credit)values('数据库','张老师',4),('大数据','李老师',4),('云计算','王老师',4);deletefrom chat_db.student_course;insertinto chat_db.student_course(student_id,course_id)select a.id,b.id from chat_db.student a , chat_db.course b
;deletefrom chat_db.score;insertinto chat_db.score(student_id,course_id,score)select a.student_id,a.course_id,(a.student_id+a.course_id)*12from chat_db.student_course a;;

3.配置

配置方式

填写完成后,点击应用
在这里插入图片描述

四.使用

1.自然语言转SQL语句

点击库名,右键“新建查询”出现如下功能。
在这里插入图片描述
选择文本如“查询张三的云计算成绩”,点击“自然语言转SQL”。
在这里插入图片描述
选择表如下,点击“确认”。
在这里插入图片描述
自动生成sql语句如
在这里插入图片描述

--- BEGIN ---
查询张三的云计算成绩
--- 自然语言转换 ---SELECT score 
FROM score 
JOIN student ON score.student_id = student.id 
JOIN course ON score.course_id = course.id 
WHERE student.name ='张三'AND course.name ='云计算'--- END --- 

选择sql语句,点击执行
在这里插入图片描述

2. SQL解释

选中一段sql,点击SQL解释。
在这里插入图片描述
在这里插入图片描述
这里执行了两次
第一次附加信息:

解释SQL的目的

第二次附加信息:

解释SQL查询的目的

结果分别如下

在这里插入图片描述

3. SQL优化

选中SQL语句,点击“SQL优化”。

在这里插入图片描述
填写附加信息,点击“确认”。
在这里插入图片描述
执行结果

在这里插入图片描述
相同的附加条件,第二次执行结果

在这里插入图片描述

4. SQL转换

选中上述SQL,点击“SQL转换”。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

--- BEGIN ---SELECT score 
FROM score 
JOIN student ON score.student_id = student.id 
JOIN course ON score.course_id = course.id 
WHERE student.name ='张三'AND course.name ='云计算'--- SQL转换 ---
db.score.aggregate([
  {
    $lookup: {
      from: "student",
      localField: "student_id",
      foreignField: "id",as: "student"
    }
  },
  {
    $unwind: "$student"
  },
  {
    $lookup: {
      from: "course",
      localField: "course_id",
      foreignField: "id",as: "course"
    }
  },
  {
    $unwind: "$course"
  },
  {
    $match: {
      "student.name": "张三","course.name": "云计算"
    }
  },
  {
    $project: {
      score: 1
    }
  }
])--- END --- 

Chat2DB v2.0.1

从V2.0.0版本开始已经自带有demo库

自带有DEMO库

在这里插入图片描述
这里连接demo里的MySQL库

设置更新

在这里插入图片描述

仪表盘

在这里插入图片描述

输入文本,生成sql语句

如输入:“查询成绩表”。则出现如下语句,点击“执行”按钮,显示结果如下。
在这里插入图片描述

其他Text2sql介绍

能将自然语言描述转化成对应的SQL查询语句的技术。

1.Chat2Query

Chat2Query地址
Chat2Query不仅可以帮助用户在没有广泛SQL知识的情况下生成SQL查询,还可以处理复杂的查询并提供对动态数据集的实时洞察。

2.OSSInsight

OSSInsight地址
GitHub Data Explorer地址
OSSInsight 是一款功能强大的洞察工具,可帮助人们深入分析单个 GitHub 仓库/开发人员,使用相同的指标比较任意两个仓库,并提供全面、有价值和有趋势的开源洞察。

3. AI2sql

AI2sql官网
AI2sql使用地址
一款SQL 生成器,可使非工程师在不了解 SQL 的情况下也能编写高效的 SQL 查询。
支持MySQL,SQL Server,PostgreSQL,Oracle PL/SQL,
NoSQL-Pandas,MongoDB,BigQuery,MariaDB,Redshift,SnowSQL。


本文转载自: https://blog.csdn.net/u010895512/article/details/131493010
版权归原作者 xcSpark 所有, 如有侵权,请联系我们删除。

“开源免费的多数据库工具Chat2DB”的评论:

还没有评论