python连接mysql数据库_Python连接MySQL进行建数据库和数据表以及读写数据操作

201610181557196870.jpg

码农公社 210.net.cn 210= 1024 10月24日一个重要的节日--码农(程序员)节

-------------------------------

要达到的目的:

1、在数据库中建表,且可按时间自动建新表

2、数据写入数据库表

3、从数据库表读取数据

--------------------------------创建表,并自动更新

def Creat_Table(InitMySQL,tabel_name):

# 创建游标

cursor = InitMySQL.cursor()

sql = "create table if not exists " + tabel_name + "(dTime datetime not null comment '时间'," \

"dElectric_uA int not null comment '电流'," \

"dDistance int not null comment '距离'," \

"dWarning int not null comment '报警')"

# 打印sql

print(sql)

cursor.execute(sql)

# 关闭游标

cursor.close()

需要输入数据库的连接对象和表名称,sql根据表名称判断数据库中是否存在该表,如果存在则不会创建,不存在则创建新表

tabel_name 可以根据时间创建

2. 向数据库中写入数据

根据创建的数据库中表的类型进行数据填充

def Write_to_MySQL(InitMySQL,tabel_name, CurrentTime, Electric_uA, Distance, WaringStatus):

# 创建游标

cursor = InitMySQL.cursor()

# #创建sql

# w_table_name = 'warning' + day_time

sql = 'insert into '+ tabel_name+ ' values (%s, %s, %s, %s)'

print(sql)

result = cursor.execute(sql,(CurrentTime, Electric_uA, Distance, WaringStatus))

if result == 1:

pass

# print('添加成功!')

else:

print('添加数据失败!')

# 4. 操作成功提交事务

InitMySQL.commit()

# 关闭游标

cursor.close()

测试的数据库结果:

1585838008111181.jpg

3. 从数据库读取数据

"""

【函数功能】 读取数据库中最近的几分钟内的数据

【输入】 需要查询的table名称(也可以从JSON中读取)

【输出】 欲查询的数据列表

"""

def Read_from_Mysql(InitMySQL, sql_tabel_name):

# 从JSON中读取sql需要的参数

set_time = filejson['MysqlInit']['set_delaytime_min']

now_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")

last_time = (datetime.datetime.now() - datetime.timedelta(minutes = set_time)).strftime("%Y-%m-%d %H:%M:%S")

# sql_tabel_name = filejson['MysqlInit']['sql_tabel_name']

sql_distance_header = filejson['MysqlInit']['distance_header']

sql_time_header = filejson['MysqlInit']['time_header']

# 创建游标

cursor = InitMySQL.cursor()

sql = "SELECT " + sql_distance_header + " FROM " + sql_tabel_name + " WHERE " + sql_time_header \

+ "<'" + now_time + "'" + " and " + sql_time_header + ">'" +last_time + "'"

# print(sql)

cursor.execute(sql)

# 获取该字段下的数据

result = cursor.fetchall()

# 关闭游标

cursor.close()

# 将数据转换成列表

new_distance= []

for dis in result:

new_distance.append(dis[0])

return new_distance

【注意】拼接的sql字符串中可以加入变量,时间值需要用单引号引起来。

转自https://www.cnblogs.com/wangxiaobei2019/p/11576898.html,略作完善。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值