您的位置:首页 > 编程语言 > Python开发

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

2019-01-07 22:30 459 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/HuiTaiLangEr/article/details/85963844

背景描述

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

预置条件

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

具体实践

连数据库

  • 导入pymysql库
    在PyCharm的Terminal窗口执行pip install pymysql。(注:必须先导入pip的库才能使用该指令)

    也可以通过Pycharm 导航栏的preference 进入到 Project Interpreter进行库的添加(pip库也可以通过该方式添加)

  • 连接数据库
    在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()

小结

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

以上

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: