Python实战:调用MySQL查询学生成绩
python调用mysql学生成绩

首页 2025-06-25 16:58:05



Python调用MySQL实现高效学生成绩管理 在当今信息化快速发展的时代,学校和教育机构对学生成绩的管理越来越依赖于数据库系统

    MySQL作为一种开源的关系型数据库管理系统,因其高效、稳定、易于使用的特点,成为了众多学校的首选

    而Python作为一种高级编程语言,其简洁的语法和强大的库支持,使其在处理数据、连接数据库等方面具有显著优势

    本文将详细介绍如何使用Python调用MySQL数据库,实现高效的学生成绩管理

     一、引言 学生成绩管理是学校日常工作的重要组成部分,涉及学生信息的录入、成绩的录入与查询、统计分析等多个环节

    传统的手工管理方式不仅效率低下,还容易出错

    而通过Python与MySQL的结合,可以实现自动化、智能化的成绩管理,提高管理效率,减少人为错误

     二、环境准备 在开始之前,需要确保你已经安装了Python和MySQL

    如果还没有安装,请按照以下步骤进行安装: 1.安装Python: -访问Python官网(https://www.python.org/),下载并安装适合你操作系统的Python版本

     -验证安装:在命令行中输入`python --version`或`python3 --version`,查看Python版本信息

     2.安装MySQL: -访问MySQL官网(https://www.mysql.com/),下载并安装MySQL Community Server

     - 安装完成后,启动MySQL服务,并设置一个root用户密码

     3.安装MySQL Connector/Python: - MySQL Connector/Python是MySQL官方提供的Python连接器,用于连接MySQL数据库

     - 在命令行中使用pip安装:`pip install mysql-connector-python`

     三、创建数据库和表 在MySQL中创建一个用于存储学生成绩的数据库和表

    假设我们要创建一个名为`school`的数据库,并在其中创建一个名为`students`的表,用于存储学生信息;创建一个名为`scores`的表,用于存储学生成绩

     sql -- 创建数据库 CREATE DATABASE school; -- 使用数据库 USE school; -- 创建学生信息表 CREATE TABLE students( student_id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, gender CHAR(1) NOT NULL, birthdate DATE NOT NULL ); -- 创建学生成绩表 CREATE TABLE scores( score_id INT AUTO_INCREMENT PRIMARY KEY, student_id INT NOT NULL, subject VARCHAR(50) NOT NULL, score INT NOT NULL, exam_date DATE NOT NULL, FOREIGN KEY(student_id) REFERENCES students(student_id) ); 四、Python连接MySQL数据库 接下来,使用Python编写代码,连接到MySQL数据库,并执行一些基本的数据库操作,如插入数据、查询数据等

     python import mysql.connector from mysql.connector import Error def create_connection(): try: connection = mysql.connector.connect( host=localhost, database=school, user=root, password=your_password替换为你的MySQL root密码 ) if connection.is_connected(): print(连接成功) return connection except Error as e: print(f错误:{e}) return None def insert_student(connection, name, gender, birthdate): try: cursor = connection.cursor() sql_insert_query = INSERT INTO students(name, gender, birthdate) VALUES(%s, %s, %s) record =(name, gender, birthdate) cursor.execute(sql_insert_query, record) connection.commit() print(学生信息插入成功) except Error as e: print(f错误:{e}) def insert_score(connection, student_id, subject, score, exam_date): try: cursor = connection.cursor() sql_insert_query = INSERT INTO scores(student_id, subject, score, exam_date) VALUES(%s, %s, %s, %s) record =(student_id, subject, score, exam_date) cursor.execute(sql_insert_query, record) connection.commit() print(学生成绩插入成功) except Error as e: print(f错误:{e}) def fetch_student_scores(connection, student_id): try: cursor = connection.cursor(dictionary=True) sql_select_query = SELECT s.name, sc.subject, sc.score, sc.exam_date FROM students s JOIN scores sc ON s.student_id = sc.student_id WHERE s.student_id = %s cursor.execute(sql_select_query,(student_id,)) result = cursor.fetchall() return result except Error as e: print(f错误:{e}) return None if__name__ ==__main__: connection = create_connection() if connection is not None: 插入学生信息 insert_student(connection, 张三, 男, 2005-0

MySQL连接就这么简单!本地远程、编程语言连接方法一网打尽
还在为MySQL日期计算头疼?这份加一天操作指南能解决90%问题
MySQL日志到底在哪里?Linux/Windows/macOS全平台查找方法在此
MySQL数据库管理工具全景评测:从Workbench到DBeaver的技术选型指南
MySQL密码忘了怎么办?这份重置指南能救急,Windows/Linux/Mac都适用
你的MySQL为什么经常卡死?可能是锁表在作怪!快速排查方法在此
MySQL单表卡爆怎么办?从策略到实战,一文掌握「分表」救命技巧
清空MySQL数据表千万别用错!DELETE和TRUNCATE这个区别可能导致重大事故
你的MySQL中文排序一团糟?记住这几点,轻松实现准确拼音排序!
别再混淆Hive和MySQL了!读懂它们的天壤之别,才算摸到大数据的门道