【mysql数据库】python 3.7 脚本执行SQL语句,关于字符串变量的注意事项
转载一篇网友介绍Python 数据库的Connection、Cursor两大对象,写的非常好。
https://blog.csdn.net/guofeng93/article/details/53994112
最新在使用python操作数据库,发现使用cursor.execute执行mysql数据时,字符串变量的规范用法,总结如下。
1、字符串变量与SQL语句在同一个表达式中时,通配符使用 ‘%s’,有单引号。字符串变量与SQL语句在不同表达式中时,通配符使用 %s,无单引号。
2、SQL语句中的非字符串变量时,通配符使用 %s,任何时候都无单引号。
测试数据:
1、构建1个测试表test,包含3个字段,分别是int、varchar、varchar类型。
2、测试SQL语句中包含1个字符变量
测试语句 | 测试结果 |
cursor.execute(“insert into `test`(`姓名`) values(‘%s’)”, (‘路人甲’)) 或 cursor.execute(“insert into `test`(`姓名`) values(‘%s’)” % (‘路人甲’)) 或 name = ‘路人甲’ 或 name = ‘路人甲’ |
失败,写入数据库的名字是字符 %s,不是预期的 路人甲 |
cursor.execute(“insert into `test`(`姓名`) values(%s)” , (‘路人甲’)) 或 cursor.execute(“insert into `test`(`姓名`) values(%s)” % (‘路人甲’)) 或 name = ‘路人甲’ |
失败,语法错误 |
cursor.execute(“insert into `test`(`姓名`) values(‘路人甲’)”) 或 name = ‘路人甲’ |
成功,数据库写入路人甲 粗体部分为推荐用法 |
3、测试2个变量,分别测试2个都是字符串,1个整形和1个字符串
测试语句 | 测试结果 |
number = -100 或 number = -100 或 number = -100 或 number = -100 或 number = -100 |
失败,语法错误 |
number = -100 或 number = -100 或 number = -100 或 number = -100 或 number = -100 |
成功,数据库写入 -100和路人甲 粗体部分为推荐用法 |
转载自:https://blog.csdn.net/qq_39295735/article/details/84476532