1. 连接到MySQL数据库
使用Python操作MySQL数据库需要先安装对应的Python库。在安装之前,确保已经安装了MySQL数据库,并记住数据库的连接地址、用户名和密码。
安装Python库的方法是使用pip命令:
pip install mysql-connector-python
安装完成后,就可以在Python脚本中导入mysql.connector模块,并使用connect()方法连接到MySQL数据库:
import mysql.connector
# 连接数据库
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="mydatabase"
)
在上面的代码中,host参数指定数据库的连接地址,user参数指定用户名,password参数指定密码,database参数指定要连接的数据库名称。
2. 创建数据库表
在连接到数据库后,可以使用execute()方法执行SQL语句来创建表:
# 创建表
mycursor = mydb.cursor()
mycursor.execute("CREATE TABLE customers (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), address VARCHAR(255))")
在上面的代码中,先创建了一个名为customers的表,该表有三个字段:id、name和address。
3. 插入数据
可以使用execute()方法执行INSERT语句来向数据库表中插入数据:
# 插入数据
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("John", "Highway 21")
mycursor.execute(sql, val)
# 提交事务
mydb.commit()
print(mycursor.rowcount, "record inserted.")
在上面的代码中,首先定义了一个INSERT语句,然后使用execute()方法执行该语句,并通过占位符%s指定要插入的值,最后使用commit()方法提交事务。
4. 查询数据
可以使用execute()方法执行SELECT语句来从数据库表中查询数据:
# 查询数据
mycursor.execute("SELECT * FROM customers")
result = mycursor.fetchall()
for x in result:
print(x)
在上面的代码中,先执行了一个SELECT语句,然后使用fetchall()方法获取查询结果,最后通过循环遍历查询结果并打印。
5. 更新数据
可以使用execute()方法执行UPDATE语句来更新数据库表中的数据:
# 更新数据
sql = "UPDATE customers SET address = %s WHERE name = %s"
val = ("Canyon 123", "John")
mycursor.execute(sql, val)
# 提交事务
mydb.commit()
print(mycursor.rowcount, "record(s) affected.")
在上面的代码中,首先定义了一个UPDATE语句,然后使用execute()方法执行该语句,并通过占位符%s指定要更新的值,最后使用commit()方法提交事务。
6. 删除数据
可以使用execute()方法执行DELETE语句来从数据库表中删除数据:
# 删除数据
sql = "DELETE FROM customers WHERE address = %s"
val = ("Highway 21",)
mycursor.execute(sql, val)
# 提交事务
mydb.commit()
print(mycursor.rowcount, "record(s) deleted.")
在上面的代码中,首先定义了一个DELETE语句,然后使用execute()方法执行该语句,并通过占位符%s指定要删除的值,最后使用commit()方法提交事务。
7. 关闭数据库连接
在完成对数据库的操作后,要记得关闭数据库连接:
# 关闭数据库连接
mydb.close()
在上面的代码中,使用close()方法关闭数据库连接。
总结:
本文介绍了使用Python操作MySQL数据库的一些小技巧。首先,使用mysql.connector库连接到MySQL数据库;然后,使用execute()方法执行SQL语句来创建表、插入数据、查询数据、更新数据和删除数据;最后,使用close()方法关闭数据库连接。