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

目录
  • 一、关系数据库
    • 1.数据模型
    • 2.面相对象模型
  • 二、了解关系数据库的概念和特点
    • 基本概念
    • 基本特点
  • 三、常用字段数据类型
  • 四、使Mysql和Pymysql链接成功
  • 五、 All源码(注明)
  • 六、博客总结

一、关系数据库

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*)外部关键字

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

基本特点

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

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

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

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

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

三、常用字段数据类型

数据表格

四、使Mysql和Pymysql链接成功

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

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

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

注明:博主使用的spyder

import pymysql

#定义数据库链接参数
host = '127.0.0.1'  #或者用local host
port = 3306
db = '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里面输入主机号 端口号 主机名 密码等就可以登录进去了

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

1.编写系统登录退出界面

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

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

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

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

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

3.编写登录后供选择的菜单

登录主菜单

#登入后的菜单----展开
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('账号或密码错误!')

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

4.编写增加学生记录的程序

#插入学生记录
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('插入失败!')

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

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]))

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

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

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

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

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

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

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()

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

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

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

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

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#占一个空位符

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

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

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

五、 All源码(注明)

这个就不告诉大家了 给大家讲了那么多知识,相信多看看多实训一定都能打出来甚至做的更好的。

六、博客总结

1.为什么会写代码

现在代码不仅会增加自己学识和思维 随着学识的增加 也会影响到其他事物中去,当然,在博客中经常会遇到一些生活、学习上的看似棘手的问题,那时我总是在举步维艰时强迫自己认为能找到出路。久而久之,自己也产生了这样一种思维模式,认为事情总是可以找到答案的。每次写出一个博客和文章得到同行和老师的称赞我都会兴奋不已 为我下一次更好的博客内容做铺垫。

2.特定思维

在这个过程中,我又感觉到写代码也与之前解决问题的模式相似,每一次完成一个完整的东西,都形成了一种特定思维模式的一小部分,也许这就是写代码的乐趣。

3.思维灵感

当我每次困惑一个问题很久很久不能解决的时候 我会感到很压抑,这时候我会试着出去呼吸一下新鲜空气 伸个懒腰 把思绪放空。你就会发现身上顿时轻松了很多。回来再解决这个困惑的时候发现特别容易。有时候灵感就是你压抑很久突然放松之后来的,那一瞬间。

4.脑+手

培养自己编程思维,培养自己编程乐趣。代码不是凭空想象出来的,是一行一行的敲出来的,运行成功没有捷径 只有靠自己的脑+手。

以上就是Python通过pymysql调用MySQL进行增删改移查的详细内容,更多关于Python pymysql增删改移查的资料请关注我们其它相关文章!

(0)

相关推荐

  • python 基于PYMYSQL使用MYSQL数据库

    在做测试的时候都会用到数据库,今天写一篇通过python连接MYSQL数据库 什么是MYSQL数据库 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一. 什么是PYMYSQL PyMySQL 是在 Python3.x 版本中用于

  • Python使用pymysql模块操作mysql增删改查实例分析

    本文实例讲述了Python使用pymysql模块操作mysql增删改查.分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- import pymysql user = input('请输入用户名:') pwd = input('请输入密码:') # 1.连接 conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='123', db='t1', charset='utf8')

  • pymysql实现增删改查的操作指南(python)

    1.安装pymysql:pip install pymysql (在命令行窗口中执行) 2.卸载pymysql:pip uninstall pymysql (在命令行窗口中执行) 数据库的连接 需要注意的是port是不用引号括起来 charset是utf8不是utf-8 # 获取数据库连接对象 connection = pymysql.connect(host='localhost', port=3306, user='root', passwd='2732195202', db='book',

  • python使用pymysql模块操作MySQL

    目录 实例一:插入数据 实例二:获取某个表全部数据 实例三:根据cName模糊搜索 实例一:插入数据 import pymysql import tkinter as tk conn = pymysql.connect(host='localhost', user='root', passwd='root', db='okzl', charset='utf8') master = tk.Tk() master.title("插入供应商信息") master.geometry('350x

  • 利用python中pymysql操作MySQL数据库的新手指南

    目录 一. pymysql介绍 二. 连接数据库的完整流程 1. 引入pymysql模块 2. 创建连接对象 3. 使用连接对象创建游标对象 4. 准备需要使用的sql语句 5. 使用游标对象执行sql语句(如果是数据修改的操作,会返回受影响的行数) 6. 如果执行语句是查询操作,需要使用游标对象获取查询结果 7. 关闭游标对象 8. 关闭连接对象 三. 完整的简易源码 总结 一. pymysql介绍 pymysql 是在 Python3.x 版本中用于连接和操作 MySQL 服务器的一个库.

  • Python pymysql操作MySQL详细

    目录 1.使用 1.1 简单使用 1.2 封装工具类 1.使用 1.1 简单使用 import pymysql # 创建连接 con = pymysql.connect( host='localhost', port=3306, user='root', password='123456', database='test', charset='utf8' ) # 创建游标 cursor = con.cursor() # 执行新增SQL,返回受影响行数 row1 = cursor.execute(

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

    目录 一.关系数据库 1.数据模型 2.面相对象模型 二.了解关系数据库的概念和特点 基本概念 基本特点 三.常用字段数据类型 四.使Mysql和Pymysql链接成功 五. All源码(注明) 六.博客总结 一.关系数据库 1.数据模型 实体间的关系分为以下有三种: 1*)一对一模型 一对一(one-to-one) 关系模型用二维表格表示数据及数据联系,是应用最为广泛的数据模型.目前,各种常用的数据库,如Microsoft SQL Server.Microsoft Access.Microso

  • 详解使用pymysql在python中对mysql的增删改查操作(综合)

    这一次将使用pymysql来进行一次对MySQL的增删改查的全部操作,相当于对前五次的总结: 先查阅数据库: 现在编写源码进行增删改查操作,源码为: #!/usr/bin/python #coding:gbk import pymysql from builtins import int #将MysqlHelper的几个函数写出来 def connDB(): #连接数据库 conn=pymysql.connect(host="localhost",user="root&quo

  • Python接入MySQL实现增删改查的实战记录

    前言 我们经常需要将大量数据保存起来以备后续使用,数据库是一个很好的解决方案.在众多数据库中,MySQL数据库算是入门比较简单.语法比较简单,同时也比较实用的一个.本文主要介绍了Python接入MySQL实现增删改查的相关内容,下面话不多说,一起来看看详细的介绍吧 打开数据库连接,创建数据库和表 基本语法如下: execute(query, args=None) # query为字符串类型的sql语句 # args:可选的序列或映射,用于query的参数值. # 如果args为序列,query中

  • Python中tkinter+MySQL实现增删改查

    一.设置主窗口 # -*- coding: utf-8 -*- import tkinter from tkinter import ttk import pymysql # 导入消息对话框子模块 import tkinter.messagebox # 创建主窗口 root = tkinter.Tk() root.title('告警查询') # 设置窗口大小 root.minsize(500,500) tabControl = ttk.Notebook(root) tab1 = ttk.Fram

  • Python利用txt文件对Mysql进行增删改查移

    目录 一.关系数据库 1.数据模型 2.面相对象模型 二.了解关系数据库的概念和特点 1.基本概念 2.基本特点 三.常用字段数据类型 四.在spyder中调用文件TXT内容进入程序 一.关系数据库 1.数据模型 实体间的关系分为以下有三种: 1*)一对一模型 一对一(one-to-one) 关系模型用二维表格表示数据及数据联系,是应用最为广泛的数据模型.目前,各种常用的数据库,如Microsoft SQL Server.Microsoft Access.Microsoft FoxPro.Ora

  • Python连接Mysql进行增删改查的示例代码

    Python连接Mysql 1.安装对应的库 使用Python连接Mysql数据库需要安装相应的库 以管理员身份运行cmd,输入命令 pip install mysql.connector 安装完成后建立 test.py 写入 import mysql.connector 保存后运行 python test.py 用以测试模块库是否安装完成,如果不报错,说明安装完成 2.进行连接测试 编写connectTest.py文件 文件内容: import mysql.connector connect

  • Java连接MySQL数据库增删改查的通用方法(推荐)

    运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类下面写好多方法,要是多个数据库,就要写多个类多个方法,导致代码编写太过于繁琐,所以为了改变这样的繁琐,我将连接数据库的方法进行了一系列的封装,使用户传入一个对象值Object就可以得到想要的. 我在之前写过一篇普通的Java连接MySQL数据库,大家可以看看,以便对比参考之后就知道差距了 数据库--MySQL-->Java篇 接下来我给大家讲讲如何将这个不可复用,又多重复的连接代码,封装起来,非常

  • Python+PyQt5实现数据库表格动态增删改

    目录 题目描述 解题思路/算法分析/问题及解决 实验代码 运行结果 题目描述 本次实验为连接数据库的实验,并对数据库进行一些简单的操作,要实现的基本功能如下所示,要能连接并展现数据库里的数据,能够实现插入功能. 拓展; 实现按学号查找学生信息功能 实现清空数据功能 实现保存数据功能 实现右键菜单功能 解题思路/算法分析/问题及解决 本次实验可主要分为两个部分,即数据库连接操作部分和数据可视化操作界面部分. 数据库连接部分采用python的pymysql库对数据库进行连接操作. 数据可视化部分采用

  • MySQL中增删改查操作与常见陷阱详解

    目录 本文导读 一.MySQL的增删改查 1.insert语句 2.delete语句 3.update语句原理 4.select 二.15种MySQL数据操作语句 1.REPLACE语句 2.CALL语句 3.TABLE语句 4.WITH语句 三.MySQL查询陷阱 总结 本文导读 本文作为MySQL系列第二篇文章,详细讲解了MySQL的增删改查的语句.语义和一些我们经常在开发工作中暴露的问题,MySQL的增删改查又叫数据操作语句,本文有讲些了一些常用的数据操作语句,select语句后续将作为一

随机推荐