第一步:
导入模块:
import pymysql as pymysql
第二步:
创建数据库连接对象和游标:
# 获取数据库连接对象
db = pymysql.connect(host='localhost', user='root', password='zhai20011025', database='students')
cursor = db.cursor() # 创建游标对象
第三步:
创建类,写好思路框架(在这里我只创建了姓名、性别、年龄三个字段,小伙伴们可根据需要自行增添)
第四步:
实现各个功能:
1.程序入口
def run(self):
while True: # 可以循环显示
# 2. 显示功能菜单
self.show_menu()
# 3. 用户输入目标功能序号
menu_num = int(input('请输入您需要的功能序号:'))
# 4. 根据用户输入的序号执行不同的功能 -- 如果用户输入1,执行添加
if menu_num == 1:
# 添加学员
self.add_student()
print("------------------------------------------------------")
elif menu_num == 2:
# 删除学员
self.del_student()
print("------------------------------------------------------")
elif menu_num == 3:
# 修改学员信息
self.modify_student()
print("------------------------------------------------------")
elif menu_num == 4:
# 查询学员信息
self.search_student()
print("------------------------------------------------------")
elif menu_num == 5:
# 显示所有学员信息
self.show_student()
print("------------------------------------------------------")
elif menu_num == 6:
# 保存学员信息
self.save_student()
print("------------------------------------------------------")
elif menu_num == 7:
# 退出系统 -- 退出循环
break
2.显示功能函数
@staticmethod
def show_menu():
print('请选择如下功能:')
print('1:添加学员')
print('2:删除学员')
print('3:修改学员信息')
print('4:查询学员信息')
print('5:显示所有学员信息')
print('6:保存学员信息')
print('7:退出系统')
3.添加操作
def add_student(self):
# 1. 用户输入姓名、性别、年龄
name = input('请输入您的姓名:')
sex = input('请输入您的性别:')
age = input('请输入您的年龄:')
# SQL 插入语句
sql = "INSERT INTO STU_INFOR(NAME,SEX, AGE)VALUES (%s,%s,%s)"
value = (name, sex, age)
try:
# 执行sql语句
cursor.execute(sql, value)
# 提交到数据库执行
db.commit()
print("添加成功")
except:
# 如果发生错误则回滚
db.rollback()
4.删除操作
def del_student(self):
# 1. 用户输入目标学员姓名
name = input('请输入要删除的学员姓名:')
# SQL 删除语句
sql = f"""DELETE FROM STU_INFOR WHERE NAME='{name}'"""
try:
# 执行SQL语句
cursor.execute(sql)
# 提交修改
db.commit()
except:
# 发生错误时回滚
db.rollback()
5.修改操作
def modify_student(self):
# 1. 用户输入目标学员姓名
old_name = input('请输入要修改的学员姓名:')
# sql语句,用于判断需要修改的学员是否存在
sql = f"""
SELECT 1 FROM stu_infor WHERE name="{old_name}";
"""
cursor.execute(sql) # 执行sql语句
student = cursor.fetchall() # 返回查询结果集
if student: # 如果该学员存在
new_name = input("请输入姓名:") # 输入修改信息
new_sex = input("请输入性别:") # 输入修改信息
new_age = input("请输入年龄:") # 输入修改信息
# sql语句
sql2 = f"""
UPDATE stu_infor SET name = "{new_name}",sex="{new_sex}",age="{new_age}" WHERE name="{new_name}";
"""
cursor.execute(sql2) # 执行sql语句
db.commit() # 提交修改
else:
print('学生不存在,请重新操作。') # 打印提示语句
print('学生修改成功') # 打印提示语句
6.查询操作
def search_student(self):
# 1. 用户输入目标学员姓名
search_name = input('请输入您要查询的学员姓名:')
# SQL 查询语句
sql = "SELECT * FROM STU_INFOR WHERE NAME=%s"
value = (search_name,) # 变量值
try:
# 执行SQL语句
cursor.execute(sql, value)
# 获取所有记录列表
results = cursor.fetchall()
print("数据查询成功!")
for row in results: # 遍历数据集
name = row[0]
sex = row[1]
age = row[2]
# 打印结果
print("姓名:%s,性别:%s,年龄:%s" % (name, sex, age,))
except:
print("查无此人")
7.显示所有信息
def show_student(self):
# 1. 打印表头
print('姓名\t性别\t年龄')
# sql语句
sql = "SELECT * FROM STU_INFOR"
try:
cursor.execute(sql) # 执行sql语句
results = cursor.fetchall() # 返回结果集
for row in results: # 遍历结果集
# 打印结果
name = row[0]
sex = row[1]
age = row[2]
print('姓名:%s,性别:%s,年龄:%s' % (name, sex, age))
except pymysql.Error as e:
print("数据显示失败:" + str(e))
第五步:
主函数:
from managerStudent import *
# 2. 启动管理系统
# 保证是当前文件运行才启动管理系统:if --创建对象并调用run方法
if __name__ == '__main__':
student_manager = StudentManager()
student_manager.run()
至此,学生信息管理系统(数据库)完结。