开源免费的多数据库工具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.创建连接

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

根据实际情况创建数据库连接
开源免费的多数据库工具Chat2DB_第1张图片
填写连接信息,点击“测试连接”按钮,若连接无问题则点击“连接”按钮。
开源免费的多数据库工具Chat2DB_第2张图片

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库,并创建表及插入数据

show charset;
SHOW VARIABLES LIKE 'character%';
show variables like 'collation_%';
show databases;
-- 可设置字符集
set names utf8mb4;
set character_set_database=utf8mb4;
set character_set_server=utf8mb4;
set collation_database=utf8mb4_general_ci;

drop database if exists chat_db;
create database chat_db default charset 'utf8mb4' COLLATE 'utf8mb4_general_ci';

DROP TABLE IF EXISTS chat_db.student_course;
DROP TABLE IF EXISTS chat_db.score;
DROP TABLE IF EXISTS chat_db.course;
DROP TABLE IF EXISTS chat_db.student;

-- 学生表
CREATE TABLE chat_db.student (
  id INT PRIMARY KEY AUTO_INCREMENT COMMENT '学生ID',
  name VARCHAR(50) NOT NULL COMMENT '学生姓名',
  gender VARCHAR(10) NOT NULL COMMENT '学生性别',
  birthday DATE NOT NULL COMMENT '学生生日',
  address VARCHAR(100) NOT NULL COMMENT '学生住址',
  phone VARCHAR(20) NOT NULL COMMENT '学生联系方式'
) COMMENT '学生信息表';


-- 科目表:
CREATE TABLE chat_db.course (
  id INT PRIMARY KEY AUTO_INCREMENT COMMENT '科目ID',
  name VARCHAR(50) NOT NULL COMMENT '科目名称',
  teacher VARCHAR(50) NOT NULL COMMENT '授课教师',
  credit INT NOT NULL COMMENT '科目学分'
) COMMENT '科目表';


-- 学生选修科目表:
CREATE TABLE chat_db.student_course (
  id INT PRIMARY KEY AUTO_INCREMENT COMMENT '关系ID',
  student_id INT NOT NULL COMMENT '学生ID',
  course_id INT NOT NULL COMMENT '科目ID',
  FOREIGN KEY (student_id) REFERENCES student(id),
  FOREIGN KEY (course_id) REFERENCES course(id)
) COMMENT '学生选修科目表';


-- 学生成绩表:

CREATE TABLE chat_db.score (
  id INT PRIMARY KEY AUTO_INCREMENT COMMENT '成绩ID',
  student_id INT NOT NULL COMMENT '学生ID',
  course_id INT NOT NULL COMMENT '科目ID',
  score INT NOT NULL COMMENT '成绩',
  FOREIGN KEY (student_id) REFERENCES student(id),
  FOREIGN KEY (course_id) REFERENCES course(id)
) COMMENT '学生成绩表';


delete from chat_db.student;
insert into chat_db.student(`name`,`gender`,`birthday`,`address`,`phone`) values 
('张三','男','2000-01-01','北京','12345678901'),('李四','男','2001-02-01','北京2','12345678902'),('王五','女','2002-05-01','上海','12345678903');

delete from chat_db.course;
insert into chat_db.course(name,teacher,credit) values ('数据库','张老师',4),('大数据','李老师',4),('云计算','王老师',4);

delete from chat_db.student_course;
insert into chat_db.student_course(student_id,course_id) 
select a.id,b.id from chat_db.student a , chat_db.course b
;

delete from chat_db.score;
insert into chat_db.score(student_id,course_id,score) 
select a.student_id,a.course_id, (a.student_id+a.course_id)*12  from chat_db.student_course a;
;

3.配置

配置方式

填写完成后,点击应用
开源免费的多数据库工具Chat2DB_第3张图片

四.使用

1.自然语言转SQL语句

点击库名,右键“新建查询”出现如下功能。
开源免费的多数据库工具Chat2DB_第4张图片
选择文本如“查询张三的云计算成绩”,点击“自然语言转SQL”。
开源免费的多数据库工具Chat2DB_第5张图片
选择表如下,点击“确认”。
开源免费的多数据库工具Chat2DB_第6张图片
自动生成sql语句如
开源免费的多数据库工具Chat2DB_第7张图片

--- 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语句,点击执行
开源免费的多数据库工具Chat2DB_第8张图片

2. SQL解释

选中一段sql,点击SQL解释。
开源免费的多数据库工具Chat2DB_第9张图片
开源免费的多数据库工具Chat2DB_第10张图片
这里执行了两次
第一次附加信息:解释SQL的目的
第二次附加信息:解释SQL查询的目的
结果分别如下

开源免费的多数据库工具Chat2DB_第11张图片

3. SQL优化

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

开源免费的多数据库工具Chat2DB_第12张图片
填写附加信息,点击“确认”。
开源免费的多数据库工具Chat2DB_第13张图片
执行结果

开源免费的多数据库工具Chat2DB_第14张图片
相同的附加条件,第二次执行结果

开源免费的多数据库工具Chat2DB_第15张图片

4. SQL转换

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

开源免费的多数据库工具Chat2DB_第16张图片

开源免费的多数据库工具Chat2DB_第17张图片
开源免费的多数据库工具Chat2DB_第18张图片


--- 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库

开源免费的多数据库工具Chat2DB_第19张图片
这里连接demo里的MySQL库

设置更新

开源免费的多数据库工具Chat2DB_第20张图片

仪表盘

开源免费的多数据库工具Chat2DB_第21张图片

输入文本,生成sql语句

如输入:“查询成绩表”。则出现如下语句,点击“执行”按钮,显示结果如下。
开源免费的多数据库工具Chat2DB_第22张图片

其他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。

你可能感兴趣的:(人工智能,数据库,人工智能,AIGC,chatgpt)