综合练习:成绩查询系统

57.24 综合练习:成绩查询系统

实现:按班级查平均分、模糊搜姓名、分页排行榜、统计各分数段人数。

查询函数封装

扩展:加 input 菜单,支持按班级、分数段、关键词查询。

import pymysql
from pymysql.cursors import DictCursor

def query(sql, args=()):
    conn = pymysql.connect(
        host='127.0.0.1', user='root', password='root',
        database='py_demo', charset='utf8mb4', cursorclass=DictCursor
    )
    try:
        with conn.cursor() as cur:
            cur.execute(sql, args)
            return cur.fetchall()
    finally:
        conn.close()

print('排行榜:', query(
    'SELECT name, score FROM students ORDER BY score DESC LIMIT 5'
))
print('搜「小」:', query(
    "SELECT name, score FROM students WHERE name LIKE %s", ('%小%',)
))
print('一班均分:', query(
    'SELECT AVG(score) AS avg FROM students WHERE class_name=%s', ('一班',)
))