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

news2024/11/15 19:23:58

Chat2DB使用

当前使用的版本为1.0.11。

一.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 --- 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/708020.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hexo基本建站

目录 一、前言 二、Hexo安装、新建、启动 三、架构说明 四、写博客 五、打包 六、发布到GitHub 1.新建仓库 2.安装插件 3.修改配置文件:_config.yml 4.部署github 5.查看仓库 6.访问网站 一、前言 安装 Git安装 Node.js 二、Hexo安装、新建、启动 # 安装 h…

智慧园区平台建设解决方案

智慧园区是指利用现代互联网物联网技术,对园区内的设施、设备和人员进行高效管理和智能化运营的一种模式。越来越多的城市开始致力于发展智慧园区,实现园区内的资源共享和高效利用。为了让智慧园区达到最佳的效果,我们需要从平台建设方面入手…

Prettier - Code formatter配置(vscode)

1.安装Prettier 2.设置-->搜索format on save 并打勾 3.搜索default format 并选择Prettier - Code formatter 4.点击右上角打开setting.json 5.看最后一行是否存在如下配置,有就说明配置成功,没有重新前面步骤重新设置一下 6.根目录是否存在.prettierrc.json,没有创建一下 …

vue3原理和源码分析 - watch 源代码

https://github.com/vuejs/vue-next/blob/master/packages/runtime-core/src/apiWatch.ts 目录 Watch /packages/runtime-core/src/apiWatch.ts watch.dot https://github.com/vuejs/vue-next/blob/master/packages/runtime-core/src/apiWatch.ts Watch /packages/runtime…

6.3 B树,B+树

多路平衡查找树 1.定义 B树的阶:B树中所有结点的孩子个数的最大值,表示成m m阶B树:空树或者满足如下特性的m叉树 特性: 1.树中每个结点最多子树 m 关键字m-1 2.根节点不是终端结点,至少有两棵子树 3.根结点除外&…

基于Elasticsearch + Fluentd + Kibana(EFK)搭建日志收集管理系统

目录 1、EFK简介 2、EFK框架 2.1、Fluentd系统架构 2.2、Elasticsearch系统架构 2.3、Kibana系统架构 3、Elasticsearch接口 4、EFK在虚拟机中安装步骤 4.1、安装elasticsearch 4.2、安装kibana 4.3、安装fluentd 4.4、进入kibana创建索引 5、Fluentd配置介绍 Elas…

2023年最受欢迎和最佳WordPress主题(专家精选)

您在找2023年最佳WordPress主题吗? 免费和高级WordPress主题有数以千计,初学者很难为他们的网站选择合适的WordPress主题。 在本文中,我们将分享我们专家精选的2023年所有最受欢迎和最佳的WordPress主题。 本文网址: 2023年最受欢迎和最佳…

Nautilus Chain 推出全新 Layer3 DID 公民身份,限量 10 万枚免费发放

Nautilus Chain 是目前行业内首个模块化的 Layer3 机构链,该链此前基本完成了测试网的早期测试,并有望在近期上线主网。Nautilus Chain 近阶段市场活动频频,除了此前举办全球行活动推广 Layer3 概念外,其也在同期联合 Stanford Bl…

wps文档忘记保存关闭了怎么恢复

1、点击WPS左上角小箭头,点击下拉菜单中的工具选项,然后点击里面的备份中心。 2、在WPS的右侧会看到备份中心的小窗口,里面有自动备份的文件,还可以点击一键恢复即可复原之前的文件内容。 可以对之前时间段的文件打开。

什么是内存溢出,什么是内存泄漏?

文章目录 一、什么是内存溢出?二、什么是内存泄漏?三、如何避免? 提示:以下是本篇文章正文内容,下面案例可供参考 一、什么是内存溢出? 假设我们 JVM 中可用的内存空间只剩下 3M,但是我们要创…

Maven manual

Download maven Download 设置 system env… E:\apache-maven-3.9.3\bin查看版本信息 mvn -v Apache Maven 3.9.3 (21122926829f1ead511c958d89bd2f672198ae9f) Maven home: E:\apache-maven-3.9.3与Eclipse integrate Referrence,通常Eclipse原本就已经集成&am…

[STC32F12K54入门第三步]USART1+Modbus RTU从机

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、Modbus RTU是什么?二、Modbus RTU程序展示1.串口配置2.Timer定时器配置3.配置CRC16校验位和Modbus RTU发送函数4.主函数5.效果展示总结提示:以下是本篇文章正文内容,下面案例可供参考 一、…

WebMvcConfigurationSupport 和 WebMvcConfigurer 区别和同时使用产生的问题-解决

在Spring Boot 1.5版本都是靠重写WebMvcConfigurerAdapter的方法来添加自定义拦截器,消息转换器等。SpringBoot 2.0 后,该类被标记为Deprecated(弃用)。 在Spring Boot 2.0后用自己的的配置类继承WebMvcConfigurerAdapter时&…

python多维数据可视化

文章目录 数据数据可视化平行坐标RadViz雷达图Andrews曲线矩阵图相关系数热力图参考文献多维度(3维以上)数据的可视化,用常规的方法不太好实现。本文介绍几种用Python实现的将多维数据展示在二维平面中的方法。 数据 以经典的鸢尾花数据集为例。 以下是5条经过格式处理的数…

[MAUI]用纯C#代码写两个漂亮的时钟

文章目录 时钟1绘制锯齿表盘绘制指针绘制沿路径文本 时钟2绘制表盘绘制指针项目地址 谷歌在2021年5月份推出的Android 12给我们带来了新的UI设计规范Material You,你是否已经体验到了Material You设计的魅力了呢? 在原生主屏幕启动器中,有一个…

【杂谈理解】STM32F103引脚反转速度时间

前言 事情的起因是最近我在使用F103编写WS2812彩灯的时序时遇到了一些小问题。具体来说,我发现WS2812的1码的低电平部分的时序无法达到要求的220ns~380ns,而只能到大约580ns左右。因此,我开始对引脚的反转速度进行了一些测试。下面数据仅是我…

Docker一键安装个人基础开发环境-MySQL、Redis、MongoDB

Docker Compose 在个人开发环境中,使用 Docker Compose 可以极大地简化和优化应用程序的部署和管理过程。 Docker Compose 的配置文件通常采用 YAML 格式,使其易于阅读和编写。我们可以在配置文件中指定所需的容器镜像、端口映射、环境变量、数据卷挂载…

张量分解中Tucker分解和CP分解的区别与联系

CP分解图示: Tucker分解图示: 两者的区别如下: 主要区别:核张量(core tensor) Tucker分解的结果会形成一个核张量,即PCA中的主成分因子,来表示原张量的主要性质,而CP分解…

【添加anaconda环境变量】

Win11操作系统,首先进入到编辑环境变量界面 分别添加以下这三个,保存。 最后关闭pycharm,重启,打开Terminal,输入conda --version,成功!

Linux删除文件夹时,报错“Error: EBUSY:resource busy or locked, unlink……”该如何解决?

目录 问题描述: 问题解决: 问题描述: 在linux上,想要删除一个文件夹,总是报错如下图,一直删除不掉。明明感觉自己并没有执行这个文件夹下的内容,却一直删除失败。 问题解决: 不得不…