当前使用的版本为1.0.11,目前已经更新到2.0.1版本。
Chat2DB 是一款开源免费的多数据库客户端工具。
能够将自然语言转换为SQL,也可以将SQL转换为自然语言。
支持windows、mac本地安装,也支持服务器端部署,web网页访问。
支持多种数据库:MySQL,PostgreSQL,Oracle,DB2,ClickHouse,OceanBase,Redis,Hive,MongoDB等
Chat2DB地址
github地址
根据实际情况选择对应版本下载安装即可。
下载地址
前提:本地或远程先启动数据库
根据实际情况创建数据库连接
填写连接信息,点击“测试连接”按钮,若连接无问题则点击“连接”按钮。
# 根据实际情况进行修改
# 这里修改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;
;
配置方式
点击库名,右键“新建查询”出现如下功能。
选择文本如“查询张三的云计算成绩”,点击“自然语言转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,点击SQL解释。
这里执行了两次
第一次附加信息:解释SQL的目的
第二次附加信息:解释SQL查询的目的
结果分别如下
选中SQL语句,点击“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 ---
从V2.0.0版本开始已经自带有demo库
如输入:“查询成绩表”。则出现如下语句,点击“执行”按钮,显示结果如下。
能将自然语言描述转化成对应的SQL查询语句的技术。
Chat2Query地址
Chat2Query不仅可以帮助用户在没有广泛SQL知识的情况下生成SQL查询,还可以处理复杂的查询并提供对动态数据集的实时洞察。
OSSInsight地址
GitHub Data Explorer地址
OSSInsight 是一款功能强大的洞察工具,可帮助人们深入分析单个 GitHub 仓库/开发人员,使用相同的指标比较任意两个仓库,并提供全面、有价值和有趋势的开源洞察。
AI2sql官网
AI2sql使用地址
一款SQL 生成器,可使非工程师在不了解 SQL 的情况下也能编写高效的 SQL 查询。
支持MySQL,SQL Server,PostgreSQL,Oracle PL/SQL,
NoSQL-Pandas,MongoDB,BigQuery,MariaDB,Redshift,SnowSQL。