python基础之操作MySQL数据库

工作需要操作MySQL数据库,使用pymysql库,有些操作上不习惯的地方做了些修改。比如查询的时候结果不能按字段名读取数据等。以下是代码。

首先是引入库、引入random和string主要是为了生成id。

import pymysql
import random
import string

创建数据库链接对象

def mysqlconnect():# 连接数据库host = '192.168.1.1port = 3306user = 'root'password = 'root'database = 'ceshi_table'conn = pymysql.connect(host=host, port=port, user=user, password=password, database=database)cursor = conn.cursor()return cursor,conn

一、查询方法

def selectdata(sql_query):cursor,conn = mysqlconnect()# 执行SQL查询语句cursor.execute(sql_query)# 获取查询结果results = cursor.fetchall()# 查询column_names = [desc[0] for desc in cursor.description]data = []for row in results:name_value = {}for column_name in column_names:name_value[column_name] = row[column_names.index(column_name)]data.append(name_value)# 关闭游标和连接cursor.close()conn.close()if len(data) == 1:return data[0]else:return data

调用

sql_query = "SELECT * FROM data_table"
results = selectdata(sql_query)
print(results)

二、添加数据方法

def insertdata(insertsql,values):cursor,conn = mysqlconnect()try:if type(values) == list:cursor.executemany(insertsql, values)if type(values) == tuple:cursor.execute(insertsql, values)conn.commit()except Exception as e:print(f"数据插入失败:{e}")conn.rollback()# 关闭游标和连接cursor.close()conn.close()

调用

insertsql = "insert into data_table (id,warning_type,customer,license,tel) values (%s,%s,%s,%s,%s)"
values = [('123133', '123123','城区据','第一市场队'),
('123125', '123123','城区据','第一市场队'),
('123178', '123123','城区据','第一市场队')]
# values = ('123127', '123123','城区据','第一市场队')
insertdata(insertsql,values)

三、更新数据方法

def updatedata(update_sql,values):cursor,conn = mysqlconnect()try:cursor.execute(update_sql, values)conn.commit()except Exception as e:print(f"数据更新失败:{e}")conn.rollback()# 关闭游标和连接cursor.close()conn.close()

调用

update_sql = "UPDATE data_table SET area_name=%s,squadron_code=%s WHERE id=%s"
values = ('new_value1', 'condition_value','123123')
updatedata(update_sql,values)

四、删除数据方法

def deledata(delete_sql,delevalue):cursor, conn = mysqlconnect()try:cursor.execute(delete_sql, delevalue)conn.commit()except Exception as e:print(f"数据删除失败:{e}")conn.rollback()# 关闭游标和连接cursor.close()conn.close()

调用

delete_sql = "DELETE FROM data_table WHERE id=%s"
values = ('123123')
deledata(delete_sql,values)

五、最后还有个生成随机字符串id的方法

def generate_random_string(length):characters = string.ascii_letters + string.digits  # 包含所有大小写字母和数字random_string = ''.join(random.choice(characters) for _ in range(length))return random_string

ok,完毕!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/577607.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法导论复习(三)

这一次我们主要复习的是递归式求解 递归式求解主要有的是三种方法: 代换法递归树法主方法 我们进行处理的时候要 代换法 方法讲解 主要就是猜测答案的形式 我们只在乎 n 在无穷大的时候成立就行 关于答案的形式,我发现最后能够是 n log n 的形式的…

SUS-Chat-34B领先一步:高效双语AI模型的突破

引言 在人工智能领域,模型的规模和效能一直是衡量其先进性的关键指标。南方科技大学联合IDEA研究院CCNL团队最新开源的SUS-Chat-34B模型,以其340亿参数的庞大规模和卓越的双语处理能力,在AI界引起了广泛关注。 模型概述 SUS-Chat-34B是基于…

在VSCode中使用Git教程

文章目录 提交代码操作分支提交远程库拉取代码参考 介绍一下如何在VSCode中使用Git 首先在VSCode中打开一个项目 打开项目后, 点击下图按钮, 可以引入Git 提交代码 点击 ;相当于git add. 下面两张图, 第一张表示改文件后的号, 只会add本文件. 第二张图表示这段时…

linux系统和网络(四):网络

本文主要探讨linux网络相关知识,详细介绍看本博客其他博文。 网络基础(参考本博客其他文章:基础网络知识,socket网络编程,基于socket的聊天室和简易ftp) 路由器是局域网和外部网络通信出入口 DNS实现域名和IP地址之间转换 …

前端---资源路径

当我们使用img标签显示图片的时候&#xff0c;需要指定图片的资源路径&#xff0c;比如: <img src"images/logo.png">这里的src属性就是设置图片的资源路径的&#xff0c;资源路径可以分为相对路径和绝对路径。 1. 相对路径 从当前操作 html 的文档所在目录算…

【算法题】10. 正则表达式匹配

题目 给你一个字符串 s 和一个字符规律 p&#xff0c;请你来实现一个支持 . 和 * 的正则表达式匹配。 . 匹配任意单个字符 * 匹配零个或多个前面的那一个元素 所谓匹配&#xff0c;是要涵盖 整个 字符串 s的&#xff0c;而不是部分字符串。 示例 1&#xff1a; 输入&#xf…

Ai画板原理

在创建时画板可以选择数量和排列方式 也可以采用这个图片左上的画板工具&#xff0c;选择画板在其他地方画框即可生成&#xff0c;同时可以在属性框中可以修改尺寸大小 选择全部重新排列可以进行创建时的布局

uniapp创建/运行/发布项目

1、产生背景----跨平台应用框架 在移动端各大App盛行的时代&#xff0c;App之间的竞争也更加激烈&#xff0c;他们执着于让一个应用可以做多个事情 所以就应运而生了小程序&#xff0c;微信小程序、支付宝小程序、抖音小程序等等基于App本身的内嵌类程序。 但是各大App他不可…

VTK+QT配置(VS)

先根据vtk配置这个博客配置基本环境 然后把这个dll文件从VTK的designer目录复制到qt的对应目录里 记得这里是debug版本&#xff0c;你也可以配置release都一样的步骤&#xff0c;然后建立一个qt项目&#xff0c;接着配置包含目录&#xff0c;库目录&#xff0c;链接输入&…

使用Windi CSS(基于vue-cli)

1、先创建vue项目 利用脚手架vue-cli创建&#xff0c;根据需求设置vue版本、babel等&#xff0c;无特别要求直接用默认的vue2或vue3就行 vue create 项目名 2、运行vue项目&#xff0c;利用vue-cli安装Windi CSS 官网指导&#xff1a;Vue CLI 集成 | Windi CSS 我的经历&a…

wsl安装mysql必须sudo才可以登陆

wsl安装mysql必须sudo才可以登陆 背景&#xff1a; win11 21H2wsl2 ubuntu20048.0.35-0ubuntu0.20.04.1 ​ MySQL 默认情况下是以 root 用户身份运行的&#xff0c;因此需要使用 sudo 来访问 MySQL 服务器。如果您希望在不使用 sudo 的情况下登录 MySQL&#xff0c;可以创建…

动态规划-多维

目录 62 不同路径 1143 最长公共子序列 714 买卖股票的最佳时机含手续费 72 编辑距离 62 不同路径 class Solution { public:int uniquePaths(int m, int n) {vector<vector<int>>dp(m,vector<int>(n));for(int i 0;i < n;i)dp[0][i] 1;for(int i…

智能优化算法应用:基于厨师算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于厨师算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于厨师算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.厨师算法4.实验参数设定5.算法结果6.参考文献7.MA…

Java中synchronized锁升级过程是什么样的

参考文章一 参考文章二 参考文章三 在Java中&#xff0c;对象锁的状态是为了减少同步操作的开销而设计的&#xff0c;主要包括无锁、偏向锁、轻量级锁和重量级锁几个级别。锁的状态会随着竞争情况的不同而升级&#xff0c;但是不会降级。以下是锁状态的一般升级过程&#xff1…

将mapper.xml保存为idea的文件模板

将mapper.xml保存为idea的文件模板 在idea的File and Code Templates中将需要使用模板的内容添加为模板文件。 那么接下来请看图&#xff0c;跟着步骤操作吧。 mapper.xml文件内容 <?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE mapper P…

代码随想录算法训练营第二十七天|组合总和等

77 组合 1 描述 给定两个整数 n 和 k&#xff0c;返回 1 ... n 中所有可能的 k 个数的组合。 示例: 输入: n 4, k 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ] 2 代码 class Solution:def combine(self, n: int, k: int) -> List[List[int]]:path []rst…

数据仓库【2】:架构

数据仓库【2】&#xff1a;架构 1、架构图2、ETL流程2.1、ETL -- Extract-Transform-Load2.1.1、数据抽取&#xff08;Extraction&#xff09;2.1.2、数据转换&#xff08;Transformation&#xff09;2.1.3、数据加载&#xff08; Loading &#xff09; 2.2、ETL工具2.2.1、结构…

宝塔面板Linux服务器CentOS 7数据库mysql5.6升级至5.7版本教程

近段时间很多会员问系统更新较慢&#xff0c;也打算上几个好的系统&#xff0c;但几个系统系统只支持MYSQL5.7版本&#xff0c;服务器一直使用较低的MYSQL5.6版本&#xff0c;为了测试几个最新的系统打算让5.6和5.7并存使用&#xff0c;参考了多个文档感觉这种并存问题会很多。…

2023.12.25力扣每日一题——不浪费原料的汉堡制作方案

2023.12.25 题目来源我的题解方法一 数学 题目来源 力扣每日一题&#xff1b;题序&#xff1a;1276 我的题解 方法一 数学 首先判断番茄的数量是不是偶数&#xff0c;若不是则不可能使用完材料&#xff0c;因为两种汉堡的对于番茄的消耗都是偶数&#xff1b;然后假设全部做小…

AOSP源码下载方法,解决repo sync错误:android-13.0.0_r82

篇头 最近写文章&#xff0c;反复多次折腾AOSP代码&#xff0c;因通过网络repo sync aosp代码&#xff0c;能一次顺利下载的概率很低&#xff0c;以前就经常遇到&#xff0c;但从未总结&#xff0c;导致自己也要回头检索方法&#xff0c;所以觉得可以总结一下&#xff0c;涉及…