批量生成sql语句
- 利用表格直接生成
# 例:A2 表示 A列第二行 公式表示为 ,A2,# 新增
=CONCATENATE("insert into users (id,code,name) values (null,'",A2,"','",B2,"');")# 修改
=CONCATENATE("update users set name = '",B3,"' where code = '",A3,"';")# 删除
=CONCATENATE("delete from users where code = '",A2,"';")
参考: https://cloud.tencent.com/developer/article/1666116
- pythonj脚本
import pandas as pd# 读取Excel文件
df = pd.read_excel('your_excel_file.xlsx')# 将每行数据生成INSERT语句
insert_statements = []
for index, row in df.iterrows():values = ", ".join([f"'{str(value)}'" for value in row])insert_statement = f"INSERT INTO your_table_name (column1, column2, ...) VALUES ({values});"insert_statements.append(insert_statement)# 将生成的INSERT语句写入文件
with open('insert_queries.sql', 'w') as f:for statement in insert_statements:f.write(statement + '\n')
- 代码解析
str(value)是将变量value转换为字符串类型的Python内置函数。这个函数的作用是将任何类型的数据转换为对应的字符串表示形式.
f"" 是 Python 3.6 引入的 f-string 格式化字符串的语法。在 f-string 中,可以在字符串中直接引用变量,并在字符串中插入它们的值。例如:python
name = "Alice"
age = 30
print(f"My name is {name} and I am {age} years old.")
这将输出:My name is Alice and I am 30 years old.
在 f-string 中,花括号 {} 内的表达式会被计算,并替换为其值的字符串表示。
", ".join 是 Python 中字符串的一个方法,用于将可迭代对象中的元素以指定的分隔符连接起来,并返回一个新的字符串。例如:python
my_list = ['apple', 'banana', 'orange']
result = ", ".join(my_list)
print(result)
这将输出:apple, banana, orange
在这个例子中,join 方法将列表 my_list 中的元素以逗号加空格的形式连接起来,并返回一个新的字符串。