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
)
""")
相关推荐
Rain的Java大神之路8 分钟前
如何快速上传10G文件
java·spring boot·redis·后端·mysql·spring cloud·面试
AIFQuant10 分钟前
ETF行情API接入踩坑记:从报错到跑通的七个问题
python·金融·区块链·etf·基金
GPU实战笔记2 小时前
云端 Python 开发:JupyterLab 还是 VS Code Remote-SSH?
python·vs code·jupyterlab·remote-ssh·远程开发
大海星辰7982 小时前
一次对账SQL“灵异事件”排查:NOT IN返回空集的坑
mysql
狗狗狗狗狗乐啊2 小时前
搭一个 AI 对话工作台 AChat:从 0 到可用的完整记录(一)
python·react.js·ai编程
Linux-lucky2 小时前
32-38-Linux学习之旅之MySQL综合
linux·运维·学习·mysql·ubuntu
白猫不黑3 小时前
Python实现简易Web弱口令爆破与防护方案
python·web安全·计算机·网络安全·黑客·信息安全·渗透测试
kuuailetianzi3 小时前
Python初识:定位、优势与发展历程
python
guoran_shini3 小时前
LLM微调-训练垂类问答模型
python·lora·sft
basketball6163 小时前
Python FastAPI 介绍以及常用方法
python·fastapi·vllm·ai infra