文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python如何通过pymysql调用MySQL进行增删改移查

2023-06-22 07:04

关注

这篇文章主要介绍了Python如何通过pymysql调用MySQL进行增删改移查,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

一、关系数据库

1.数据模型

实体间的关系分为以下有三种:

1*)一对一模型

一对一(one-to-one)

关系模型用二维表格表示数据及数据联系,是应用最为广泛的数据模型。目前,各种常用的数据库,如Microsoft SQL Server、Microsoft Access、Microsoft FoxPro、Oracle、MySQL、SQLite等,都属于关系模型数据库管理系统。

2*)一对多模型

一对多(one-to-many)

层次模型采用树状结构表示数据之间的联系,树的节点称为记录,记录之间只有简单的层次关系。有且只有一个节点没有父节点,该节点称为根节点;其他节点有且只有一个父节点。

3*)多对多模型

多对多(many-to-many)

可以有任意多个节点没有父节点。一个节点允许有多个父节点。两个节点之间可以有两种或两种以上联系。

2.面相对象模型

1*)对象模型概念

面向对象模型是在面向对象技术基础上发展起来一种的数据模型,它采用面向对象的方法来设计数据库。

2*)对象模型特点

面向对象模型的数据库种存储对象以对象为单位,每个对象包含对象的属性和方法,具有类和继承等特点。

二、了解关系数据库的概念和特点

关系数据库的概念和特点

基本概念

i*)关系

数据和数据之间的联系称为关系。

ii*)二维表

关系数据库使用二维表来表示和存储关系,一个关系就是一个二维表。表中的行称为记录,列称为字段。一个数据库可以包含多个表。

iii*)记录与字段

表中的一行称为一个记录。表中的列为记录中的数据项,称为字段。字段也称为属性或者列。每个记录可以包含多个字段,不同记录包含相同的字段(字段的值不同)。例如,用户表中的每个记录包含用户名、登录密码等字段。

关系数据库不允许在一个表中出现重复的记录。

VI*)关键字

可以唯一标识一个记录的字段或字段组合称为关键字。一个表可有多个关键字,其中用于标识记录的关键字称为主关键字,其他的关键字可称为候选关键字。一个表只允许有一个主关键字。例如,用户表中的用户名可定义为主关键字,在添加记录时,主关键字不允许重复。

VII*)外部关键字

如果一个表中的字段或字段组合作为其他表的主关键字,这样的字段或字段组合称为外部关键字。

基本特点

关系数据库中的表是二维表,表中的字段必须是不可再分的,即不允许表中表。

在同一个表中不允许出现重复的记录。

在同一个记录中不允许出现重复的字段。

表中记录先后顺序不影响数据的性质,可以交换记录顺序。

记录中字段的顺序不影响数据,可以交换字段的顺序。

三、常用字段数据类型

数据表格

Python如何通过pymysql调用MySQL进行增删改移查

四、使Mysql和Pymysql链接成功

第一步、先在Navicat Premium 12中找到数据表登录链接

Python如何通过pymysql调用MySQL进行增删改移查

Python如何通过pymysql调用MySQL进行增删改移查

注明:数据表一定要存在 不然数据修改追加不进去的!!!!

第二步、 显示链接成功后登入spyder 或者pycharm使用pymysql调用mysql

注明:博主使用的spyder

Python如何通过pymysql调用MySQL进行增删改移查

import pymysql#定义数据库链接参数host = '127.0.0.1'  #或者用local hostport = 3306db = 'student'user = 'root'password = 'lyt2529165097'conn = pymysql.connect(host=host, port=port, db=db, user=user, password=password)def main():    cursor = conn.cursor(pymysql.cursors.SSCursor)  #流式游标,默认返回元组    return cursor通过在spyder里面输入主机号 端口号 主机名 密码等就可以登录进去了

第三步、编写代码登录系统

编写系统登录退出界面

while True:    print('请选择以下菜单号:')    print('========='*3)    print('1、登录学生信息管理系统')    print('2、退出学生信息管理系统')    print('========='*3)    mc1 = int(input('输入菜单号:'))    if mc1 == 1:        login()    elif mc1 == 2:        print('感谢使用学生信息管理系统!')        break

当然了,进入系统怎么可能不需要密码呢。一定要给自己设置密码哦 不然别人半夜删你代码!!!

编写进入系统用户名和密码

def login():    administartor = input('请输入用户名:')    password = input('请输入密码:')    if administartor == '雷云腾' and password == 'lyt2529165097':

Python如何通过pymysql调用MySQL进行增删改移查

成功进入系统后,就可以编写下一个程序了,比如我们把菜单系统都编写出来,这样就有了一个整体架构

编写登录后供选择的菜单

登录主菜单

#登入后的菜单----展开def login():    administartor = input('请输入用户名:')    password = input('请输入密码:')    if administartor == '雷云腾' and password == 'lyt2529165097':        print("恭喜你成功登录系统!!")        while True:            print('学生信息管理系统')            print('================')            print('1、增加学生记录')            print('2、查询学生记录')            print('3、修改学生记录')            print('4、删除学生记录')            print('5、显示所有的学生记录')            print('6、返回上级菜单')            print('=================')            mc2 = int(input('输入菜单号:'))            if mc2 == 1:                add_student()            elif mc2 == 2:                query_student()            elif mc2 == 3:                update_student            elif mc2 == 4:                delete_student()            elif mc2==5:                print_student()            else:                break    else:        print('账号或密码错误!')

成功进入系统后并且拥有菜单系统的时候就可以编写下一个程序了,比如我们先编写插入记录的程序

编写增加学生记录的程序

#插入学生记录def add_student():    cursor = main()    id = int(input('学号:'))    name = input('姓名:')    gender = input('性别:')    age = int(input('年龄:'))    class1 = input('班级:')    major = input('专业:')    college = input('学院:')    add = cursor.execute('insert into stu (id, name, gender, age, class1, major, college)\                   values(%s,%s,%s,%s,%s,%s,%s)',(id, name, gender, age, class1, major, college))    if add == 1:        conn.commit()        print('插入成功!')    else:        print('插入失败!')

Python如何通过pymysql调用MySQL进行增删改移查

第四步、编写查询学生信息记录的代码

I*)按照学号查询学生记录

#按学号查询def Q_by_id():    cursor = main()    choice_id = int(input('请输入学号:'))    cursor.execute('select * from stu where id =%s',(choice_id))    students = cursor.fetchall()    for stu in students:        print(stu[0], stu[1], stu[2], stu[3], stu[4], stu[5], stu[6])        print('查询成功')         re = input('是否继续查询(yes/no):')        if re == 'yes':            Q_by_id()        else:            query_student()

II*)按照姓名查询学生记录

#按姓名查询(以防学号输入错误)def Q_by_name():    cursor = main()    choose_name = input('请输入姓名:')    cursor.execute('select * from stu where name =%s',(choose_name))    students = cursor.fetchall()    for stu in students:        print(stu[0], stu[1], stu[2], stu[3], stu[4], stu[5], stu[6])        print()        re = input('是否继续查询yes/no:')        if re == 'yes':            Q_by_name()        else:            query_student()

III*)查询所有学生的信息记录

#查询所有学生def Q_all():    cursor = main()    cursor.execute('select * from stu')    students = cursor.fetchall()    for student in students:        print('\t{}\t{}\t{}\t{}\t{}\t{}\t{}' .format(student[0], student[1], student[2], student[3], student[4], student[5], student[6]))

Python如何通过pymysql调用MySQL进行增删改移查

Python如何通过pymysql调用MySQL进行增删改移查

这样就查询成功啦!,如果还想要进行查询的话,也是可以编写代码来实现的!

VI*)编写"是否"进行查询记录

 re = input('是否继续查询(yes/no):')        if re == 'yes':            Q_by_id()        else:            query_student()

Python如何通过pymysql调用MySQL进行增删改移查

当然 除了能查询 当然还得有可供我们选择的菜单啦!不然我们是无法进入程序经行增删改查的

VII*)写出登录菜单后还要写出可供我们查询的菜单

查询记录菜单

#查询的菜单def query_student():    while True:        print('查询学生记录')        print('================')        print('1、按学号查询学生记录')        print('2、按姓名查询学生记录')        print('3、查询全部学生记录')        print('4、返回上级菜单')        print('=================')        mc3 = int(input('请输入查询的菜单号:'))        if mc3 == 1:            Q_by_id()        elif mc3 == 2:            Q_by_name()        elif mc3 == 3:            Q_all()        else:            break

Python如何通过pymysql调用MySQL进行增删改移查

注明:不光要写出代码 还要写出可供选择的菜单哦~

VII*)编写删除学生记录程序

删除记录的菜单

#删除的菜单def delete1_student():    print('============================')    print('1、删除学生所有信息')    print('2、回到初始界面')    print('============================')    mc4 = int(input('Input menu number:'))    if mc4 == 1:        delete_student()    elif mc4 == 3:        login()

删除学生姓名为雷云腾的信息

首先要知道他的学号,然后还有姓名

Python如何通过pymysql调用MySQL进行增删改移查

接下来就是我们最难的环节 也是我们的重头戏 修改指定的学生记录

还是需要知道他的学号,姓名

def update_student():        cursor = main()        cur= int(input('请输入想要修改学生的学号:'))        cursor.execute('select * from stu where id = %s', (cur))        if cursor.fetchall() == []:            print('未查找到学号是{}的学生'.format(cur))            mc3 = input('是否重新查询?(yes/no)')            if mc3 != 'no':                update_student()            else:                login()        else:            print('==============')            print('1、修改姓名')            print('2、修改性别')            print('3、修改年龄')            print('4、修改班级')            print('5、修改专业')            print('6、修改学院')            print('7、返回上级菜单')            print('==============')            mc2 = int(input('请输入菜单号:'))            if mc2 == 1:                name = input('请输入修改后的名字:')                a = cursor.execute('update stu set name = %s where id = %s', (name, cur))                if a == 1:                    conn.commit()                    print('修改成功!')                else:                    print('修改失败!')            elif mc2 == 2:                gender1 = input('请输入修改后的性别:')                a = cursor.execute('update stu set genden = %s where id = %s', (gender1, cur))                if a > 1:                    conn.commit()                    print('修改成功!')                else:                    print('修改失败!')            elif mc2 == 3:                age1 = int(input('请输入修改后的年龄:'))                a = cursor.execute('update stu set age = %s where id = %s', (age1, cur))                if a > 1:                    conn.commit()                    print('修改成功!')                else:                    print('修改失败!')            elif mc2 == 4:                class1 = input('请输入修改后的班级:')                a = cursor.execute('update stu set class = %s where id = %s', (class1, cur))                if a > 1:                    conn.commit()                    print('修改成功!')                else:                    print('修改失败!')            elif mc2 == 5:                major1 = input('请输入修改后的专业:')                a = cursor.execute('update stu set major = %s where id = %s', (major1, cur))                if a > 1:                    conn.commit()                    print('修改成功!')                else:                    print('修改失败!')            elif mc2 == 6:                college1 = input('请输入修改后的学院:')                a = cursor.execute('update stu set college = %s where id = %s', (college1, cur))                if a > 1:                    conn.commit()                    print('修改成功!')                else:                    print('修改失败!')            else:                pass#占一个空位符

当我还没有关闭数据表时还未更新,这时候我们需要关闭所更新的数据表并且重新打开

Python如何通过pymysql调用MySQL进行增删改移查

这时候我们关闭数据表他就会对我们所更改的数据进行更新

Python如何通过pymysql调用MySQL进行增删改移查

Python如何通过pymysql调用MySQL进行增删改移查

当然除了更改姓名还可以更改学号 性别学院等等…

感谢你能够认真阅读完这篇文章,希望小编分享的“Python如何通过pymysql调用MySQL进行增删改移查”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯