让ChatGPT帮我写SQL

推荐一个Github上Start超过3.4K,可将自然语言转化为SQL语句的开源项目。

项目简介

这是一个利用ChatGPT,SQL与自然语言的翻译器。可以将自然语言转换为SQL语句,同样也可以把SQL语句转为自然语言。

该工具功能强大,对于初学者来说,还是很友好的,可以帮助初学者快速掌握SQL语法。

工具特色

  • 界面大气

  • 支持大小写切换

  • 一键复制

  • SQL语法高亮

  • 查询历史

效果截图

自然语言转为SQL

图片

支持中文等语言

图片

解释SQL语句

图片

本地安装测试

//下载源码
git clone http://github.com/whoiskatrin/sql-translator.git

//安装依赖
cd sql-translato
rnpm install

//生成应用程序
npm run build

//在 .env文件修改配置
OPENAI_API_KEY=$OPEN_API_KEY

//启动项目
npm start

在线工具

http://www.sqltranslate.app/

项目地址

http://github.com/whoiskatrin/sql-translator

更多开源项目请查看:一个专注推荐优秀.Net开源项目的榜单

- End -

文章首发于公众号【编程乐趣】,欢迎大家关注。
图片

本文转载于网络 如有侵权请联系删除

相关文章

  • 译著:云原生数据中心网络

    “浮云飘进我的生活,没有带来雨水或迎来风暴,却为落日的天空增添了色彩”—泰戈尔,飞鸟集云计算最大的好处是可以按需使用,按量计费,因此也通常被比喻为水和电。如果云计算是水和电,那么网络就是将这些计算能力输送到千家万户的水管和电线。如果你在从事云计算相关的行业,或者需要了解云计算的基本原理,那么学习其背后的网络知识将是不可或缺的。分布式应用架构的演变是一场由应用程序领舞,网络配合的双人舞,当应用程序开始翩翩起舞时,传统的网络已经无法跟上其灵活的步伐,于是现代数据中心网络的故事就开始了。虽然市面上有很多网络和云计算的中文书籍,但这些书籍要么偏重于介绍云计算的整体架构,要么偏重于介绍其中某一项网络技术,很少有技术书籍能够将云计算和相关网络知识很好地结合以来,帮助读者建立起一个完整的云计算网络知识体系。这本《云原生数据中心网络》是目前市面上可以找到的介绍云计算底层网络技术的最好的中文书籍之一。原版作者DineshG.Dutt是VXLAN的发明者,对于云原生数据中心网络有着深刻的见解。任何从事云计算行业相关的开发、运维、架构人员,都可以从这本书中汲取到有用的知识。如果你想要学习或者构建一个现代化的

  • Facebook 的自动化点对点连接

    导读:如何建立一个可扩展、自动化的点对点链接(Peering)管理系统?本文介绍了Facebook/Meta在自动化Peering方面的最佳实践。本文译自PeeringautomationatFacebook[1]。作者:JennyRamseyer,JakubHeichman互联网上的流量通过许多不同类型的链接流转。通过Peering这种快速且可靠的方法能让不同的网络和服务商之间交换流量。最初,我们常常通过费力不讨好的手动过程来管理Peering(这显然过于古典)。可靠的Peering对于Facebook和每个互联网使用者来说都是至关重要的。但是,如何建立一个可扩展的、自动的Peering管理系统,并没有行业标准。因此,我们开发了一种新的自动化方法,可以更快地进行自助式Peering配置。本文将分享我们在自动化Peering方面沉淀的最佳实践。自动化Peering是怎么运作起来的呢?我们以Facebook的用户场景为例。你正准备观看你的朋友刚刚发布的可爱猫咪视频,我们来追踪一下“猫咪视频”到“你的设备”的路径:选项A:通常是较慢的、不可靠的、高延迟的路线:你看到朋友的帖子里有个可爱猫咪

  • 干货 | 数亿个晶体管怎么放进芯片的?

    素材来源:网络整理:strongerHuang芯片一般是指集成电路的载体,也是集成电路经过设计、制造、封装、测试后的结果,通常是一个可以立即使用的独立的整体。如果把中央处理器CPU比喻为整个电脑系统的心脏,那么主板上的芯片组就是整个身体的躯干。对于主板而言,芯片组几乎决定了这块主板的功能,进而影响到整个电脑系统性能的发挥,芯片组是主板的灵魂。那么要想造个芯片,首先,你得画出来一个长这样的玩意儿给Foundry(外包的晶圆制造公司)▼再放大▼我们终于看到一个门电路啦!这是一个NANDGate(与非门),大概是这样▼A,B是输入,Y是输出其中蓝色的是金属1层,绿色是金属2层,紫色是金属3层,粉色是金属4层。那晶体管(“晶体管”自199X年以后已经主要是MOSFET,即场效应管了)呢?仔细看图,看到里面那些白色的点吗?那是衬底,还有一些绿色的边框?那些是ActiveLayer(也即掺杂层)。Foundry是怎么做的呢?一、大体上分为以下几步0、首先搞到一块圆圆的硅晶圆,就是一大块晶体硅,打磨的很光滑,一般是圆的。1、湿洗:用各种试剂保持硅晶圆表面没有杂质。2、光刻:用紫外线透过蒙版照射硅晶圆

  • V8带来的JS性能优化

    两类型语言一、编译型语言:在程序执行之前必须进行专门的编译过程,如C、C++、Java等。编译型语言有以下特点:只需编译一次**就可以把源代码编译成机器语言,后边的执行无需重新编译,直接使用之前的编译结果就可以,因此执行效率比较高。程序执行效率比较高,但比较依赖编译器,因此跨平台性差一些。不同平台对编译器影响很大。16位系统下int是2个字节(16位),而32位系统下int占4个字节。32位系统下long类型占4字节,而64位下long类型占8个字节。二、解释型语言:支持动态类型,弱类型,在程序运行的时候才进行编译,而编译前需要确定变量的类型,效率比较低,对不同系统平台有较大的兼容性。解释型语言有以下特点:源代码不能直接编译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。程序不需要编译,程序在运行的时候才需要编译成机器语言,每执行一次都要编译一次。运行效率一般相对比较低,依赖解释器,跨平台性好。三、比较:一般,编译型语言的运行效率比解释型语言更高,但不能一概而论。编译型语言的跨平台特性比解释型语言差一些。随着web相关技术的发展,JavaScript所要承担的工作也

  • SendPkt快速入门[Python]

    SendPkt快速入门 作者: gashero 电邮: harry.python@gmail.com 原文地址: http://gashero.yeax.com/?p=26 项目主页: http://sendpkt.googlecode.com 日期: 2007-10-03 版本: sendpkt0.2 修订版: 1 目录 1简介 2使用SendPkt的流程 3SendPkt发送数据包的简单例子 4SendPkt发送ARP查询包的例子 5参考 1简介 摘自SendPkt项目wiki。 SendPkt是一套同时可以运行在Linux/Win32的发送链路层数据包的Python扩展库。 SendPkt在Linux和Win32下实现方式是不同的,但是提供对Python的相同接口,确保Python程序可以不经过修改就可以移植。 在Win32下SendPkt使用WinPcap?中的pcap_sendpacket()函数发送数据包。 在Linux下SendPkt使用libnet的libnet_adv_write_link()函数发送数据包。 同时SendPkt还提供了查找网络接口设备的功能,以供发送

  • 14.非父子组件之间传值

    非父子组件之间传值1.在src/model目录下新建VueEvent.js文件importVuefrom"vue"; varVueEvent=newVue() exportdefaultVueEvent;复制2.在src/components目录下新建组件Home.vue和News.vueHome.vue<template> <div> <h2>{{msg}}</h2> <br> <button@click="emitNews()">给News组件广播数据</button> <br> </div> </template> <script> importVueEventfrom"../model/VueEvent.js" exportdefault{ name:'home', data(){ return{ msg:'首页组件' } }, methods:

  • 2019阿里、腾讯、字节跳动Android高级面试题小整理

    前言找工作还是需要大家不要紧张,有我们干这一行的接触人本来就不多难免看到面试官会紧张,主要是因为怕面试官问的问题到不上来,那时候不要着急,答不上了的千万不然胡扯一些,直接就给面试官说这块我还没接触到,以后如果工作当中遇到的话我可以很快的吧这个问题给解决了,但是我们有了这篇文章,就不一样了,基本上问的问题都有适当的看一下,到时候很快就可以拿到offer我在这里祝大家工作顺利,天天开心~好了下面就是正题。阿里巴巴面试整理线程原理垃圾回收机制的实现Https原理Handler实现线程通信Glide对Bitmap的缓存与源码复用如何做到给你一个Demo如何快速定位ANR对Dalvik虚拟机的认识Android虚拟机Dalvik与ART区别进程保活如何做到,保活率有多高Binder通信原理与机制Handler中有loop死循环,为什么没有阻塞主线程,原理是什么AMS在Android的作用是什么,Activity启动跟AMS有什么关系PMS了解过吗?怎么看?聊聊PMS详细实现流程腾讯面试整理热修复增量升级设计一个多用户、多角色的APP架构Volatile关键字与synchronized关键字在内存

  • HanLP-基于HMM-Viterbi的人名识别原理介绍

    Hanlp自然语言处理包中的基于HMM-Viterbi处理人名识别的内容大概在年初的有分享过这类的文章,时间稍微久了一点,有点忘记了。看了baiziyu分享的这篇比我之前分享的要简单明了的多。下面就把文章分享给大家交流学习之用,部分内容有做修改。本文主要介绍一下HanLP是如何利用HMM来做人名识别的。基本思想是把词语序列作为观测序列,将角色序列作为隐藏序列,当模型预测出最佳隐藏状态序列后,利用模式最大匹配法,匹配出人名实体。下边说一模型的三要素在这个应用中所对应的内容,因为训练阶段就是要求解这三个要素的值。假设有下边的观测序列和其对应的隐藏序列观察值序列:词1词2…词n隐变量序列:角色1角色2…角色n训练阶段:统计三个要素(三个矩阵的元素值)初始概率分布:各隐变量标记意义列于下表状态转移概率分布:观测概率分布:有关这些概率值的计算都很简单,就是频率法,留在后边介绍隐马时候再写。预测阶段:根据训练得到的三个要素,利用Viterbi算法求解得到了最优隐藏变量序列角色1*角色2*...角色n*最大模式匹配阶段:利用下边的模式串匹配出人名{BBCD,BBE,BBZ,BCD,BEE,BE,BG

  • 当无人货架、无人超市满大街,虚火过旺新零售或许真的要转型了?

    如果用一个词来形容当下的新零售的话,“布局”再恰当不过了。尽管现在有关新零售的布局早已过了巨头争霸的时代,但是随着人们对于新零售认识的逐步深入,新零售的布局开始变得深度和多维。新技术、新模式等丰富和拓展新零售内涵和概念的布局不断出现,同时新零售在电商行业里的份额同样开始增加。尽管如此,人们对于新零售依然处于一种忙乱的状态,因为人们依然找不到一种合适的方式去介入新零售,获得获得突破性的发展,对于大多数人来讲所谓的新零售依然仅仅只是一个概念而已。按照马云对于新零售的阐述,它应当是一种全新的存在,同当下的电商并无太多的联系,而事实情况却是人们通过将新零售与电商联系起来以此来抵消人们对新零售认识不清楚的问题。的确,这种方式能够让人们更加快速地认识和了解新零售,但它同样让人们陷入到了一个误区,那就是它会让人们片面地认为所谓的新零售就是电商的另外一种模式。基于这样一种逻辑,如何更加清晰地认识新零售,了解新零售显得非常重要。只有这样新零售才不仅仅只是一个概念,而是一个可以落地到真实商业模式当中的存在。那么,现在的新零售市场到底存在哪些问题?我们应当如何看待新零售才能实现更大的发展,避免陷入电商陷阱里

  • Devops step by step

    接着上次分享的devops历程[FollowmeDevops实践之路],大家希望能够出一个stepbystep手册,那今天我就来和手把手来一起搭建这么一套环境,演示整个过程!实验环境需要准备docker/dockercompose建议大家使用国外的vps学习,不需要考虑网络/gwf的问题/方便(本demo搭建在linode上面,注册可以免费使用2个月)https://www.linode.com/?r=548a820eda1d06ec584ea4b0c72ce02db6f5910c先clone下代码Gitclonehttps://github.com/FollowmeTech/jenkins-cicd.git相关的文件和解释如下:架构图如下我们需要依赖dockerregister和portainer为此,我们写了一个简单的register-portainer-docker-compose.yaml文件,方便快熟演示一件启动(生产环境中请使用harbor替代docker-register)docker-compose-fregister-portainer-docker-compose.

  • 原 八、BOM

    作者:汪娇娇时间:2017年11月18日BOM提供了很多对象,用于访问浏览器的功能,这些功能与任何网页内容无关。一、window对象BOM的核心对象是window,它表示浏览器的一个实例。在浏览器中,window对象有双重角色,它既是通过JavaScript访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象。1、全局作用域全局作用域中声明的变量、函数都会变成window对象的属性和方法。定义全局变量与在window对象对象上直接定义属性的差别:全局变量不能通过delete操作符删除,而直接在window对象上的定义的属性可以。2、窗口关系及框架top:top对象始终指向最高(最外)层的框架,也就是浏览器窗口;parent:parent对象始终指向当前框架的直接上层框架(某些情况下,parent有可能等于top);self:它始终指向window。3、窗口位置screenLeft和screenTop:分别用于表示窗口相对于屏幕左边和上边的位置。支持的浏览器:IE、Safari、Opera和ChromescreenX和sreenY:同上。支持浏览器:Firefox、S

  • iOS多Target开发相似App

    我们在iOS开发中可能会遇到同时开发多个类似项目的情况。这些项目大同小异,有诸多代码可以共用,如果每个项目都分别开发,这在后期的迭代中会十分繁琐。为了解决这个问题,使用多Target开发是一种比较好的选择,本文就这一技术实现进行简要总结。一、理解项目中的Porject与Target使用Xcode来开发项目,其中的Project是一个整体项目相当于一个仓库,包括了所有的代码和资源文件。而Target相当于一个具体的产品,包含了对于代码,资源文件的具体使用规则和配置。一个Project可以包含多个Target,也就是说通过不同Target我们可以生成不同的APP。二、多Target开发项目的实践步骤使用多Target来创建项目,就以我当前正在开发的亲戚买房APP为例。需求是这样的:亲戚买房是一个为买房人提供砍价服务的APP,APP的用户需要区分为用户,专家和砍价师三个用户群体。所以这里以Customer,Consul,Bargain三个Target来开发应用以QQMF(亲戚买房)为名创建一个新的工程如下:屏幕快照2017-11-20上午11.25.03.png创建三种Target 创建新T

  • 【愚公系列】2022年08月 Go教学课程 029-面向对象简介

    文章目录一、面向对象简介1.面向对象和面向过程1.1面向过程1.2面向对象1.3面向对象和面向过程差别2.面向对象和面向过程案例一、面向对象简介1.面向对象和面向过程1.1面向过程所谓的面向过程就是:强调的是步骤、过程、每一步都是自己亲自去实现的。这些都是以什么正在发生为主要目标进行编程,与面向对象明显的不同就是封装、继承、类。简写为POP。1.2面向对象所谓的面向对象其实就是找一个专门做这个事的人来做,不用关心具体怎么实现的。所以说,面向过程强调的是过程,步骤。而面向对象强调的是对象,也就是干事的人。1.3面向对象和面向过程差别面向对象编程面向过程编程中心以对象为中心以过程为中心知识点类的创建和调用函数的创建和调用程序组成一组对象的集合一系列过程的集合适用场景较复杂,尤其是持续更新的代码较简单,且功能较为稳定的代码面向对象的好处就是封装、继承、多态。2.面向对象和面向过程案例1、面向过程packagemain import( "fmt" ) funcadd(a,bint)(cint){ c=a+b return } funcmain(){ a,b:=

  • Java 19 正式发布,改善多线程、并发编程难度

    Java19在数分钟前正式发布,这是一个非LTS(长期支持)版本,该版本的七项功能包括结构化并发、记录模式、外部函数和内存API的预览,以及对开源Linux/RISC-V指令集架构(ISA)的支持。新特性JEP405RecordPatterns(预览)JEP422Linux/RISC-VPortJEP424ForeignFunction&MemoryAPI(预览)JEP425VirtualThreads(预览)JEP426VectorAPI(第四次孵化)JEP427PatternMatchingforswitch(第三次预览)JEP428StructuredConcurrency(孵化)JEP405RecordPatterns这是对Java17正式生效的RecordClass的增强。JEP405让记录模式和类型模式可以嵌套,以实现强大的、可声明的、可组合的数据处理形式。在JDK16中,我们已经可以实现下列特性://jdk16以前 if(oinstanceofString){ //及时类型匹配依然需要转换 Strings=(String)o; } //jdk16以后 if(oi

  • JAVA处理Blob大对象

     Blob对象是SQLBlob的Java语言映射。SQLBlob是一个内置类型,它可以将一个二进制大对象保存在数据库中。接口ResultSet、CallableStatement和PreparedStatement中的方法允许程序员使用与访问SQL92内置类型同样的方式来访问SQL99类型BLOB。 在标准实现中,JDBC驱动程序在后台使用SQL类型LOCATOR(BLOB)来实现Blob接口。LOCATOR(BLOB)指向保存在数据库服务器上的SQLBLOB值,而且这些操作作用在这个LOCATOR(定位器)上与作用在BLOB值本身有同样的结果。 意味着用户可以在一个Blob实例上执行操作而不必将这个BLOB数据物化到用户上,这将显著的提高性能。因为驱动程序在后台使用LOCATOR(BLOB),所以它的使用对程序员是完全透明的。   Blob实例的标准行为一直保持有效,直到这个事务(创建一个Blob的事务)执行了提交或者回滚操作。 1、创建Blob对象下面的代码说明了如何创建一个Blob对象,其中stmt是一个Statement对象: State

  • linux中fork()函数详解

    转自:https://www.cnblogs.com/dongguolei/p/8086346.html   一、fork入门知识      一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。   一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。     我们来看一个例子:   [cpp] viewplain copy   /*   *  fork_test.c   *  version 1   * &

  • Educational Codeforces Round 116 (Rated for Div. 2) 解题报告

    A-ABBalance 题意 给出一个只由字符\(a\)和\(b\)组成的字符串\(s\),求最少的修改使\(s\)中\(ab\)的出现次数和\(ba\)的出现次数相等。 思路 \(s\)中\(ab\)和\(ba\)都只会在连续段之间出现,并且交替出现,所以出现次数最多相差\(1\)。如果一共有奇数段,两者的出现次数肯定相等;如果有偶数段,只需要修改第一个字符就会变成奇数段。 所以只要出现次数不相等就修改第一个字符即可。 代码 #include<cstdio> #include<cstring> usingnamespacestd; constintMAXN=100+5; chars[MAXN]; intn; intmain(){ intT; scanf("%d",&T); while(T--){ scanf("%s",s+1); n=strlen(s+1); intcntAB=0,cntBA=0; for(inti=1;i<=n-1;i++){ if(s[i]=='a'&&s[i+1]=='b'){ cntAB++; }

  • magento 自定义url路径 和 filter data 小结

    背景是往一个第三方的搜索插件里面加入filter功能。   首先是路径,插件自己定义了一个router,类似于cms。那首先说说router好了,从入口一路追查的话,会发现最后进入的是Mage_Core_Controller_Varien_Front类下面的dispatch()函数。 1publicfunctiondispatch() 2{ 3$request=$this->getRequest(); 4 5//Ifpre-configured,checkequalityofbaseURLandrequestedURL 6$this->_checkBaseUrl($request); 7 8$request->setPathInfo()->setDispatched(false); 9 10$this->_getRequestRewriteController()->rewrite(); 11 12Varien_Profiler::start('mage::dispatch::routers_match'); 13$i=0; 14whil

  • 从零开始使用 webpack5 搭建 react 项目

    本文的示例项目源码可以点击这里获取 一、前言 webpack5也已经发布一段时间了,其模块联邦、bundle缓存等新特性值得在项目中进行使用。经过笔者在公司实际项目中的升级结果来看,其提升效果显著,热更新时间由原来的8s减少到了2s,会极大的提升开发幸福感。除此之外,webpack5也带来了更好的treeshaking算法,项目的打包体积也会进一步减少,提升用户体验。 目前来看,create-react-app脚手架还没有适配webpack5,如果你想熟悉下如何从零开始配置webpack5项目的话,不妨跟着文档操作一下。 二、项目初始化 2.1初始化文件结构 首先创建一个文件夹,进行npm初始化 mkdirreact-webpack5-template cdreact-webpack5-template #npm初始化配置 npminit-y #创建webpack配置文件 touchwebpack.common.js #创建babel配置文件 mkdirsrc&&cdsrc #创建入口文件 touchindex.js cd..&&mkdirbuild

  • 将xml转为array

    /***将xml转为array*@paramstring$xml*@throwsException*/ publicfunctionFromXml($xml) {   if(!$xml){     thrownewException("xml数据异常!");   }  //将XML转为array  //禁止引用外部xml实体  libxml_disable_entity_loader(true);  returnjson_decode(json_encode(simplexml_load_string($xml,'SimpleXMLElement',LIBXML_NOCDATA)),true); } 突然十年便过去,都什么时候了,努力,奋斗!

  • mysql 基本使用 问题排查

    一、host''isnotallowedtoconnecttothisMysqlserver 原因:没有打开远程访问 1、远程链接服务器,在服务器内mysql系统目录下的/bin文件下执行./mysql-uroot-p;输入密码登入mysql;2、在mysql中执行usemysql命令,进入系统数据库  3、在mysql数据库中执行 updateusersethost='%'whereuser='root';;如果返回结果如下图:  该结果表示是由于当前的root用户限制在当前的内网ip内访问的,需要修改他的访问域。 4、在mysql数据库中执行updateusersethost=‘%’whereuser=‘root’;5、FLUSHPRIVILEGES; 这个命令是刷新MySQL的权限相关表 二、调用SSPI失败,请参见内部异常。 原因分析: 据查此问题因mysql数据库没有安装ssl证书导致。 解决分析: 连接字符串中加上“SslMode=none”;。 stringconnectStr="server=127.0.0.1;UserId

相关推荐

推荐阅读