Python 3 – MySQL数据库访问
简介
MySQL是一种流行的关系型数据库管理系统,而Python 3是一个功能强大的编程语言,它具有可以简化MySQL数据库访问的一些内置模块和扩展包。
在本文中,我们将演示如何使用Python 3实现MySQL数据库的连接、数据查询、数据更新、数据插入和数据删除等操作。
安装MySQL数据库
在开始之前,我们需要先安装MySQL数据库。对于Windows用户,可以直接前往MySQL官方网站(https://dev.mysql.com/downloads/windows/installer/)下载安装程序。对于Linux用户,则可以通过如下命令进行安装:
sudo apt-get update
sudo apt-get install mysql-server
在安装完成后,我们需要建立一个数据库,可以通过如下命令进行创建:
mysql -u root -p
create database testdb;
连接MySQL数据库
在Python 3中,我们可以使用PyMySQL模块来连接MySQL数据库。可以通过以下方式安装PyMySQL模块:
pip3 install pymysql
接下来,我们可以使用下面的代码来连接数据库:
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "root", "password", "testdb")
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# 执行SQL语句
cursor.execute("SELECT VERSION()")
# 获取一条数据
data = cursor.fetchone()
print("Database version : %s " % data)
# 关闭游标和数据库连接
cursor.close()
db.close()
上述代码中,我们使用pymysql库的connect()方法来连接数据库。其中,参数”localhost”代表数据库所在的主机ip地址,”root”代表登录数据库时的用户名,”password”代表登录数据库时的密码,”testdb”代表将要连接的数据库名称。
接下来,我们使用cursor()方法获取操作游标,并使用execute()方法来执行SQL语句。最后,我们使用fetchone()方法获取第一条数据,并输出结果。
数据查询
在Python 3中,我们可以使用SELECT语句来查询数据库中的数据。具体方式如下:
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "root", "password", "testdb")
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# SQL 查询语句
sql = "SELECT * FROM EMPLOYEE \
WHERE INCOME > '%d'" % (1000)
try:
# 执行SQL语句
cursor.execute(sql)
# 获取所有记录列表
results = cursor.fetchall()
for row in results:
fname = row[0]
lname = row[1]
age = row[2]
sex = row[3]
income = row[4]
# 打印结果
print("fname=%s,lname=%s,age=%d,sex=%s,income=%d" % \
(fname, lname, age, sex, income))
except:
print("Error: unable to fetch data")
# 关闭游标和数据库连接
cursor.close()
db.close()
上述代码中,我们使用SELECT语句查询出了所有收入大于1000的员工信息,并使用fetchall()方法获取所有记录列表。接下来,我们使用for循环来遍历每一条记录,并输出结果。
数据更新
在Python 3中,我们可以使用UPDATE语句来更新数据库中的数据。下面是一个示例代码:
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "root", "password", "testdb")
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# SQL 更新语句
sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 \
WHERE SEX = '%c'" % ('M')
try:
# 执行SQL语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except:
# 发生错误时回滚
db.rollback()
# 关闭游标和数据库连接
cursor.close()
db.close()
上述代码中,我们使用UPDATE语句来将所有男性员工的年龄增加1。接下来,我们使用execute()方法执行SQL语句,并在执行成功后使用commit()方法提交更改。
数据插入
在Python 3中,我们可以使用INSERT语句向数据库中插入新的数据。下面是一个示例代码:
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "root", "password", "testdb")
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# SQL 插入语句
sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \
LAST_NAME, AGE, SEX, INCOME) \
VALUES ('%s', '%s', '%d', '%c', '%d' )" % \
('John', 'Doe', 25, 'M', 2000)
try:
# 执行SQL语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except:
# 发生错误时回滚
db.rollback()
# 关闭游标和数据库连接
cursor.close()
db.close()
上述代码中,我们使用INSERT语句向EMPLOYEE表中插入一条新记录。接下来,我们使用execute()方法执行SQL语句,并在执行成功后使用commit()方法提交更改。
数据删除
在Python 3中,我们可以使用DELETE语句来从数据库中删除数据。下面是一个示例代码:
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "root", "password", "testdb")
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# SQL 删除语句
sql = "DELETE FROM EMPLOYEE WHERE AGE > '%d'" % (30)
try:
# 执行SQL语句
cursor.execute(sql)
# 提交修改
db.commit()
except:
# 发生错误时回滚
db.rollback()
# 关闭游标和数据库连接
cursor.close()
db.close()
上述代码中,我们使用DELETE语句从EMPLOYEE表中删除年龄大于30的员工记录。接下来,我们使用execute()方法执行SQL语句,并在执行成功后使用commit()方法提交更改。
结论
在本文中,我们学习了如何使用Python 3来访问MySQL数据库。我们了解了如何连接数据库、数据查询、数据更新、数据插入和数据删除等常见操作。使用Python 3,我们可以方便地处理大量的数据,从而实现更多的功能。