下面是关于“Python使用pymysql从MySQL数据库中读出数据的方法”的攻略。
准备工作
在使用Python读取MySQL数据库之前,需要先安装pymysql库,用于连接数据库和执行SQL语句。可以通过以下方式进行安装:
pip install PyMySQL
安装完成之后,需要在Python中导入pymysql库:
import pymysql
连接数据库
连接数据库需要知道数据库的IP地址、端口号、用户名、密码和数据库名称。可以通过以下代码连接数据库:
# 打开数据库连接
db = pymysql.connect(host='localhost', port=3306, user='root', password='123456', db='testdb')
其中,host
、port
、user
、password
和db
分别为MySQL数据库的IP地址、端口号、用户名、密码和数据库名称。
查询数据
连接数据库之后,可以使用游标(cursor)执行SQL语句并查询数据。使用游标之前,需要先创建游标:
# 创建游标对象
cursor = db.cursor()
创建游标之后,就可以使用execute()方法执行SQL语句了。例如,查询testdb数据库中的user表中所有的记录可以使用以下代码:
# SQL查询语句
sql = "SELECT * FROM user"
# 执行SQL语句
cursor.execute(sql)
# 获取所有记录
results = cursor.fetchall()
执行SQL语句之后,可以使用fetchall()方法获取所有查询结果。fetchall()方法返回的结果为元组(tuple)类型列表(list),每个元组表示一条查询结果。
示例
下面是一个完整的示例,该示例连接MySQL数据库,并从testdb数据库中的user表中读取记录:
# 导入pymysql库
import pymysql
# 连接MySQL数据库
db = pymysql.connect(host='localhost', port=3306, user='root', password='123456', db='testdb')
# 创建游标对象
cursor = db.cursor()
# SQL查询语句
sql = "SELECT * FROM user"
# 执行SQL语句
cursor.execute(sql)
# 获取所有记录
results = cursor.fetchall()
# 输出查询结果
for row in results:
id = row[0]
name = row[1]
age = row[2]
print("id=%d,name=%s,age=%d" % (id, name, age))
# 关闭数据库连接
db.close()
运行上述代码,可以查询到testdb数据库中user表的所有记录并输出。
除了上述示例,我们再来看另外一个示例,该示例给出了根据条件查询的代码:
# 导入pymysql库
import pymysql
# 连接MySQL数据库
db = pymysql.connect(host='localhost', port=3306, user='root', password='123456', db='testdb')
# 创建游标对象
cursor = db.cursor()
# SQL查询语句
sql = "SELECT * FROM user WHERE age > %s"
# 执行SQL语句
cursor.execute(sql, (18,))
# 获取所有记录
results = cursor.fetchall()
# 输出查询结果
for row in results:
id = row[0]
name = row[1]
age = row[2]
print("id=%d,name=%s,age=%d" % (id, name, age))
# 关闭数据库连接
db.close()
该示例根据条件查询testdb数据库中user表的记录,并输出结果。注意到查询条件是动态的,使用了%s
占位符,后面通过execute()
方法的第二个参数进行动态替换。
总结:
以上就是使用pymysql从MySQL数据库中读出数据的方法。需要注意的是,在读取完数据之后一定要记得关闭数据库连接。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python使用pymysql从MySQL数据库中读出数据的方法 - Python技术站