基于人工智能的数据库工具Chat2DB使用

news2025/1/9 15:43:15

文章目录

    • 前言
    • Chat2DB介绍
      • Chat2DB地址
      • 下载安装
    • Chat2DB配置
    • Chat2DB使用
      • 1、自然语言转sql
      • 2. SQL解释
      • 3. SQL优化
      • 4. SQL转换
    • 写在最后

前言

随着人工智能的发展,各行各业都出现了不少基于AI的工具来提升工作效率。就连国内的各个大厂也都在基于大模型开发自己的产品线,比如百度、阿里、网易、字节等等。今天我们就来分享一款AIGC生成式人工智能数据库客户端工具,虽然功能不多,但是足以让数据库小白直接上升为操作小能手。

Chat2DB介绍

Chat2DB 是一款有开源免费的多数据库客户端工具,支持 Windows、MAC 本地安装,也支持服务器端部署,Web 网页访问。和传统的数据库客户端软件Navicat、DBeaver 相比 Chat2DB 集成了 AIGC 的能力,能够将自然语言转换为 SQL,也可以将 SQL 转换为自然语言,可以给出研发人员 SQL 的优化建议,极大地提升人员的效率,是 AI 时代数据库研发人员的利器。未来即使不懂SQL的运营业务也可以使用快速查询业务数据、生成报表能力。

Chat2DB地址

github地址
https://github.com/chat2db/Chat2DB

下载安装

根据实际情况选择对应版本下载安装即可。
下载地址
https://sqlgpt.cn/en

下载完成后直接运行exe,按步骤进行安装完成
在这里插入图片描述

Chat2DB配置

1、打开客户端
在这里插入图片描述

2.选择mysql创建连接
前提:本地或远程先启动数据库
根据实际情况创建数据库连接
在这里插入图片描述

填写连接信息,点击“Test”按钮,若连接无问题则点击“Save”按钮。

3、ai能力配置
客户端设置中默认会填写custom ai的apikey
这个可以是基于chat2db的,当然有能力的可以选择openai进行测试,前提需要科学上网和apikey
我们这里直接选择chat2db即可,能能够达到良好的效果
在这里插入图片描述

4.数据库初始化
选择查看数据库列表,选择我们刚刚连接的本地数据库进行测试

在这里插入图片描述

双击本地数据库进入并创建一个console来执行我们初始化语句

-- chat_db数据库
drop database if exists chat_db;
create database chat_db default charset 'utf8mb4' COLLATE 'utf8mb4_general_ci';


-- 学生表
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 '学生信息表';
insert into chat_db.student(`name`,`gender`,`birthday`,`address`,`phone`) values 
('张三','男','2000-01-01','北京','12345678901'),('李四','男','2001-02-01','北京2','12345678902'),('王五','女','2002-05-01','上海','12345678903');



-- 科目表:
DROP TABLE IF EXISTS chat_db.course;
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 '科目表';
insert into chat_db.course(name,teacher,credit) values ('数据库','张老师',4),('大数据','李老师',4),('云计算','王老师',4);


-- 学生选修科目表:
DROP TABLE IF EXISTS chat_db.student_course;
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 '学生选修科目表';
insert into chat_db.student_course(student_id,course_id) 
select a.id,b.id from chat_db.student a , chat_db.course b;


-- 学生成绩表:
DROP TABLE IF EXISTS chat_db.score;
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 '学生成绩表';
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;

在这里插入图片描述

执行 语句完成测试数据初始化。

Chat2DB使用

点击库名,右键“查询”出现如下功能。
在这里插入图片描述

除了常规的数据库操作,我们还可用的AI功能:

自然语言转sql:输入一段文字,工具直接可以翻译为sql语句
转化sql:将当前sql语句转为其他工具的语句,比如mysql转mongodb
解释sql: 输入一段sql语句可以解释代表什么意思
优化sql:输入一段sql语句可以提出常见的优化方案,并提出具体优化的点

1、自然语言转sql

选择文本如“查询张三的云计算成绩”,点击“自然语言转SQL”。
在这里插入图片描述

a、填入需要转换sql的语句,这里直接写“查询张三的云计算成绩”
b、手动选择涉及的表,我为了放了全部选了
c、点击转换即可生成如下的文本
根据提供的表结构和SQL输入,可以使用以下SQL查询来获取张三的云计算成绩:

SELECT s.score
FROM student AS st
JOIN score AS s ON st.id = s.student_id
JOIN course AS c ON c.id = s.course_id
WHERE st.name = '张三' AND c.name = '云计算';

d、运行sql查询出结果分数为48分。

2. SQL解释

选中一段sql,点击解释SQL
在这里插入图片描述

结果如下:
这个SQL查询语句的目的是从数据库中获取学生"张三"在课程"云计算"中的成绩。 首先,使用INNER JOIN将"score"表与"student"表连接,连接条件是"score"表中的"student_id"列与"student"表中的"id"列相等。这样可以获取到学生的相关信息。 然后,再使用INNER JOIN将上一步得到的结果与"course"表连接,连接条件是"score"表中的"course_id"列与"course"表中的"id"列相等。这样可以获取到课程的相关信息。 接下来,使用WHERE子句来筛选结果,只保留学生姓名为"张三"且课程名称为"云计算"的记录。 最后,SELECT语句选择"score"表中的"score"列作为结果,即获取到了"张三"在"云计算"课程中的成绩。

3. SQL优化

选中SQL语句,点击“SQL优化”
在这里插入图片描述

结果如下:
优化建议如下: 1. 索引优化:确保student表和course表的name字段上都有索引,以加快查询速度。 2. 调整连接顺序:根据数据量和索引情况,可以尝试将student表放在第一位进行连接,以减少连接操作的数据量。 3. 子查询优化:可以考虑使用子查询来替代多个表的连接操作,以减少连接操作的数量。 4. 预编译语句:如果该SQL语句会被频繁执行,可以考虑使用预编译语句,以提高执行效率。 5. 缓存查询结果:如果该SQL语句的结果不经常变动,可以考虑将查询结果缓存起来,以减少对数据库的频繁查询。 6. 数据库优化:可以对数据库进行性能优化,如调整缓冲区大小、优化查询计划等,以提高整体查询性能。 请根据具体情况选择适合的优化方法,并进行测试和评估,以确定最佳的优化方案。

4. SQL转换

选中上述SQL,点击“SQL转换”,但是并未达到预期效果。如果需要这个功能,建议在设置中接入opanai。

写在最后

Chat2DB 是一款有开源免费的多数据库客户端工具,集成了AIGC 生成式人工智能。其主要功能包括自然语言转sql、优化sql、转化sql、解释sql等功能,是一个真正意义上减轻劳动和提高效率的一款大模型数据库客户端工具。

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

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

相关文章

ctfshow——信息搜集

文章目录 web 1web 2web 3web 4web 5web 6web 7web 8web 9web 10web 11web 12web 13web 14web 15web 16web 17web 18web 19web 20 web 1 题目提示开发注释未及时删除。 直接右键查看源代码。 web 2 在这关我们会发现:1)无法使用右键查看源代码&…

Github 2023-12-31 开源项目日报 Top10

根据Github Trendings的统计,今日(2023-12-31统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量TypeScript项目3Swift项目1Java项目1HTML项目1Astro项目1Python项目1C项目1Dart项目1Jupyter Notebook项目1C项…

Python最基础的对字符串的操作1

1,字符串的查找: find():查询某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则返回-1 index():查询某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标…

Linux系统编程(八):信号(下)

参考引用 UNIX 环境高级编程 (第3版)嵌入式Linux C应用编程-正点原子 1. 基本概念 信号是事件发生时对进程的通知机制,也可以把它称为软件中断 信号与硬件中断的相似之处在于能够打断程序当前执行的正常流程,其实是在软件层次上对中断机制的一种模拟大多…

【华为机试】2023年真题B卷(python)-快递运输

一、题目 题目描述: 运送的快递放在大小不等的长方体快递盒中,为了能够装载更多的快递同时不能让货车超载,需要计算最多能装多少个快递。 注:快递的体积不受限制 快递数最多1000个 货车载重最大50000 二、输入输出 输入描述&#…

【算法挨揍日记】day42——494. 目标和、1049. 最后一块石头的重量 II

494. 目标和 494. 目标和 题目描述: 给你一个非负整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 或 - ,然后串联起所有整数,可以构造一个 表达式 : 例如,nums [2, 1] ,可以在 2 之前…

工程化态势感知的困难

工程化态势感知的困难在于数据整合、大数据处理和分析、领域知识和模型构建、实时性和准确性要求以及安全和隐私问题。解决这些困难需要技术和专业知识的结合,以及各方面的合作和努力。 多源异构数据的整合:工程化态势感知需要从各种数据源获取数据&…

数据结构——顺序队列与链式队列的实现

目录 一、概念 1、队列的定义 2、队首 3、队尾 二、接口 1、可写接口 1)数据入队 2)数据出队 3)清空队列 2、只读接口 1)获取队首数据 2)获取队列元素个数 3)队列的判空 三、队列的顺序表实现…

com.gexin.platform 依赖下载问题

打包时报错显示&#xff1a; com.gexin.platform:gexin-rp-sdk-http:pom:4.1.1.4 failed to transfer from http://0.0.0.0/ 解决办法&#xff1a; 1、在idea中找到maven中的设置的settings.xml 2、根据路径找到settings.xml文件&#xff0c;添加以下内容 <mirror><…

基于孔雀优化算法的航线规划

MATLAB2020a下正常运行 上传明细-CSDN创作中心

一元函数微分学——刷题(14

目录 1.题目&#xff1a;2.解题思路和步骤&#xff1a;3.总结&#xff1a;小结&#xff1a; 1.题目&#xff1a; 2.解题思路和步骤&#xff1a; 只要知道反函数求导等于原函数的导数的倒数&#xff0c;那就很好求解了&#xff0c;这不过要先处理好x和y的对应关系&#xff0c;知…

WPF容器的背景对鼠标事件的影响

背景&#xff1a;在实现鼠标拖动窗口的过程中发现对父容器设置了鼠标拖动窗口的事件MouseLeftButtonDown private void DragWindow(object sender, MouseButtonEventArgs e) {if (e.LeftButton MouseButtonState.Pressed)DragMove(); } 问题&#xff1a;非常困惑的是&#x…

【MySQL】常用存储引擎,数据库管理,数据表管理,数据库账户管理

目录 一 常用的数据引擎(4) 1.1 InnoDB存储引擎 1.2 MyISAM存储引擎 1.3 Memory存储引擎 1.4 ARCHIVE存储引擎 二 数据库管理 2.1 元数据库概念与分类 2.2 相关操作命令 三 数据表的管理 3.1 三大范式 3.2 数据类型 四 数据库账户管理 五 思维导图 一 常用的数据…

Mac环境下Parallels Desktop 19的安装和使用

为了后续构建漏洞靶场和渗透测试环境&#xff0c;我们需要提前准备好几套与宿主机隔离的工作环境&#xff08;Windows、Linux等&#xff09;&#xff0c;在Mac上最常用的就是Paralles Desktop&#xff08;PD&#xff09;工具了&#xff0c;当前最新版本为19。接下来介绍如何安装…

PDF控件Spire.PDF for .NET【安全】演示:获取并验证 PDF 中的数字签名

在 PDF 中创建数字签名广泛用于保护 PDF 文件。因此&#xff0c;当您查看一些带有数字签名的PDF文件时&#xff0c;需要获取并验证数字签名。本文向您展示了一种通过使用Spire.PDF和 C# 代码来获取和验证 PDF 中的数字签名的解决方案。 Spire.PDF for .NET 是一款独立 PDF 控件…

第二证券:停牌意味着什么?

股票停牌的原因&#xff1f; 一般来说&#xff0c;股票停牌的原因可以分为以下几类&#xff1a; 1、上市公司有严峻情况变化&#xff0c;如企业并购、重组等&#xff0c;为了确保生意顺利完成和信息宣布的及时、充分、准确&#xff0c;避免商场出现信息不对称的情况&#xff…

javascript 常见工具函数(五)

41.深度拷贝对象&#xff1a; static deepCopyObj$(obj) {var result Array.isArray(obj) ? [] : {};for (var key in obj) {if (obj.hasOwnProperty(key)) {if (typeof obj[key] object && obj[key] ! null) {result[key] Utils$.deepCopyObj$(obj[key]); //递归…

门店管理井然有序的秘诀,就在这1888字里

门店管理是一款帮助企业提高线下门店管理效率的应用&#xff0c;适用于所有拥有实体连锁门店的行业&#xff0c;如&#xff1a;连锁服饰、商超、数码产品、连锁餐饮等。 门店管理常见痛点 线下连锁门店的管理受位置、时间等因素影响&#xff0c;总部管理鞭长莫及&#xff1b; …

外贸自建站和独立站的区别?海洋建站方法?

外贸自建站和独立站的异同点&#xff1f;怎么建跨境电商网站&#xff1f; 越来越多的外贸企业开始关注和选择建立自己的网站来进行产品推广和销售。然而&#xff0c;在外贸建站领域中&#xff0c;存在两种常见的类型&#xff1a;外贸自建站和独立站。那么&#xff0c;这两者之…

Android Studio如何创建尺寸大小及API通用的模拟器

目录 前言 一、操作步骤 二、总结 三、更多资源 前言 在开发移动应用程序的过程中&#xff0c;使用模拟器进行测试是一种常见和方便的方式。Android Studio是一款功能强大的集成开发环境&#xff0c;它提供了创建和管理模拟器的功能。在本文中&#xff0c;我们将介绍如何创…