python中写sql语句添加for循环和变量。(一种SQL引入循环的思想实现)

32 篇文章 3 订阅
8 篇文章 0 订阅

为了减少代码的冗余,和脚本的运行可以在服务器上自动化,选择在sql语句中加入循环和变量。mysql常见的三种循环方式:while、repeat和loop循环。没有for,但为了方便需要引入for循环,所以选择了用format方法。

import pymysql
import datetime


def Database(host, user, password, database, port, charset):
    '''
    连接数据库
    :param host: ip
    :param user: 用户
    :param password: 密码
    :param database: 数据库名称
    :param port: 端口
    :param charset: 编码格式
    :return: 数据库
    '''
    db = pymysql.connect(host=host,
                         user=user,
                         password=password,
                         database=database,
                         port=port,
                         charset=charset)
    return db


def Students(db, today, getyesterday):
    '''
    查询数据库中,列表中学生今天,昨天的签到的总数,只是随便举例,主要是思想。
    :param db: 数据库
    :param today: 今天时间
    :param getyesterday: 昨天时间 
    :return: 
    '''
    cursor = db.cursor()
    name = ['zhangsan', 'lishi', 'wangwu', 'zhaoliu']
    for i in name:
        sql = "select count(*) from student_data" \
              " where STUDENT_NAME='{}'" \
              " and TODAY = '{}'" \
              "and YESTERDAY='{}';".format(i, str(today), str(getyesterday))    
              # 引入匿名函数,成功引入时间这一变量,和name的for循环。
        cursor.execute(sql)
        db.commit()
        amount = cursor.fetchall()
        sum1 = amount[0][0]    # sql查询后,控制台输出的查询结果,
        print(sum1)
            

def All(db):
    today = datetime.date.today()
    oneday = datetime.timedelta(days=1)
    getyesterday = today - oneday  # 获取昨天的时间,如2021-12-24
    cursor = db.cursor()
    Students(db, today, getyesterday)
    cursor.close()
    db.close()    # 关闭数据库


if __name__ == '__main__':
    db = Database('ip', '用户名', '密码', '数据库', '端口', 'utf8')
    All(db)
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

如鸿毛

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

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

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

打赏作者

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

抵扣说明:

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

余额充值