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库,并创建表及插入数据
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.配置
配置方式
填写完成后,点击应用
四.使用
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。