如何用Python快速生成SQL语句?

2个月前 (11-17 23:53)阅读2回复0
路人甲
路人甲
  • 管理员
  • 注册排名2
  • 经验值98325
  • 级别管理员
  • 主题19665
  • 回复0
楼主

本文转自公家号: 凹凸数据

做为一名搞数据的,写SQL是每天必不成少的工做。而我又是一个喜好偷懒的人,就想着能不克不及利用Python快速生成SQL语句呢?

假设如今想建一个临时表本身操练,我利用 create table 建表后,还需要利用多条 INSERT INTO 语句向表中插入数据,详细语法如下图所示。

写入一行数据还好,但是若是N多行,手动就略微费事了。

我之前要么在编纂器Sublime Text3里多行操做,要么在Excel文件中利用函数生成SQL插入语句。

展开全文

▲Sublime Text3

若是想进一步偷懒,能够怎么做呢?

我希望可以利用Python一键将csv文件中的数据转成SQL语句,并输出到剪贴板上,如许我们间接粘贴到SQL编纂器上就能够间接运行了!

所要用到的表格数据(data_1.csv)如下所示:

我们能够如许做,Pandas模块读取csv文件的数据后,利用for轮回依次读取每一行的数据。并通过f-string格局化字符串,一键生成我们所需的SQL语句。

importpandas aspd

df = pd.read_csv( "data_1.csv")

tables = "mysql.newtable"

text = ""

forindex, row indf.iterrows:

text = f" {text}INSERT INTO {tables}VALUES(' {row[ 0]} ',' {row[ 1]} ',' {row[ 2]} ',' {row[ 3]} ',' {row[ 4]} ');\n"

text

在字符串中我们增加了 "\n" 用来换行,运行成果如下所示。

那么若何将输出的成果写入剪贴板呢?

importpyperclip

pyperclip.copy(text)

那个pyperclip模块贼简单,就两个函数:

copy 用于向剪贴板发送文本;

paste 用于从剪贴板领受文本。

copy 用于向剪贴板发送文本;

paste 用于从剪贴板领受文本。

若是我们将两段代码一路运行,就会在鼠标的剪切板上呈现SQL语句,详细效果如下所示。

▲运动作图GIF

如许我只需运行该Python代码,再粘贴到SQL编纂器中。

施行一下,胜利插入数据。

其实那种办法还能够应用在良多类似的场景,例如 UPDATE 语句、 DELETE 语句等等,构想都是一致的。

点那里👇存眷我,记得标星哦~

CDA课程征询

0
回帖

如何用Python快速生成SQL语句? 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息