掌握Python *** 作 MySQL 数据库

掌握Python  *** 作 MySQL 数据库,第1张

本文Python *** 作 MySQL 数据库需要是使用到 PyMySQL 驱动

Python *** 作 MySQL 前提是要安装好 MySQL 数据库并能正常连接使用,安装步骤详见下文。

注意: 安装过程我们需要通过开启管理员权限来安装,否则会由于权限不足导致无法安装。

首先需要先下载 MySQL 安装包, 官网下载地址 下载对应版本即可,或直接在网上拉取并安装:

权限设置:

初始化 MySQL:

启动 MySQL:

查看 MySQL 运行状态:

Mysql安装成功后,默认的root用户密码为空,你可以使用以下命令来创建root用户的密码:

登陆:

创建数据库:

查看数据库:

PyMySQL 模块使用 pip命令进行安装:

假如系统不支持 pip 命令,可以使用以下方式安装:

pymysql .connect 函数:连接上数据库

输出结果显示如下:表面数据库连接成功

使用 pymysql 的 connect() 方法连接数据库,connect 参数解释如下:

conn.cursor():获取游标

如果要 *** 作数据库,光连接数据是不够的,咱们必须拿到 *** 作数据库的游标,才能进行后续的 *** 作,游标的主要作用是用来接收数据库 *** 作后的返回结果,比如读取数据、添加数据。通过获取到的数据库连接实例 conn 下的 cursor() 方法来创建游标,实例如下:

输出结果为:

cursor 返回一个游标实例对象,其中包含了很多 *** 作数据的方法,如执行sql语句,sql 执行命令: execute() 和 executemany()

execute(query,args=None):

executemany(query,args=None):

其他游标对象如下表:

完整数据库连接 *** 作实例如下:

以上结果输出为:

创建表代码如下:

如下所示数据库表创建成功:

插入数据实现代码:

插入数据结果:

Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。

查询数据代码如下:

输出结果:

DB API中定义了一些数据库 *** 作的错误及异常,下表列出了这些错误和异常:

本文给大家介绍 Python 如何连接 Mysql 进行数据的增删改查 *** 作,文章通过简洁的代码方式进行示例演示,给使用 Python *** 作 Mysql 的工程师提供支撑。

通过数据库网关连接罗克韦尔1756-L72的以太网端口标签方式采集数据,将数据存入MySQL数据库,以下描述具体的 *** 作步骤。PLC数据MQTT多主题发布/订阅西门子PLC数据采集到数据库

网关模块安装在设备侧,不用电脑软件,随设备上电启动自动运行,保证设备数据采集与设备运行同步,简单高效的完成了数据采集;已批量用于多种行业的智能工厂,大大提高MES等工业互联网项目的实施效率。IGT-DSER带有两种数据缓存功能:

1. 高频次采集数据缓存,打包后一次性上报到数据库;

2. 断网、服务器维护上报异常时,将数据缓存,待故障解除后重新上报到数据库

网关支持西门子、三菱、欧姆龙、施耐德等几乎所有的PLC品牌,通过以上参数软件自行切换即可;关于网关模块的详细介绍可查看CSDN的这篇文章,或者到这里下载PDF手册。以下是详细的 *** 作步骤:

首先用Navicat连接服务器数据库,建立一个数据表,名称为'abplcdata',数据表设计视图如下:

然后在PC上运行网关的参数设置软件,网线连接IGT-DSER网关的网口1,先配置网络参数(默认IP:192.168.1.244,确认PC的网口与网关默认IP同网段),通过‘工具’->‘搜索在线网关’,搜索到网关后,修改IP地址等参数,具体如下:

网口1.PLC设备末段IP设置为0表示有多台同系列同网段的PLC,每台PLC的IP地址在PLC数据地址表里面配置,后面有描述;设置完成后通过‘参数’->‘参数写入到网关’,下载参数,会有以下提示:

点‘是(Y)’即可,参数下载成功后将网关断电,网口1接入PLC的交换机网络,同时修改PC的网口参数为PLC同网段,重新搜索网关读取参数后,通过‘功能’->‘数据上报与下载’进入数据服务配置页面,选择SQL远程数据库,配置数据库地址、PLC标签的参数;

配置完成后要下载参数,通过‘工具’->‘重启网关’,重启后,网关即进入工作状态,通过读取参数可查看网关的实际数据,双击配置表对应的数据序号可查看数据值,如下图:

序号001是日期时间,取自网关的RTC时钟;002和003是PLC的控制器二维数组;004、005和006是控制器一维数组;007为程序变量,字符串类型;008是程序数组;009是控制器变量,BOOL类型;

设备/站号栏目的数值9,表示PLC的IP地址(192.168.0.9)末段(前三段与网关的网口1相同),如果需要增加另外的同系列同网段PLC,在这里设置对应的IP末段地址即可,不同的PLC对应不同的数据表,或者不同的记录行;

需要注意配置表‘数据地址’栏是PLC的数据标签,不能错误,否则读不到数据,所以最好是通过PLC的编程软件从PLC导出CSV文件,然后复制到配置表,如下图:

再打开Navicat查看数据库中的数据,如下图:

这样就完成了数据采集,没间隔5秒网关会自动上报一次数据,这个周期可以调整,也可以设置成触发模式,根据数据变化上报数据;

相关资源:利用PLC实现数据采集_plc数据采集并存入数据库,plc数据采集-专业...

————————————————

版权声明:本文为CSDN博主「肉褚」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_42302872/article/details/113655413

可以使用 pymysql 模块读取数据库数据

以下代码运行通过:

import pymysql pymysql.install_as_MySQLdb()import MySQLdb conn = MySQLdb.Connection(host='10.211.55.6', user='root', passwd='123456', port=3306, database='lucia_sqltest',                          charset='gbk')cursor = conn.cursor()  # 获取一个游标sql = 'select * from users'cursor.execute(sql)data = cursor.fetchall()for d in data:    # 注意 int 类型需要使用 str 函数转义    print("id: " + str(d[0]) + '  username: ' + d[1] + "  password: " + d[2])

运行效果:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10840237.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存