博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用python3操作mysql数据库实现企业级产品参数查询
阅读量:7103 次
发布时间:2019-06-28

本文共 2134 字,大约阅读时间需要 7 分钟。

  

Python3 MySQL 数据库连接 - PyMySQL 驱动

一、什么是 PyMySQL?

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。

PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。

 

二、PyMySQL 安装

在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装。

PyMySQL 下载地址:https://github.com/PyMySQL/PyMySQL。

如果还未安装,我们可以使用以下命令安装最新版的 PyMySQL:

pip3 install PyMySQL

 

三、数据库连接

连接数据库前,请先确认以下事项:

  • 已经创建了数据库。
  • 在数据库中已经创建了表。
  • mysql数据库的初始默认用户名为root,密码为toor。
  • 在你的电脑上已经安装了PyMySQL 模块。
  • 如果您对sql语句不熟悉,可以访问 。

 

 

 

以上表格展示为作者所使用的产品参数表,字段Partnumber为产品的唯一ID,一个产品对应多个属性(Feature字段),每个产品的属性对应值Value是唯一。

 

正餐开始:

  • 数据量级:共计250万余行记录,字段数总计750万余条,涵盖产品4万余件

  • 效率汇报:属性值查询均能控制在2秒内查到对应值,查询效率令人满意

#PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库import pymysql# 创建pymysql类型的对象db,并连接到我的本地数据库"产品库"db = pymysql.connect("localhost","root","root","产品库" )#创建游标对象cursorcur = db.cursor()

 

 (1)查询产品ID为03195的产品重量

# 创建mysql查询语句sql2sql2 = "select * from web_published where Partnumber='03195' and Feature='产品重量'"#让游标对象cursor执行sql2语句,返回值是受到影响的数据量,以int值返回并存储在reCount中reCount2 = cur.execute(sql2)print(reCount2)#让执行sql2语句之后的游标对象返回执行后的结果,以元组tuple的形式存入data2data2 = cur.fetchall()print(data2)

 执行效果:

 

 

(2)查询产品ID为ZCT21N12的短路保护

# 创建mysql查询语句sql3sql3 = "select * from web_published where Partnumber='ZCT21N12' and Feature='短路保护'"#让游标对象cursor执行sql3语句,返回值是受到影响的数据量,以int值返回并存储在reCount中reCount3 = cur.execute(sql3)print(reCount3)#让执行sql3语句之后的游标对象返回执行后的结果,以元组tuple的形式存入data3data3 = cur.fetchall()print(data3)

 执行效果:

 

 

(3)查询产品ID为ZCP29的产品的所有属性

# 创建mysql查询语句sql4sql4 = "select * from web_published where Partnumber='ZCP29' "#让游标对象cursor执行sql3语句,返回值是受到影响的数据量,以int值返回并存储在reCount中reCount4 = cur.execute(sql4)print(reCount4)#让执行sql4语句之后的游标对象返回执行后的结果,以元组tuple的形式存入data3data4 = cur.fetchall()print(data4)

 执行效果:

 

 

(4)查询产品ID为ZCKM6H29的本体类型,结果以字典类型数据返回

# 创建mysql查询语句sql5sql5 = "select * from web_published where Partnumber='ZCKM6H29' and Feature='本体类型'"# cur = db.cursor()cur2 = db.cursor(cursor=pymysql.cursors.DictCursor)  ##创建cursor的时候,指定其返回的cursor类型为dictreCount5 = cur2.execute(sql5)  # 返回受影响的行数print(reCount5)data = cur2.fetchall()  # 返回数据,返回的是tuple类型print(data)

 执行效果:

 

 

 

(5)结束操作,关闭

#最后关闭游标对象和数据库,防止继续占用进程cur.close()db.close()

 

 

转载于:https://www.cnblogs.com/wangliman/p/9698105.html

你可能感兴趣的文章
Uart串口与RS232串口的区别
查看>>
【LeetCode】94. Binary Tree Inorder Traversal (3 solutions)
查看>>
(转)闪电效果的实现,中点位移法
查看>>
定义数组类型
查看>>
Java实现串口通信的小样例
查看>>
[转]一张图:你的车票是怎么被黄牛刷走的
查看>>
Firefox SVG getBBox方法返回'NS_ERROR_FAILURE'错误分析
查看>>
封装系统自带的Debug
查看>>
Grid_Oracle Grid Infrastructure概念介绍(概念)
查看>>
Netty系列之Netty百万级推送服务设计要点
查看>>
【百度地图API】北京周边7日游——图标按路线轨迹行动
查看>>
JAVA命令大全
查看>>
【百度地图API】让用户选择起点和终点的驾车导航
查看>>
揭秘淘宝286亿海量图片存储与处理架构
查看>>
得到工程的绝对路径
查看>>
iOS设置导航栏透明度
查看>>
怎样区分直连串口线和交叉串口线?
查看>>
【吐槽】火车票一票难求啊
查看>>
面向对象设计
查看>>
hdu1047 Integer Inquiry 多次大数相加
查看>>