python与mysql连接创建学生成绩管理系统
1.首先创建MySQL中的数据库
数据库为mytest,创建成绩表
在这里插入图片描述

2.下载pymysql 模块
通常安装好python环境,在dos命令下输入:
pip install pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple
上面的网址我用的是清华的镜像,会快一些!
P.S:也可以直接在pycharm中下载:
在这里插入图片描述
3.完整代码如下:

# coding:utf-8
__author__ = 'zhouyin'
# 导入pymysql模块
import pymysql

# 连接数据库
try:
    # 连接database  conn = pymysql.connect(host=“你的数据库地址”,user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
    conn = pymysql.connect(host="localhost",user="root",password="root",database="mytest")
    print("数据库连接成功!")
except pymysql.Error as e:
    print("数据库连接失败"+str(e))
cur = conn.cursor()  # 得到一个可以执行SQL语句的光标对象  执行完毕返回的结果集默认以元组显示

# 产生菜单栏
while True:
    num = int(input("请选择你需要操作的数据库:1.查询;2.插入;3.修改;4.删除;5.退出;\n"))
    # 查询数据
    if num == 1:
        sql = "select * from 成绩表"
        cur.execute(sql)  # 执行SQL语句
        result = cur.fetchall()  # 使用 fetchone() 方法获取一条数据
        for i in result:
            print(i)

    # 插入数据
    elif num == 2:
        sid = input("请输学号:")
        sname = input("请输姓名:")
        ssex = input("请输性别:")
        s_python = float(input("请输python成绩:"))
        data = (sid,sname,ssex,s_python)
        sql = "insert into 成绩表(学号,姓名,性别,python成绩) values ('%s','%s','%s','%f')" % (data)
        try:
            cur.execute(sql)
            conn.commit()
        except Exception as err:
            print("sql语句执行错误", err)
            conn.rollback()  # 错误回滚

    # 修改成绩数据
    elif num == 3:
        sid = input("请输出学号:")
        s_python = float(input("请输入python成绩:"))
        sql = "update 成绩表 set python成绩='%f' where 学号 ='%s' " % (s_python, sid)
        try:
            cur.execute(sql)
            conn.commit()
        except Exception as err:
            print("sql语句执行错误", err)
            conn.rollback()

    # 删除数据
    elif num == 4:
        sid = input("请输入需要删除的学号:")
        sql = "delete from 成绩表 where 学号=%s" % (sid)
        try:
            cur.execute(sql)
            conn.commit()
        except Exception as err:
            print("sql语句执行错误", err)
            conn.rollback()

    elif num == 5:
        break

cur.close()  # 关闭光标对象
conn.close()  # 关闭数据库连接

可以思考把上面的分支语句换成函数来做,会效果更好!

__author__ = 'zhouyin'
# coding:utf-8
import pymysql

# 连接数据库
try:
    conn = pymysql.connect(host="localhost",user="root",passwd="root",database="mytest")
    print("数据库连接成功!")
except Exception as err:
    print("数据库连接失败"+str(err))

def select_smg():
    sql = "select * from 成绩表"
    try:
        cur.execute(sql)
        result = cur.fetchall()
        for i in result:
            print(i)
    except Exception as err:
        print("sql语句执行错误", err)
        conn.rollback()  # 错误回滚

def insert_smg(data):
    sql = "insert into 成绩表(学号,姓名,性别,python成绩) values ('%s','%s','%s','%f')" % (data)
    try:
        cur.execute(sql)
        conn.commit()
    except Exception as err:
        print("sql语句执行错误", err)
        conn.rollback()  # 错误回滚
def update_smg(sid,s_python):
    sql = "update 成绩表 set python成绩='%f' where 学号 ='%s' " % (s_python, sid)
    try:
        cur.execute(sql)
        conn.commit()
    except Exception as err:
        print("sql语句执行错误", err)
        conn.rollback()
def delete_smg(sid):
    sql = "delete from 成绩表 where 学号=%s" % (sid)
    try:
        cur.execute(sql)
        conn.commit()
    except Exception as err:
        print("sql语句执行错误", err)
        conn.rollback()
# 主函数,菜单
if __name__=="__main__":
    while True:
        num = int(input("请选择要进行的操作:1.查询;2.插入;3.修改;4.删除;5.退出。\n"))
        cur = conn.cursor()
        if num == 1:
            select_smg()
        elif num == 2:
            sid = input("请输学号:")
            sname = input("请输姓名:")
            ssex = input("请输性别:")
            s_python = float(input("请输python成绩:"))
            data = (sid,sname,ssex,s_python)
            insert_smg(data)
        elif num == 3:
            sid = input("请输出学号:")
            s_python = float(input("请输入python成绩:"))
            update_smg(sid,s_python)
        elif num == 4:
            sid = input("请输入需要删除的学号:")
            delete_smg(sid)
        elif num == 5:
            break
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐