Python MySQL 插入数据
在开发过程中,经常会遇到需要将数据存储到MySQL数据库中的情况。本文将介绍如何使用Python语言来插入数据到MySQL数据库中。在开始之前,确保已经安装了MySQL数据库和对应的Python库。
安装MySQL Python库
首先需要安装mysql-connector-python
库,可以使用pip来进行安装:
pip install mysql-connector-python
安装完成后,即可开始连接MySQL数据库并插入数据。
连接MySQL数据库
首先,使用mysql.connector
模块连接到MySQL数据库。以下是一个简单的连接示例:
import mysql.connector
# 连接数据库
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="mydatabase"
)
print(mydb)
运行以上代码,如果连接成功,将会输出连接对象的信息。
插入数据
接下来,我们来看一下如何插入数据到MySQL数据库中。使用cursor()
方法来创建一个游标对象,通过游标对象执行SQL语句来插入数据。以下是一个示例:
import mysql.connector
# 连接数据库
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="password",
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, "记录插入成功。")
以上示例中,我们向customers
表中插入了一条数据。运行代码后,将会输出插入成功的记录数。
动态插入数据
有时候,我们需要动态插入数据,即根据用户输入来添加新的数据。以下示例展示了如何通过用户输入来插入数据:
import mysql.connector
# 连接数据库
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="mydatabase"
)
mycursor = mydb.cursor()
# 用户输入
name = input("请输入姓名:")
address = input("请输入地址:")
# 插入数据
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = (name, address)
mycursor.execute(sql, val)
# 提交更改
mydb.commit()
print(mycursor.rowcount, "记录插入成功。")
运行以上代码,将会提示用户输入姓名和地址,然后将输入的数据插入到数据库中。
批量插入数据
有时候,我们需要一次性插入多条数据到数据库中。以下示例展示了如何通过列表批量插入数据:
import mysql.connector
# 连接数据库
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="mydatabase"
)
mycursor = mydb.cursor()
# 批量插入数据
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = [
("Peter", "Lowstreet 4"),
("Amy", "Apple st 652"),
("Hannah", "Mountain 21"),
("Michael", "Valley 345")
]
mycursor.executemany(sql, val)
# 提交更改
mydb.commit()
print(mycursor.rowcount, "记录插入成功。")
运行以上代码,将会一次性插入多条数据到数据库中。
结语
通过本文的介绍,你学会了如何使用Python语言来插入数据到MySQL数据库中。你可以根据实际情况,灵活运用这些技巧来实现对MySQL数据库的数据插入操作。