Python学生管理系统(MySQL)

上篇文章介绍的Python学生管理系统GUI有不少同学觉得不错来找博主要源码,也有同学提到老师要增加数据库管理数据的功能,本篇文章就来介绍下python操作数据库,同时也对上次分享的学生管理系统进行了改进了,增加了数据库,没学过MySQL数据库的同学也可以根据这篇文章或者系统代码进行学习,了解完觉得不错的同学可以关注我的gong重号【橙晴丰Ciao】回复关键字【python学生管理系统】获取源码:

学生管理

展示

增加


修改

选择需要修改的学生信息就可以更改了

删除

本项目是由python+tkinter+MySQL实现的,所以需要先安装有python环境,tkinter 是 Python 的标准 GUI (图形用户界面) 库,不需要进行安装,只需要在终端执行命令安装MySQL驱动,或者pycharm自动导入,但不要导错包了:

sh 复制代码
pip install mysql-connector-python

下面我会简要讲解 python操作MySQL的一些常用功能等。

MySQL讲解

1. 连接到 MySQL 数据库

python 复制代码
import mysql.connector

# 建立数据库连接
conn = mysql.connector.connect(
    host="localhost",         # 数据库主机
    user="root",              # 数据库用户名
    password="your_password", # 数据库密码
    database="your_database"  # 数据库名
)

# 创建一个游标对象
cursor = conn.cursor()

# 进行操作...

# 关闭连接
cursor.close()
conn.close()

一旦建立了连接,你可以使用游标(cursor)来执行 SQL 查询。例如,查询数据、插入数据、更新数据等。

2. 查询数据

python 复制代码
# 执行 SQL 查询
cursor.execute("SELECT * FROM your_table")

# 获取查询结果
results = cursor.fetchall()

# 输出结果
for row in results:
    print(row)

3. 插入数据

python 复制代码
# 准备 SQL 插入语句
sql = "INSERT INTO your_table (column1, column2) VALUES (%s, %s)"
values = ("value1", "value2")

# 执行插入操作
cursor.execute(sql, values)

# 提交事务
conn.commit()

插入多条数据

python 复制代码
sql = "INSERT INTO users (name, age) VALUES (%s, %s)"
values = [("Alice", 30), ("Bob", 25), ("Charlie", 35)]

cursor.executemany(sql, values)
conn.commit()  # 提交事务

4. 更新数据

python 复制代码
# 准备 SQL 更新语句
sql = "UPDATE your_table SET column1 = %s WHERE column2 = %s"
# 更新参数类型可以是元组或列表
values = ("new_value", "some_value")

# 执行更新操作
cursor.execute(sql, values)

# 提交事务
conn.commit()

5. 删除数据

python 复制代码
# 准备 SQL 删除语句
sql = "DELETE FROM your_table WHERE column1 = %s"
value = ("some_value",)

# 执行删除操作
cursor.execute(sql, value)

# 提交事务
conn.commit()

6. 事务管理

对于修改数据库(如插入、更新、删除)等操作,通常需要提交事务。commit() 方法用于提交事务,rollback() 用于回滚事务。

例如:

python 复制代码
try:
    cursor.execute("INSERT INTO your_table (column1) VALUES (%s)", ("value1",))
    conn.commit()  # 提交事务
except mysql.connector.Error as err:
    print("Error: ", err)
    conn.rollback()  # 发生错误时回滚事务

7. 关闭连接

在完成操作后,一定要关闭游标和数据库连接,以释放资源,通过finally执行关闭操作

python 复制代码
import mysql.connector
from mysql.connector import Error

try:
    # 连接到数据库
    conn = mysql.connector.connect(
        host="localhost",
        user="root",
        password="your_password",
        database="your_database"
    )
    
    if conn.is_connected():
        print("Connected to MySQL database")

    # 创建一个游标对象
    cursor = conn.cursor()

    # 执行一个查询
    cursor.execute("SELECT * FROM your_table")
    result = cursor.fetchall()
    for row in result:
        print(row)

except Error as e:
    print("Error: ", e)

finally:
    if conn.is_connected():
        cursor.close()
        conn.close()
        print("Connection closed")

8. 创建数据库及表

python 复制代码
# 创建数据库
cursor.execute("CREATE DATABASE IF NOT EXISTS my_database")

# 选择数据库
cursor.execute("USE my_database")

# 创建表
cursor.execute("""
CREATE TABLE IF NOT EXISTS users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    age INT NOT NULL
)
""")
相关推荐
多恩Stone9 分钟前
【C++入门扫盲1】C++ 与 Python:类型、编译器/解释器与 CPU 的关系
开发语言·c++·人工智能·python·算法·3d·aigc
BD_Marathon9 分钟前
工厂方法模式
android·java·工厂方法模式
QQ40220549625 分钟前
Python+django+vue3预制菜半成品配菜平台
开发语言·python·django
百锦再26 分钟前
Django实现接口token检测的实现方案
数据库·python·django·sqlite·flask·fastapi·pip
QQ51100828527 分钟前
python+springboot+django/flask的校园资料分享系统
spring boot·python·django·flask·node.js·php
QQ_196328847528 分钟前
Python-flask框架西山区家政服务评价系统网站设计与开发-Pycharm django
python·pycharm·flask
WeiXin_DZbishe28 分钟前
基于django在线音乐数据采集的设计与实现-计算机毕设 附源码 22647
javascript·spring boot·mysql·django·node.js·php·html5
遥遥江上月29 分钟前
Node.js + Stagehand + Python 部署
开发语言·python·node.js
B站计算机毕业设计超人32 分钟前
计算机毕业设计Django+Vue.js音乐推荐系统 音乐可视化 大数据毕业设计 (源码+文档+PPT+讲解)
大数据·vue.js·hadoop·python·spark·django·课程设计
王码码203532 分钟前
Flutter for OpenHarmony:socket_io_client 实时通信的事实标准(Node.js 后端的最佳拍档) 深度解析与鸿蒙适配指南
android·flutter·ui·华为·node.js·harmonyos