A23214. 成绩数据库现有学生成绩数据库school.db,包含表结构:CREATE TABLE scores (id INT, name TEXT, math INT, class TEXT)请补全代码完成以下功能:1.修改指定班级学生的数学成绩2.统计各班数学成绩>120分的学生人数3.
填空题
困难
知识点
题目描述
成绩数据库
现有学生成绩数据库school.db,包含表结构:
CREATE TABLE scores (id INT, name TEXT, math INT, class TEXT)
请补全代码完成以下功能:
1.修改指定班级学生的数学成绩
2.统计各班数学成绩>120分的学生人数
3.输出格式化结果
(本题无需运行通过,写入代码即可)
import sqlite3
conn = sqlite3.connect('school.db')
cursor = conn.cursor()
# 任务1:修改成绩(示例:将1班张三数学成绩改为135)
update_sql = "UPDATE scores SET math = ? WHERE class = ? AND name = ?"
cursor.execute(update_sql, (135, '1班', '张三'))
________ ① _________
# 任务2:统计各班数学120高分人数
cursor.execute("SELECT class FROM scores WHERE math > 120")
results =________②_________
class_counts = {}
for row in results:
class_name = row[0]
if class_name in class_counts:
_______③ ________
else:
class_counts[class_name] = 1
# 任务3:格式化输出结果
print("各班数学高分统计:")
for class_name, count in _______④_________:
print(f"{class_name.ljust(6)}: {'★'*count}")
cursor.close()
________⑤ _______ 参考答案
import sqlite3
conn = sqlite3.connect('school.db')
cursor = conn.cursor()
# 任务1:修改成绩
update_sql = "UPDATE scores SET math = ? WHERE class = ? AND name = ?"
cursor.execute(update_sql, (135, '1班', '张三'))
conn.commit()
# 任务2:统计各班数学120高分人数
cursor.execute("SELECT class FROM scores WHERE math > 120")
results = cursor.fetchall()
class_counts = {}
for row in results:
class_name = row[0]
if class_name in class_counts:
class_counts[class_name] += 1
else:
class_counts[class_name] = 1
# 任务3:格式化输出结果
print("各班数学高分统计:")
for class_name, count in class_counts.items():
print(f"{class_name.ljust(6)}: {'★'*count}")
cursor.close()
conn.close()答案解析
评分标准:
(1)conn.commit() 或等效答案;(2分)
(2)cursor.fetchall() 或等效答案;(2分)
(3)class_counts[class_name] += 1 或等效答案;(2分)
(4)class_counts.items() 或等效答案; (2分)
(5)conn.close() 或等效答案。 (2分)
上一题
下一题