用Python操作MySQL数据库:pymysql库教程
MySQL是一种流行的关系型数据库管理系统,它可以存储结构化数据,并允许用户使用SQL语言进行操作。在Python中,我们可以使用pymysql库来连接和操作MySQL数据库。本文将介绍如何使用pymysql库来进行MySQL数据库的基本操作。
安装pymysql库
在使用pymysql库之前,我们需要先安装它。可以通过pip命令来安装:
pip install pymysql
连接MySQL数据库
在Python中,我们可以使用pymysql库的connect方法来连接MySQL数据库。下面是连接MySQL数据库的代码示例:
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "username", "password", "database")
# 关闭数据库连接
db.close()
在上面的代码示例中,我们需要传入4个参数来连接MySQL数据库。分别是:MySQL服务器的主机名(localhost),用户名(username),密码(password)和要连接的数据库名(database)
如果一切顺利,当我们运行上面的代码示例时,就会成功连接MySQL数据库。
创建数据库表
在MySQL数据库中,我们可以使用CREATE TABLE语句来创建一个表。下面是创建一个名为“students”的表的代码示例:
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "username", "password", "database")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL,如果表存在则删除
cursor.execute("DROP TABLE IF EXISTS students")
# 使用 execute() 方法执行 SQL,创建数据表 students
sql = """CREATE TABLE students (
ID INT NOT NULL AUTO_INCREMENT,
NAME VARCHAR(20) NOT NULL,
AGE INT NOT NULL,
SEX CHAR(1),
PRIMARY KEY (ID))"""
cursor.execute(sql)
# 关闭数据库连接
db.close()
在上面的代码示例中,我们首先使用cursor()方法创建了一个游标对象,然后使用execute()方法执行了一个DROP TABLE语句,以保证students表不存在。接着,我们定义了一个SQL语句,使用execute()方法执行了一个CREATE TABLE语句,创建了一个名为“students”的数据表。
向数据库表中插入数据
在MySQL数据库中,我们可以使用INSERT语句向表中插入数据。下面是向“students”表中插入数据的代码示例:
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "username", "password", "database")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 插入语句
sql = "INSERT INTO students(NAME, AGE, SEX) \
VALUES ('Tom', 20, 'M')"
try:
# 执行sql语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except:
# 如果发生错误则回滚
db.rollback()
# 关闭数据库连接
db.close()
在上面的代码示例中,我们首先定义了一个SQL语句,使用execute()方法执行了一个INSERT语句,向“students”表中插入了一条记录。然后使用commit()方法提交到数据库中,如果在执行INSERT语句时出错,则使用rollback()方法回滚事务。
查询数据库表中的数据
在MySQL数据库中,我们可以使用SELECT语句来查询表中的数据。下面是查询“students”表中所有数据的代码示例:
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "username", "password", "database")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 查询语句
sql = "SELECT * FROM students \
WHERE AGE > '%d'" % (18)
try:
# 执行SQL语句
cursor.execute(sql)
# 获取所有记录列表
results = cursor.fetchall()
for row in results:
id = row[0]
name = row[1]
age = row[2]
sex = row[3]
# 打印结果
print("id=%d,name=%s,age=%d,sex=%s" % (id, name, age, sex))
except:
print("Error: unable to fetch data")
# 关闭数据库连接
db.close()
在上面的代码示例中,我们首先定义了一个SQL语句,使用execute()方法执行了一个SELECT语句,查询了“students”表中所有年龄大于18岁的记录。然后使用fetchall()方法获取查询结果,并使用for循环依次输出每一条记录的id、name、age和sex。
修改数据库表中的数据
在MySQL数据库中,我们可以使用UPDATE语句来更新表中的数据。下面是修改“students”表中一条记录的代码示例:
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "username", "password", "database")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 查询语句
sql = "UPDATE students SET AGE = AGE + 1 WHERE SEX = 'M'"
try:
# 执行SQL语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except:
# 如果发生错误则回滚
db.rollback()
# 关闭数据库连接
db.close()
在上面的代码示例中,我们先定义了一个SQL语句,使用execute()方法执行了一个UPDATE语句,将“students”表中所有性别为男性的记录的年龄加1。然后使用commit()方法提交到数据库中,如果在执行UPDATE语句时出错,则使用rollback()方法回滚事务。
删除数据库表中的数据
在MySQL数据库中,我们可以使用DELETE语句来删除表中的数据。下面是删除“students”表中一条记录的代码示例:
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "username", "password", "database")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 查询语句
sql = "DELETE FROM students WHERE ID = '%d'" % (1)
try:
# 执行SQL语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except:
# 如果发生错误则回滚
db.rollback()
# 关闭数据库连接
db.close()
在上面的代码示例中,我们先定义了一个SQL语句,使用execute()方法执行了一个DELETE语句,删除了“students”表中ID为1的记录。然后使用commit()方法提交到数据库中,如果在执行DELETE语句时出错,则使用rollback()方法回滚事务。
总结
在本文中,我们介绍了如何使用pymysql库来连接和操作MySQL数据库。我们学习了如何创建数据库表、向表中插入数据、查询表中的数据、修改表中的数据和删除表中的数据。以上是pymysql库的基本操作,希望本文对您的学习有所帮助。