Python操作Mysql数据库时SQL语句的格式问题
一、概述
近日使用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不难看出,表名、类名不要加引号,记录值需要加引号。经过测试还发现,当记录值为字符串时需要加引号,记录值为数字时,不用加引号。