淘先锋技术网

首页 1 2 3 4 5 6 7

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。