任务描述
本关任务:使用 pymysql
从数据库中查询数据。
相关知识
为了完成本关任务,你需要掌握:如何使用 pymysql
进行数据查询。
如何使用 pymysql
连接指定数据库并且查询符合条件的记录?
以下是一个样例代码:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import pymysql
# 创建数据库连接
conn = pymysql.connect(
# mysql服务器主机地址
host='127.0.0.1',
# mysql服务器连接端口
port=3306,
# 用户名
user='user',
# 数据库名
db='db_name',
# 用户密码
passwd='password',
# 编码格式
charset='utf8'
)
# 使用cursor()函数创建一个游标对象
cursor = conn.cursor()
# 使用execute()函数执行一条sql语句, 从area表中获取所有id小于等于2的记录,并且以area_id降序排列
cursor.execute("select area_id, area_name from area where id<=2 ORDER BY area_id DESC")
# 使用fetchall()函数返回所有的结果,结果以元组的形式返回(每条记录都以一个储存了各个列的值的元组存在)
res = cursor.fetchall()
print(res)
# 关闭游标
cursor.close()
# 关闭数据库连接
conn.close()
输出的结果如下: ((2, '长沙'), (1, '北京'))
注意:pymysql
中获取数据常用的有2
个函数,分别是:fetchall()
返回所有记录,fetchone()
返回单条记录。
编程要求
根据提示,在右侧编辑器补充代码,完成以下需求:
- 查询用户名表的所有数据并指定格式打印到控制台(
id:xxx,username:xxx,sex:xxx,age:xxx
)
代码:
import pymysql
"""
需求:查询用户表的所有数据,数据库为mydb
"""
if __name__ == '__main__':
# **********begin********** #
# 获取连接
conn = pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
db='mydb',
passwd='123123',
charset='utf8'
)
# 获取光标
cursor = conn.cursor()
cursor.execute("select * from users")
res = cursor.fetchall()
for i in res:
print(f"id:{i[0]},username:{i[1]},sex:{i[2]},age:{i[3]}")
# 执行SQL
# 返回结果集
# 遍历结果集,将其打印到控制台,格式为 --》 id:xxx,username:xxx,sex:xxx,age:xxx
# 关闭资源
cursor.close()
conn.close()
# **********end********** #