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

文章目录

    • 前言
    • 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.mzph.cn/news/595930.shtml

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

相关文章

Invoke和BeginInvoke的区别

Invoke和BeginInvoke的区别 本文导读:BeginInvoke() 调用时,当前线程会启用线程池中的某个线程来执行此方法,当前线程不被阻塞,继续运行后面的代码, Invoke() 调用时,会阻塞当前线程,等到 Invo…

大公司里怎样开发和部署前端代码?

前端训练营:1v1私教,终身辅导计划,帮你拿到满意的 offer。 已帮助数百位同学拿到了中大厂 offer。欢迎来撩~~~~~~~~ Hello,大家好,我是 Sunday。 昨天的时候有同学问到前端部署相关的内容,正好在知乎中看到…

Flask入门教程

Flask入门教程 简介 Flask是由Armin ronacher于2010年用Python语言基于 Werkzeug 工具箱编写的轻量级Web开发框架。 特点 Flask只提供核心功能,其他几乎所有的功能都需要用到拓展,比如可以通过Flask-SQLAlchemy拓展对数据库进行操作等等。 核心 由…

基于双向LSTM模型完成文本分类任务

6.4.1 数据处理 IMDB电影评论数据集是一份关于电影评论的经典二分类数据集.IMDB 按照评分的高低筛选出了积极评论和消极评论,如果评分 ≥7≥7,则认为是积极评论;如果评分 ≤4≤4,则认为是消极评论.数据集包…

“ManageEngine荣获Gartner SIEM客户选择四连冠“

我们非常激动地宣布,ManageEngine已经连续第四次被认定为Gartner Peer Insights‘Voice of the Customer’:安全信息与事件管理(SIEM)中的客户选择。这不仅是对我们卓越SIEM解决方案承诺的肯定,也延续了ManageEngine在…

LINUX基线要求及加固方法

《YDT 2701-2014 电信网和互联网安全防护基线配置要求及检测要求 操作系统 LINUX篇》 一、账号 应按照不同用户分配不同账号 检查/etc/passwd是否有只有root用户,应用应使用其他用户账号部署 限制用户su到root 编辑su文件(vi /etc/pam.d/su),在开头添…

检测和缓解僵尸网络

僵尸网络源自“机器人网络”一词,是感染了恶意软件的网络或机器集群,允许黑客控制并发起一系列攻击。僵尸网络的强度完全取决于它所包含的受感染机器的数量。攻击者接管这些设备的操作,以使用僵尸网络命令和控制模型进行远程控制。 什么是僵…

<HarmonyOS第一课>应用程序框架

【习题】应用程序框架 目录 判断题 单选题 多选题 判断题 1. 一个应用只能有一个UIAbility。错误 正确(True)错误(False) 2. 创建的Empty Ability模板工程,初始会生成一个UIAbility文件。正确 正确(True)错误(False) 3. 每调用一次router.pushUrl()方法&…

MultipartFile转换file

文章目录 前言一、方法二、注意事项 前言 最近项目中需要处理一个图片上传的业务,将MultipartFile转换file类型文件,然后处理,这里浅浅记录一下 一、方法 private static File convert(MultipartFile file) throws IOException {File convFi…

K线+直线 现货黄金也可能变现

现货黄金行情怎么做,这是投资者需要思考的问题。幸运的是,现在市面上有很多书籍,是其他有经验、有想法的投资者们对其经验的总结和分享,此外网络上还有不同的文章和各种各样的视频介绍相关交易经验,这都是可以让我们借…

22款奔驰GLE450升级香氛负离子 车载香薰

相信大家都知道,奔驰自从研发出香氛负离子系统后,一直都受广大奔驰车主的追捧,香氛负离子不仅可以散发出清香淡雅的香气外,还可以对车内的空气进行过滤,使车内的有害气味通过负离子进行过滤,达到车内保持清…

prototype 和 __proto__

是什么? prototype(显示原型):每个函数都有一个prototype属性__proto__(隐式原型):每个实例对象都会有__proto__属性 两者有什么关系? 一般,构造函数的显示原型和其实例…

智能指针的延迟报错问题

最近工作上发现一个比较复杂的代码出现随机报错问题,话不多说,直接debug模式开启ASAN机制构建程序, set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 -g -fstack-protector -fsanitizeaddress -fno-omit-frame-pointer")很快能定位…

huggingface——设置不同层不同学习率

前言 这玩意教程咋这么难找???? 代码 参考:https://github.com/X-PLUG/mPLUG-Owl/blob/main/mPLUG-Owl2/mplug_owl2/train/mplug_owl2_trainer.py#L133C33-L133C33 先定义你的trainer,继承huggingface的…

[EFI]英特尔 冥王峡谷 NUC8i7HVK 电脑 Hackintosh 黑苹果efi引导文件

硬件型号驱动情况主板 英特尔 NUC8i7HVK 处理器 Intel Core™ i7-8809G (Kaby Lake-r) 已驱动内存2x16GB DDR4-2400已驱动硬盘1TB PCIe-NVMe M.2 SSD已驱动显卡Intel HD 630 (Empty Framebuffer)Radeon™ RX Vega M GH Graphics 4GB已驱动声卡Realtek HDA ALC700已驱动网卡 英特…

前端根据URL地址实现下载(txt,图片,word,xlsx,ppt)

前端根据URL地址实现下载(txt,图片,word,xlsx,ppt) 一、对于txt,图片类的二、对于word,xlsx,ppt类的1.a标签可以实现下载2. window.open() 一、对于txt,图片类…

aliexpress商品API(item_get-获得aliexpress商品详情):进行批量操作

使用AliExpress的店铺或分类API:这些API可以为你提供某个店铺或分类下的所有商品列表,然后你可以根据这个列表逐个查询商品详情。分批查询:你可以将商品ID分成多个批次,每次只查询一部分商品详情,这样既可以减少每次请…

用雪花算法生成全局唯一序列

雪花算法是一种分布式唯一ID生成算法,通过对时间戳、工作节点ID和序列号进行位运算和组合,生成一个可排序且唯一的64位ID。 实现原理: 首先,我们需要定义算法中的参数: 时间戳:使用当前时间戳,…

记录一个常量定义导致的重复问题duplicate symbol ‘_kk‘ in:

原因: 在.h文件中定义了一个常量 如下 NSString *const kk "FASDF";interface CardCourseViewController : LBBaseViewControllerend将这句代码去掉即可 NSString *const kk "FASDF";![请添加图片描述](https://img-blog.csdnimg.cn/direct…

工业RFID技术发展趋势分析

RFID技术是物联网的重要组成部分,是连接物理世界和数字世界的关键节点。RFID技术已经广泛应用于供应链管理、智能物流、零售、医疗、安防等领域,在工业制造领域也有着广泛的应用前景和市场潜力。 工业RFID技术发展趋势分析 工业RFID技术是一种利用无线射…