INSERT INTO
Python中的INSERT语句用来向数据库中插入新的行。INSERT语句要求至少指定表名和新行中要插入的值。以下是INSERT语句的基本语法:
Syntax
```
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
其中:
- `table_name`:要插入数据的表名。
- `(column1, column2, column3, ...)`:要插入的目标列名。
- `VALUES`:要插入的值。
- `(value1, value2, value3, ...)`:要插入的值,必须与目标列的数量相同。
插入单条数据
以下示例向`customers`表中插入一条新的记录:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
)
mycursor = mydb.cursor()
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("John", "Highway 21")
mycursor.execute(sql, val)
mydb.commit()
print(mycursor.rowcount, "record inserted.")
该示例中,我们首先创建了一个名为`mydb`的数据库连接对象,并使用`cursor()`方法创建了一个名为`mycursor`的游标对象。
在执行INSERT语句之前,我们定义了`sql`变量,其中包含了表名(`customers`)和要插入的列名(`name`和`address`)。
接下来,我们定义了`val`变量,其中包含了要插入的具体值。在这个示例中,我们向`name`列中插入了`John`,向`address`列中插入了`Highway 21`。
我们通过在`mycursor`上调用`execute()`方法并传递`sql`和`val`参数来执行INSERT语句。如果需要的话,我们可以使用`commit()`方法提交更改,然后打印出被影响的行数。
插入多条数据
有时候,我们需要一次向表中插入多条数据。为了实现这一目标,我们可以使用下面的语法:
val = [
('Peter', 'Lowstreet 4'),
('Amy', 'Apple st 652'),
('Hannah', 'Mountain 21'),
('Michael', 'Valley 345'),
('Sandy', 'Ocean blvd 2'),
('Betty', 'Green Grass 1'),
('Richard', 'Sky st 331'),
('Susan', 'One way 98'),
('Vicky', 'Yellow Garden 2'),
('Ben', 'Park Lane 38'),
('William', 'Central st 954'),
('Chuck', 'Main Road 989'),
('Viola', 'Sideway 1633')
]
mycursor.executemany(sql, val)
print(mycursor.rowcount, "was inserted.")
在这个示例中,我们定义了一个名为`val`的列表,其中包含了要插入的所有行的值。我们首先使用列表的方式将所有数据存储在一个变量中,然后使用`executemany()`方法执行INSERT语句。我们使用`commit()`方法提交更改,然后打印出被影响的行数。
回滚更改
如果执行INSERT语句之后发生了错误,我们可以使用`rollback()`方法回滚所有更改并停止事务的执行。以下示例演示了如何回滚更改:
try:
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("John", "Highway 21")
mycursor.execute(sql, val)
mydb.commit()
print(mycursor.rowcount, "record inserted.")
except:
mydb.rollback()
在这个示例中,我们使用`try`/`except`块来控制INSERT语句的执行。如果INSERT语句执行成功,我们就提交更改并打印出被影响的行数。我们就回滚所有更改。
Python中的INSERT语句用来向数据库中插入新的行。INSERT语句要求至少指定表名和新行中要插入的值。我们可以使用`execute()`方法执行INSERT语句,也可以使用`executemany()`方法一次性插入多条数据。
如果执行INSERT语句之后发生了错误,我们可以使用`rollback()`方法回滚所有更改并停止事务的执行。
我们需要使用`commit()`方法提交更改。这是因为Python中的INSERT语句执行之后并不会自动将更改提交到数据库中。只有当我们调用了`commit()`方法之后,才会将更改提交并保存到数据库中。
网友留言(0)