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
)
""")
相关推荐
赵谨言13 分钟前
基于 Python 大数据的购物车智能推荐与分析系统
经验分享·python·毕业设计
思忖小下1 小时前
深入Android架构(从线程到AIDL)_10 主线程(UI 线程)的角色
android·ui线程
qw9491 小时前
MySQL 08 章——聚合函数
数据库·mysql
工程师老罗2 小时前
我用AI学Android Jetpack Compose之开篇
android·android jetpack
热心市民运维小孙2 小时前
Mysql8主从复制(兼容低高版本)
android·adb
佛系小嘟嘟2 小时前
Android Jetpack Compose开发小组件【入门篇】
android·开发语言·android jetpack·小组件
工程师老罗2 小时前
我用AI学Android Jetpack Compose之入门篇(1)
android·android jetpack
暗碳7 小时前
cloudns二级免费域名python更新ipv6 dns记录
开发语言·python
BlackPercy8 小时前
[paddle] 非线性拟合问题的训练
python·机器学习·paddlepaddle·paddle
xiaobai12 39 小时前
MySQL图形化界面工具--DataGrip
数据库·mysql