如何用Python快速生成SQL語句?
假如現(xiàn)在想建一個(gè)臨時(shí)表自己練習(xí),我使用create table建表后,還需要使用多條INSERT INTO語句向表中插入數(shù)據(jù),具體語法如下圖所示。

寫入一行數(shù)據(jù)還好,但是如果N多行,手動(dòng)就略微麻煩了。
我之前要么在編輯器Sublime Text3里多行操作,要么在Excel文件中使用函數(shù)生成SQL插入語句。

如果想進(jìn)一步偷懶,可以怎么做呢?
我希望能夠使用Python一鍵將csv文件中的數(shù)據(jù)轉(zhuǎn)成SQL語句,并輸出到剪貼板上,這樣我們直接粘貼到SQL編輯器上就可以直接運(yùn)行了!
所要用到的表格數(shù)據(jù)(data_1.csv)如下所示:

我們可以這樣做,Pandas模塊讀取csv文件的數(shù)據(jù)后,使用for循環(huán)依次讀取每一行的數(shù)據(jù)。并通過f-string格式化字符串,一鍵生成我們所需的SQL語句。
import?pandas?as?pd
df?=?pd.read_csv("data_1.csv")
tables?=?"mysql.newtable"
text?=?""
for?index,?row?in?df.iterrows():
????text?=?f"{text}INSERT?INTO?{tables}?VALUES('{row[0]}','{row[1]}','{row[2]}','{row[3]}','{row[4]}');\n"
text
在字符串中我們?cè)黾恿?code style="font-size: 14px;overflow-wrap: break-word;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px;background-color: rgba(27, 31, 35, 0.05);font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(60, 112, 198);">"\n"用來換行,運(yùn)行結(jié)果如下所示。

那么如何將輸出的結(jié)果寫入剪貼板呢?
import?pyperclip
pyperclip.copy(text)
這個(gè)pyperclip模塊賊簡單,就兩個(gè)函數(shù):
copy()用于向剪貼板發(fā)送文本;paste()用于從剪貼板接收文本。
如果我們將兩段代碼一起運(yùn)行,就會(huì)在鼠標(biāo)的剪切板上出現(xiàn)SQL語句,具體效果如下所示。

這樣我只需運(yùn)行該P(yáng)ython代碼,再粘貼到SQL編輯器中。

執(zhí)行一下,成功插入數(shù)據(jù)。

其實(shí)這種方法還可以應(yīng)用在很多類似的場(chǎng)景,例如UPDATE語句、DELETE語句等等,思路都是一致的。
好啦,偷懶小技巧加一~
END
各位伙伴們好,詹帥本帥搭建了一個(gè)個(gè)人博客和小程序,匯集各種干貨和資源,也方便大家閱讀,感興趣的小伙伴請(qǐng)移步小程序體驗(yàn)一下哦?。g迎提建議)
推薦閱讀
牛逼!Python常用數(shù)據(jù)類型的基本操作(長文系列第①篇)
牛逼!Python的判斷、循環(huán)和各種表達(dá)式(長文系列第②篇)
