文生SQL

news/2024/11/17 22:45:50/文章来源:https://www.cnblogs.com/informatics/p/18303666

主页

  • 个人微信公众号:密码应用技术实战
  • 个人博客园首页:https://www.cnblogs.com/informatics/

缘起

2022年12月ChatGPT的横空出世,掀起了LLM大模型的科技热潮,一时间文胜文, 文胜图,文生视频为大众所周知。SQL(Structured Query Language)是一种用于管理和操作关系型数据库的标准化语言。它是与关系型数据库系统进行交互的主要工具,具有重要的作用和广泛的应用领域,SQL包含两个重要的子语言:

  • DDL: Data Definition Language,数据定义语言,用于定义数据库对象,如数据库、表、列等。
  • DML: Data Manipulation Language,数据操作语言,用于对数据库中的数据进行操作,如增、删、改、查等。

在实际程序开发和数据分析中,最常用的是DML语言,即对数据库中的数据进行操作。在DML语言中,最常用的是SELECT语句,用于查询数据库中的数据。而SELECT语句也是SQL中形式最为复杂的语句之一。既然LLM可以生成文本,那么是否可以生成SQL语句呢?这就是本文的研究内容。

本文组织形式如下:

  • 文生SQL
  • GPT生成SQL语句
  • SQLCoder生成SQL语句
  • GPT和SQLCoder生成SQL语句的对比
  • 总结

文生SQL

文生SQL:顾名思义,即通过输入文本生成SQL语句。文生SQL的应用场景有很多,比如在数据分析中,我们可以通过输入自然语言描述的需求,生成对应的SQL语句,从而实现数据的查询和分析。

GPT生成SQL语句

GPT作为通用大模型,能够生成各种类型的文本,包括SQL语句。GPT生成SQL语句的方法很简单,只需要输入自然语言描述的需求,GPT就可以生成对应的SQL语句。下面是一个具体的例子(注:以GPT3.5为例):

  1. 输入需求,GPT返回生成的测试表,并插入测试数据
    image

  2. 生成查询SQL语句
    image

SQLCoder生成SQL语句

SQLCoder是一个专门用于生成SQL语句的工具,与GPT类似,SQLCoder也是通过输入自然语言描述的需求,生成对应的SQL语句。不同的是:

  • SQLCoder目前只能生成SELECT语句,而GPT可以生成更多类型的SQL语句
  • SQLCoder专门针对SQL语句生成,生成的SQL语句更加准确和规范
  • SQLCoder支持连接数据库,对于生成的SQL语句可以直接自动执行,并以图表的形式展示结果

下面是一个具体的例子:

  1. 连接数据库
    image

  2. 输入需求,生成SQL语句
    image

  3. 查看结果(图表展示)
    image

GPT3.5和SQLCoder对比

GPT3.5和SQLCoder都可以生成SQL语句,但是它们之间有一些区别:

GPT3.5 SQLCoder
类型 通用大模型 专门用于生成SQL语句的工具
参数量 20B 7B
生成速度 较慢 较快
准确率 较高 很高
结果展示 不能 可以
开源
  • GPT是通用大模型,可以生成各种类型的文本,包括SQL语句;SQLCoder是专门用于生成SQL语句的工具
  • 模型参数:GPT3.5的参数量为20B,而测试用的SQLCoder的参数量仅为7B
  • 生成速度:GPT生成SQL语句的速度较慢,而SQLCoder生成SQL语句的速度相比下较快
  • 准确率:GPT生成SQL语句的准确率较高,但SQLCoder生成的SQL语句更加准确和规范
  • SQLCoder可以连接数据库,对生成的SQL语句进行自动执行,并以图表的形式展示结果;GPT只能生成SQL语句,不能连接数据库和展示结果
  • SQLCoder开源;GPT需要不开源

总结

本文介绍了文生SQL的概念和应用场景,以及GPT和SQLCoder生成SQL语句的方法。GPT作为通用大模型,能够生成各种类型的文本,包括SQL语句;SQLCoder是一个专门用于生成SQL语句的工具,生成的SQL语句更加准确和规范。文生SQL的应用前景广阔,可以在数据分析、数据挖掘等领域发挥重要作用。希望本文对读者有所帮助,谢谢!

参考文献

  • [1] GPT-3.5: https://openai.com/index/chatgpt/
  • [2] SQLCoder: https://github.com/defog-ai/sqlcoder
  • [3] SQLCoder demo: https://defog.ai/sqlcoder-demo/
  • [4] SQL: https://en.wikipedia.org/wiki/SQL

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

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

相关文章

「代码随想录算法训练营」第十一天 | 二叉树 part1

二叉树的基本知识 链接:https://programmercarl.com/二叉树理论基础.html 要点:深度优先遍历前序遍历(递归法,迭代法) 中序遍历(递归法,迭代法) 后序遍历(递归法,迭代法)广度优先遍历层次遍历(迭代法)由于栈就是递归的一种实现结构,因此前中后序遍历的逻辑可以借…

从0到1打造一个 WebRTC 应用

🧑‍💻 写在开头 点赞 + 收藏 === 学会🤣🤣🤣前言 2020 年初突如其来的新冠肺炎疫情让线下就医渠道几乎被切断,在此背景下,微医作为数字健康行业的领军者通过在线问诊等形式快速解决了大量急需就医人们的燃眉之急。而作为微医 Web 端在线问诊中重要的一环-医患之间…

K8S 中的 CRI、OCI、CRI shim、containerd

哈喽大家好,我是咸鱼。 好久没发文了,最近这段时间都在学 K8S。不知道大家是不是和咸鱼一样,刚开始学 K8S、Docker 的时候,往往被 CRI、OCI、CRI shim、containerd 这些名词搞得晕乎乎的,不清楚它们到底是干什么用的。所以今天,咸鱼打算借这篇文章来解释一下这些名词,帮…

通过手机去访问本地写的h5页面(使用同一个局域网)

主要流程为: 打开cmd,然后输入一行指令1.npm install http-server -g(全局安装http-server,前提是有node环境,并且手机和电脑用的是同一个局域网内)2.然后通过cmd进入到你放html文件的文件夹内 3.通过http-server指令开启服务,cmd就会提示:

Turtlebot3在ROS Gazebo中使用OpenCV检测并跟踪球体

原文链接:https://www.youtube.com/watch?v=Rw6ATkORRG8一个小巧的机器人在虚拟世界中敏捷地追踪着一个滚动的球体。Turtlebot3,一个搭载ROS操作系统的智能机器人,在Gazebo仿真环境中,利用OpenCV的神奇力量,展现出令人惊叹的视觉追踪能力。Turtlebot3的"眼睛"是…

Python循环控制

本文介绍了Python编程语言中关于for循环和if条件控制的一些基本使用。包含了单层循环的退出机制和多层循环的退出机制,使得我们在满足特定条件时,可以直接结束多层循环。技术背景 循环控制是每一门编程语言的基础,最常用的就是for循环和while循环。使用循环可以很大程度上简…

【C/C++】结构体内存对齐

结构体内存对齐详解 1、第一个成员在与结构体变量偏移量为0的地址处2、其他成员变量要偏移到 对齐数 的整数倍的地址处 ,注意 偏移是从结构体首地址处开始的。对齐数 取的是 编译器默认的一个对齐数 与 该成员大小 这个俩个数中的最小值。【VS中默认的值为8、Linux环境默认不设…

我不应该用JWT的!

一、前言 大家好呀,我是summo,之前有自学过Shrio框架,网上一搜就有SpringBoot整合Shrio+ JWT的文章,我是在学习Shrio框架的时候顺带学的JWT。后来我还看见有很多博主专门写文章介绍JWT,说这个东西的优点很多,安全性好、去中心化、方便啥的,我就把JWT也应用在我们自己的系…

OpenAI 曝新项目「草莓」,提升 AI 推理能力;智谱 AI 开源视频理解模型丨 RTE 开发者日报

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑的个人观点…

2024-07-15 vue组件发布npm后,再使用,样式不见了?==》查看样式是否在dist包里,有的话应该就是样式没引用

哎,嗯。。。emmm。。。 好,问题就是这样的,最近写了vue组件打算上到npm,然后上是上了,但是样式却没有生效??左上角是组件样式本地调试的截图,可以看到是生效的,右上角的截图是我在别的项目引用了我写的这个库,结果样式却没有生效。 我打包后的文件列表如下: 注意:s…

centos8 内核升级教程 执行安装成功后 reboot

Centos 处理步骤 先设置DNS为114.114.114.114等 CentOS 8 升级内核到 6.9 步骤 **1 查看内核现状版本 4.18** [root@localhost yum.repos.d]# hostnamectl Static hostname: localhost.localdomain Icon name: computer-vm Chassis: vm Machine ID: 1c063b9ed186473e891a2fe6ac…

【笔记】Nmap工具原理探索

学习记录下计网原理的东西【笔记】Nmap工具原理探索 原文章:【THM】Nmap(Nmap工具使用简介)-学习 - Hekeatsll - 博客园 (cnblogs.com) Nmap是一款跨平台的开源端口扫描软件,它用来扫描计算机的开放端口,以确定运行的网络服务,并推断出计算机运行的操作系统 Nmap三种基本扫…