在Python中操作MySQL数据库,可以使用mysql-connector-python
库。以下是一个简单的教程,介绍如何在Python中使用mysql-connector-python
进行数据库操作。另外也可以使用pymysql库,两个差别不大,在文末会示例介绍。
1. 安装mysql-connector-python
首先,确保你已经安装了mysql-connector-python
库。如果没有安装,可以使用以下命令进行安装:
pip install mysql-connector-python
2. 连接到MySQL数据库
使用mysql.connector.connect()
方法连接到MySQL数据库。你需要提供数据库的主机地址、用户名、密码和数据库名称。
import mysql.connector
# 连接到MySQL数据库
mydb = mysql.connector.connect(
host="localhost", # 数据库主机地址
user="yourusername", # 数据库用户名
password="yourpassword", # 数据库密码
database="yourdatabase" # 数据库名称
)
print(mydb)
3. 创建游标
游标(Cursor)用于执行SQL语句并管理事务。使用mydb.cursor()
方法创建游标对象:
mycursor = mydb.cursor()
4. 创建表
使用游标对象执行SQL语句来创建表。例如,创建一个名为users
的表:
mycursor.execute("CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), email VARCHAR(255))")
5. 插入数据
使用mycursor.execute()
方法插入数据:
sql = "INSERT INTO users (name, email) VALUES (%s, %s)"
val = ("Alice", "alice@example.com")
mycursor.execute(sql, val)
# 提交更改
mydb.commit()
print(mycursor.rowcount, "记录插入成功。")
6. 查询数据
使用mycursor.execute()
方法查询数据,并使用mycursor.fetchall()
方法获取所有结果:
mycursor.execute("SELECT * FROM users")
myresult = mycursor.fetchall()
for x in myresult:
print(x)
7. 更新数据
使用mycursor.execute()
方法更新数据:
sql = "UPDATE users SET email = %s WHERE name = %s"
val = ("alice_new@example.com", "Alice")
mycursor.execute(sql, val)
# 提交更改
mydb.commit()
print(mycursor.rowcount, "记录更新成功。")
8. 删除数据
使用mycursor.execute()
方法删除数据:
sql = "DELETE FROM users WHERE name = %s"
val = ("Alice",)
mycursor.execute(sql, val)
# 提交更改
mydb.commit()
print(mycursor.rowcount, "记录删除成功。")
9. 关闭连接
完成所有操作后,使用mydb.close()
方法关闭数据库连接:
mycursor.close() # 关闭游标
mydb.close() # 关闭连接
mysql-connector-python和PyMySQL区别
mysql-connector-python
是由MySQL官方提供的,性能更好,一些新特性支持更好。PyMySQL
是一个纯Python实现的库,因此它不需要任何C编译器或额外的依赖。
Pymsql用法示例
import pymysql
# 连接到MySQL数据库
connection = pymysql.connect(
host='localhost',
user='yourusername',
password='yourpassword',
db='yourdatabase',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor
)
try:
with connection.cursor() as cursor:
# 创建表
cursor.execute("CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), email VARCHAR(255))")
# 插入数据
sql = "INSERT INTO users (name, email) VALUES (%s, %s)"
cursor.execute(sql, ('Alice', 'alice@example.com'))
# 提交更改
connection.commit()
# 查询数据
cursor.execute("SELECT * FROM users")
result = cursor.fetchall()
print(result)
finally:
# 关闭连接
cursor.close()
connection.close()
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END