上篇文章介绍的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 数据库
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. 查询数据
# 执行 SQL 查询
cursor.execute("SELECT * FROM your_table")
# 获取查询结果
results = cursor.fetchall()
# 输出结果
for row in results:
print(row)
3. 插入数据
# 准备 SQL 插入语句
sql = "INSERT INTO your_table (column1, column2) VALUES (%s, %s)"
values = ("value1", "value2")
# 执行插入操作
cursor.execute(sql, values)
# 提交事务
conn.commit()
插入多条数据
sql = "INSERT INTO users (name, age) VALUES (%s, %s)"
values = [("Alice", 30), ("Bob", 25), ("Charlie", 35)]
cursor.executemany(sql, values)
conn.commit() # 提交事务
4. 更新数据
# 准备 SQL 更新语句
sql = "UPDATE your_table SET column1 = %s WHERE column2 = %s"
# 更新参数类型可以是元组或列表
values = ("new_value", "some_value")
# 执行更新操作
cursor.execute(sql, values)
# 提交事务
conn.commit()
5. 删除数据
# 准备 SQL 删除语句
sql = "DELETE FROM your_table WHERE column1 = %s"
value = ("some_value",)
# 执行删除操作
cursor.execute(sql, value)
# 提交事务
conn.commit()
6. 事务管理
对于修改数据库(如插入、更新、删除)等操作,通常需要提交事务。commit() 方法用于提交事务,rollback() 用于回滚事务。
例如:
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执行关闭操作
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. 创建数据库及表
# 创建数据库
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
)
""")