上篇文章介绍的Python学生管理系统GUI有不少同学觉得不错来找博主要源码,也有同学提到老师要增加数据库管理数据的功能,本篇文章就来介绍下python操作数据库,同时也对上次分享的学生管理系统进行了改进了,增加了数据库,没学过MySQL数据库的同学也可以根据这篇文章或者系统代码进行学习,了解完觉得不错的同学可以关注我的gong重号【橙晴丰Ciao】回复关键字【python学生管理系统】获取源码:
学生管理
展示
增加
修改
选择需要修改的学生信息就可以更改了
删除
本项目是由python+tkinter+MySQL实现的,所以需要先安装有python环境,tkinter 是 Python 的标准 GUI (图形用户界面) 库,不需要进行安装,只需要在终端执行命令安装MySQL驱动,或者pycharm自动导入,但不要导错包了:
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 Errortry:# 连接到数据库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
)
""")