第4关
任务描述
在现在的软件、web 开发中,越来越离不开数据库的支持,MySQL 是现在最流行的关系型数据库管理系统(RDBMS - Relational Database Management System),在 WEB 开发中,MySQL 是最好的 RDBMS 应用软件之一。在本教程中,会让大家快速掌握 python 使用 MySQL 的相关知识,并轻松使用 MySQL 数据库。
本关任务:使用 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()返回单条记录。以及一个只读属性rowcount并返回执行execute()方法后受影响的行数
数据库中有where字句,返回当where条件成立的数据
关于order by,常用于对数据进行排序常用值有2个desc表示降序排列,asc表示升序排列
编程要求
根据提示,在右侧编辑器补充代码,查询user表中所有的结果,以如下形式显示,每条数据以元组的形式输出,每行输出一条数据:
(5,'teble4','teble4')
(4,'teble3','teble3')
(3,'teble2','teble2')
(2,'teble1','teble1')
(1,'teble0','teble0')
开始你的任务吧,祝你成功!
解决
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import pymysql
# 连接mysql,连接数据库my_db,创建连接并返回连接对象
def connect():
# 请在这里补充代码,完成本关任务,注意缩进格式为4个空格
# ********* Begin ********* #
conn = pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
db='my_db',
passwd='123123',
charset='utf8'
)
return conn
# ********* End ********* #
def test():
# 创建连接,并且返回连接对象
conn = connect()
# 创建游标对象
cursor = conn.cursor()
# 请在这里补充代码,完成本关任务,注意缩进格式为4个空格
# ********* Begin ********* #
cursor.execute("select id, username, password from user ORDER BY id DESC;")
result = cursor.fetchone()
while result!=None:
print(result)
result = cursor.fetchone()
# ********* End ********* #
# 关闭游标
cursor.close()
# 关闭连接
conn.close()