一、概述
近日使用Python對Mysql數據庫進行操作,遇到SQL語句死活出問題的情況。由於最初沒有將異常打印出來,一直不知道原因。隨后,將異常打印出來之后,通過異常信息,對代碼進行修改。最終,成功實現了對數據庫的操作,並總結出了SQL語句在Python代碼中的格式(規范)問題。特此寫博文以記之。
二、問題描述
2.1 問題提出
特別注意:在建數據庫的時候,使用的表名、類名均帶引號
在Python語句中,我使用過三種格式的語句,分別為:
- 方式1:表名、類名、記錄值值均帶引號
sql = "INSERT INTO 'entity' ('twitterName') VALUES ('%s')" % (twitterName)
- 方式2:表名、類名帶引號,記錄值不帶引號
sql = "INSERT INTO 'entity' ('twitterName') VALUES (%s)" % (twitterName)
- 方式3:表名、類名不帶引號,記錄值帶引號
sql = "INSERT INTO entity (twitterName) VALUES ('%s')" % (twitterName)
2.2 得到的結果
方式1
方式2
方式3
2.3 結果分析與總結
從2.2不難看出,表名、類名不要加引號,記錄值需要加引號。經過測試還發現,當記錄值為字符串時需要加引號,記錄值為數字時,不用加引號。