根据上下文,sql = "INSERT INTO table_name(column1, column2, column3) VALUES (%s, %s, %s)",还有其他写法吗
时间: 2024-03-27 20:39:07 浏览: 99
MySql中使用INSERT INTO语句更新多条数据的例子
是的,`sql = "INSERT INTO table_name(column1, column2, column3) VALUES (%s, %s, %s)"` 是其中一种写法,还可以使用以下两种写法:
1. 使用命名占位符
```python
# SQL 插入语句
sql = "INSERT INTO table_name(column1, column2, column3) VALUES (%(value1)s, %(value2)s, %(value3)s)"
```
在这种写法中,占位符使用 `%` 加上变量名的形式表示,例如 `%s` 变成了 `%(value1)s`、`%(value2)s`、`%(value3)s`。在执行 SQL 语句时,需要将一个字典作为参数传递给 `execute()` 方法,字典中的 key 对应占位符中的变量名,value 对应要插入的值。
```python
cursor.execute(sql, {'value1': 'value1', 'value2': 'value2', 'value3': 'value3'})
```
2. 使用多重插入语法
```python
# SQL 插入语句
sql = "INSERT INTO table_name(column1, column2, column3) VALUES (%s, %s, %s), (%s, %s, %s), (%s, %s, %s)"
```
在这种写法中,可以一次性插入多条数据,每条数据使用一组括号包裹,并用逗号分隔。在执行 SQL 语句时,需要将所有要插入的值都传递给 `execute()` 方法,这里使用了一个列表将所有要插入的值传递给了 `execute()` 方法。
```python
values = [('value1', 'value2', 'value3'), ('value4', 'value5', 'value6'), ('value7', 'value8', 'value9')]
cursor.execute(sql, [item for sublist in values for item in sublist])
```
阅读全文