MySQL基本操作之-----增删改查(Python脚本方式)

背景描述

公司项目用到的数据库是MySQL,测试过程中经常需要对数据库进行一些批量操作。故在此记录一下基本的增删改查的操作,以便后续自己操作的时候能够快速翻查。

预置条件

  • MySQL环境已安装准备完毕
  • Python环境已安装准备完毕
  • 示例使用PyCharm IDE写py脚本

具体实践

连数据库

  • 导入pymysql库
    在PyCharm的Terminal窗口执行pip install pymysql。(注:必须先导入pip的库才能使用该指令)
    pip方式导入库
    也可以通过Pycharm 导航栏的preference 进入到 Project Interpreter进行库的添加(pip库也可以通过该方式添加)
    在这里插入图片描述
    其实这种方式也很方便的,只不过经常会搜到好多github上别人进一步封装过的库文件
  • 连接数据库
    在py脚本中执行下述代码:
import pymysql
conn = pymysql.connect(user = '数据库用户名',password = '密码',port = 3306,db = 'TBL_TEST',host = '数据库服务端ip',charset = 'utf8')
#获取游标
cursor = conn.cursor()

如果没有报错,则说明连接成功。报错的话,则查看具体原因,进行排查。

创建表单

在TBL_TEST数据库里创建测试用的表TBL_ScaningGroup。该表包含两个varchar类型字段ISDN、GroupID,且都设置为主键。

#------创建表----------#
createSQL = """CREATE TABLE TBL_ScaningGroup(
               ISDN    	 VARCHAR(10),
               GroupID    VARCHAR(10),
               PRIMARY KEY(ISDN,GroupID)
)CHARSET UTF8 """

try:
    cursor.execute('DROP TABLE IF EXISTS TBL_ScaningGroup')
    cursor.execute(createSQL)
    conn.commit()
except:
    import traceback
    print("创建表失败!")
    traceback.print_exc()
    conn.rollback()
finally:
    cursor.close()
    conn.close()

创建成功后,可以进入该数据库,执行下述语句查看该表创建情况。

DESC  TBL_ScaningGroup;

进入数据库查看创建情况

插入数据

设置的插入数据要求如下:

  1. 测试需要往表里面插入300条数据。
  2. ISDN和GroupID都是递增的,且步长为1。
  3. 毎50个ISDN对应同一个GroupID。
#------插入数据--------#
insertSQL = 'INSERT INTO TBL_ScaningGroup (ISDN,GroupID) VALUES (%s,%s)'
step = 50

try:
    for i in range(0,6):
        GroupID = 13901050001 + i
        for j in range(1,51):
            ISDN = 13901000000 + j + i*step
            cursor.execute(insertSQL,(ISDN,GroupID))
    conn.commit()   #切记提交事务。默认是需要手动提交的。
except:
    import traceback
    print("数据插入失败!")
    traceback.print_exc()
    conn.rollback() #插入失败,则进行回滚操作。
finally:
    cursor.close()
    conn.close()

查看数据是否插入成功:
在这里插入图片描述
在这里插入图片描述

查询数据

#------查询数据--------#
selectSQL = 'SELECT * FROM TBL_ScaningGroup'

try:
    cursor.execute(selectSQL)
    results = cursor.fetchall()
    for row in results:
        ISDN = row[0]
        GroupID = row[1]
        print(ISDN,GroupID)
except:
    import traceback
    print("数据查询失败!")
    traceback.print_exc()
finally:
    cursor.close()
    conn.close()

更新数据

更新的数据要求如下:

  1. 各ISDN对应的GroupID递增1。及原先如果是“13901050001”,则变为“13901050002”。
  2. ISDN字段不变。
#------更新数据-------#
updateSQL = 'UPDATE TBL_ScaningGroup SET GroupID = %s WHERE ISDN = %s'

# 先查询数据总数
jquery = 'SELECT COUNT(*) FROM TBL_ScaningGroup'

try:
    cursor.execute(jquery)
    result1 = cursor.fetchone()
    count = result1[0]
    step = 50;
    print(count)
    for i in range(1,count+1):
        addCount = (i // (step + 1)) #毎50个递增一次
        cursor.execute(updateSQL,(13901050002 + addCount,13901000000 + i))
    conn.commit()
except:
    import traceback
    print("数据更新失败")
    traceback.print_exc()
    conn.rollback()
finally:
    cursor.close()
    conn.close()

在这里插入图片描述
在这里插入图片描述

删除数据

#-------删除数据---------#
#删除ISDN大于13901000100

deleteSQL = 'DELETE FROM TBL_ScaningGroup WHERE ISDN >= %s' 

try:
    cursor.execute(deleteSQL,13901000100)
    conn.commit()
except:
    import traceback
    print("数据删除异常")
    traceback.print_exc()
    conn.rollback()
finally:
    cursor.close()
    conn.close()

小结

数据库这些基本操作,用的少会经常遗忘。写下这些就是为了以后自己查询方便。同时,后面要坚持写一些工作中实用的东西,也算是工作的一种修行吧。^_ ^

以上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值