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

nat123映射怎么用?超详细步骤,外网访问内网轻松搞定
nat123域名怎么用?两种方式轻松搞定
nat123怎么用?简单几步实现内网穿透
内网穿透工具对比:nat123、花生壳与轻量新选择
远程访问内网很简单:用对工具,一“箭”穿透
ngrok下载完全指南:从入门到获取客户端
内网远程桌面软件:穿透局域网边界的数字窗口
从外网远程访问内网服务器的完整方案
Windows Server 2008端口转发完全教程:netsh命令添加/查看/删除/重置
为什么三层交换机转发比Linux服务器快?转发表硬件加速的秘密