Python数据库编程(基础篇)

第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()


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值