一、概述

近日使用 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不难看出,表名、类名不要加引号,记录值需要加引号。经过测试还发现,当记录值为字符串时需要加引号,记录值为数字时,不用加引号。