【python】【sql】格式化注意事项

如果需要格式化表名到 sql 语句,sql 引擎是不支持的。

所以表名需要用字符串格式化,但其他参数最好用 sql 自带的格式,这样就不用去调一些细节,比如字符串的值是否要带引号之类的。

比如:

python 复制代码
cur.execute('SELECT {0} FROM {1} WHERE {2}="{3}"'.format(columnName, tableName, columnName, value))

# 上述是字符串格式化,所以参数 {3},如果是字符串,还要显式指定 ""

优化的方案是:

python 复制代码
cur.execute(f'SELECT ? FROM {tableName} WHERE ?=?', [columnName, columnName, value])

# 或者
cur.execute(F'SELECT ? FROM {tableName} WHERE ?=?', [columnName, columnName, value])

# 其中:
# f 和 F 是 python 格式化字符串的方法(python 3.6及以上提供)
相关推荐
大白的编程日记.9 分钟前
【计算机基础理论知识】C++篇(二)
开发语言·c++·学习
网小鱼的学习笔记12 分钟前
python中MongoDB操作实践:查询文档、批量插入文档、更新文档、删除文档
开发语言·python·mongodb
Q_Q51100828522 分钟前
python的保险业务管理与数据分析系统
开发语言·spring boot·python·django·flask·node.js·php
亮11122 分钟前
Maven 编译过程中发生了 Java Heap Space 内存溢出(OutOfMemoryError)
java·开发语言·maven
Chef_Chen26 分钟前
从0开始学习R语言--Day40--Kruskal-Wallis检验
开发语言·学习·r语言
王小王-12330 分钟前
基于Python的程序员数据分析与可视化系统的设计与实现
python·数据挖掘·数据分析·招聘数据分析·程序员数据分析·招聘薪资数据分析·智联招聘可视化
Zhu_S W32 分钟前
深入理解Java虚拟机:Java内存区域与内存溢出异常
java·开发语言·jvm
灰海37 分钟前
原型与原型链到底是什么?
开发语言·前端·javascript·es6·原型模式·原生js
鸡蛋灌Bean1 小时前
Java常用设计模式大全
java·开发语言·设计模式