Python基础(二十九、pymsql)
文章目录
- 一、安装pymysql库
- 二、代码实践
- 1.连接MySQL数据库
- 2.创建表格
- 3.插入数据
- 4.查询数据
- 5.更新数据
- 6.删除数据
- 三、完整代码示例
- 四、结论
使用Python的pymysql库可以实现数据存储,这是一种连接MySQL数据库的方式。在本篇文章中,将详细介绍如何使用pymysql库连接MySQL数据库、创建表格、插入数据以及查询数据等操作。
准备工作,本地要安装好mysql数据库,可通过官方网站下载 Mysql数据库
一、安装pymysql库
使用Python的pymysql库需要先安装该库。可以通过pip安装:
pip install pymysql

二、代码实践
1.连接MySQL数据库
连接到MySQL数据库之前,需要知道MySQL服务器的相关信息,例如服务器地址、用户名、密码和数据库名称等。这些信息可以根据具体情况进行修改。
使用以下代码连接到MySQL数据库:
import pymysql# 建立连接
conn = pymysql.connect(host='localhost', user='root', password='password', database='test_db')# 创建游标对象
cursor = conn.cursor()# 关闭连接
conn.close()
上述代码中,我们使用connect()方法创建一个连接对象,该方法需要传递MySQL服务器的相关信息,例如服务器地址、用户名、密码和数据库名称等。成功建立连接后,我们可以使用cursor()方法创建一个游标对象。最后,我们使用close()方法关闭连接。
2.创建表格
连接到MySQL数据库后,可以使用以下代码创建一个表格:
# 创建表格
create_table_query = """CREATE TABLE users (id INT(11) NOT NULL AUTO_INCREMENT,name VARCHAR(255) NOT NULL,age INT(11) NOT NULL,PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"""cursor.execute(create_table_query)
上述代码中,我们使用SQL语句创建了名为“users”的表格,并定义了三个字段:id、name和age。同时,我们还为id字段添加了主键约束。最后,我们使用execute()方法执行SQL语句。
3.插入数据
创建表格后,可以使用以下代码向表格中插入数据:
# 插入数据
insert_query = """INSERT INTO users (name, age) VALUES ('Tom', 25)"""
cursor.execute(insert_query)
上述代码中,我们使用SQL语句向“users”表格中插入了一行数据,其中name字段为“Tom”,age字段为25。最后,我们使用execute()方法执行SQL语句。
4.查询数据
可以使用以下代码查询表格中的数据:
# 查询数据
select_query = "SELECT * FROM users"
cursor.execute(select_query)
results = cursor.fetchall()for row in results:id = row[0]name = row[1]age = row[2]print("id=%d,name=%s,age=%d" % (id, name, age))
上述代码中,我们使用SQL语句查询“users”表格中的所有数据,并使用fetchall()方法获取结果集。最后,我们遍历结果集并输出每一行数据。
5.更新数据
可以使用以下代码更新表格中的数据:
# 更新数据
update_query = "UPDATE users SET age=26 WHERE name='Tom'"
cursor.execute(update_query)
conn.commit()
上述代码中,我们使用SQL语句更新“users”表格中名为“Tom”的行的age字段为26。最后,我们使用commit()方法提交更改。
6.删除数据
可以使用以下代码从表格中删除数据:
# 删除数据
delete_query = "DELETE FROM users WHERE name='Tom'"
cursor.execute(delete_query)
conn.commit()
上述代码中,我们使用SQL语句从“users”表格中删除名为“Tom”的行。最后,我们使用commit()方法提交更改。
三、完整代码示例
下面是完整的Python代码示例:
import pymysql# 建立连接
conn = pymysql.connect(host='localhost', user='root', password='password', database='test_db')# 创建游标对象
cursor = conn.cursor()# 创建表格
create_table_query = """CREATE TABLE users (id INT(11) NOT NULL AUTO_INCREMENT,name VARCHAR(255) NOT NULL,age INT(11) NOT NULL,PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"""cursor.execute(create_table_query)# 插入数据
insert_query = """INSERT INTO users (name, age) VALUES ('Tom', 25)"""
cursor.execute(insert_query)# 查询数据
select_query = "SELECT * FROM users"
cursor.execute(select_query)
results = cursor.fetchall()for row in results:id = row[0]name = row[1]age = row[2]print("id=%d,name=%s,age=%d" % (id, name, age))# 更新数据
update_query = "UPDATE users SET age=26 WHERE name='Tom'"
cursor.execute(update_query)
conn.commit()# 删除数据
delete_query = "DELETE FROM users WHERE name='Tom'"
cursor.execute(delete_query)
conn.commit()# 关闭连接
conn.close()
在上述代码中,我们使用pymysql库连接到MySQL数据库,创建名为“users”的表格,并向表格中插入了一行数据。最后,我们使用SQL语句查询、更新和删除了表格中的数据。最后,我们使用commit()方法提交更改,然后关闭连接。
四、结论
当使用Python的pymysql库进行MySQL数据库操作时,以下是一些重要的注意事项和步骤:
- 安装pymysql库:使用pip命令安装pymysql库,以便在Python中使用该库。
- 连接到MySQL数据库:使用pymysql库的
connect()方法连接到MySQL数据库,并创建一个连接对象。 - 创建游标对象:使用连接对象的
cursor()方法创建一个游标对象,用于执行SQL语句。 - 创建表格:使用SQL语句创建一个表格,并定义字段、主键等约束。
- 插入数据:使用SQL语句向表格中插入数据。
- 查询数据:使用SQL语句查询表格中的数据,并使用游标对象的
fetchall()方法获取结果集。 - 更新数据:使用SQL语句更新表格中的数据,并使用连接对象的
commit()方法提交更改。 - 删除数据:使用SQL语句从表格中删除数据,并使用连接对象的
commit()方法提交更改。 - 关闭连接:使用连接对象的
close()方法关闭与MySQL数据库的连接。
这些是使用pymysql库进行MySQL数据库操作的关键步骤。
相关文章:
Python基础(二十九、pymsql)
文章目录 一、安装pymysql库二、代码实践1.连接MySQL数据库2.创建表格3.插入数据4.查询数据5.更新数据6.删除数据 三、完整代码示例四、结论 使用Python的pymysql库可以实现数据存储,这是一种连接MySQL数据库的方式。在本篇文章中,将详细介绍如何使用pym…...
华为机考入门python3--(0)测试题1-句子平均重量
分类:字符串 知识点: 获取输入 input().strip().split(" ") 拼接列表 " ".join(list) 输出指定位数的浮点数 print("%.2f" % value) len() 函数对于很多内置的数据类型都适用,它返回对象的元素个数或长度。…...
Linux--基础开发工具篇(1)(yum)
1.Linux 软件包管理器 yum 1.1yum是什么?什么是软件包? yum是什么? yum是一个软件下载安装管理的一个客户端,就如小米应用商店,华为应用商城。 Linux中软件包可能有依赖关系--yum会帮助我们解决依赖关系的问题。 什么是…...
循环测试之旅——深度解析Pytest插件 pytest-repeat
在软件开发中,测试的重要性不言而喻。而为了提高测试的鲁棒性和可靠性,Pytest插件 pytest-repeat 应运而生。这个插件可以帮助你轻松实现测试用例的循环运行,以更全面地评估代码的稳定性。本文将深入介绍 pytest-repeat 插件的基本用法和实际案例,助你更好地利用循环测试,…...
Java - OpenSSL与国密OpenSSL
文章目录 一、定义 OpenSSL:OpenSSL是一个开放源代码的SSL/TLS协议实现,也是一个功能丰富的加密库,提供了各种主要的加密算法、常用的密钥和证书封装管理功能以及SSL协议。它被广泛应用于Web服务器、电子邮件服务器、VPN等网络应用中&#x…...
谷粒商城【成神路】-【1】——项目搭建
目录 🥞1.整体架构图 🍕2.微服务划分图 🍔3.开发环境 🍔4.搭建git 🌭5.快速搭建服务 🍿6.数据库搭建 🧂7.获取脚手架 🥓8.代码生成器 🍳9.创建公共模块 …...
yml配置文件怎么引用pom.xml中的属性
目录 前言配置测试 前言 配置文件中的一些参数有时要用到pom文件中的属性,做到pom文件变配置文件中也跟着变,那如何才能做到呢,下面咱们来一起探讨学习。 配置 1.首先要在pom.xml中做如下配置,让maven渲染src/main/resources下配…...
SEW MOVIFIT变频一体机配置
1、操作安全 1 断开MOVIFIT-FC 的供电电源后,由于充电电容的存在,严禁立即触摸导电的设备部件和电源接头。 电源切断后,请等待至少1 分钟 2 只要MOVIFIT-FC 重新接通电源,接线盒的电路就必须闭合。也就是说, MOVIFIT-EBOX 以及混合电缆的插头必须插上并拧紧。 3 运行过…...
nginx反向代理负载均衡
一,kali作为负载服务器 打开kali nginx服务,访问页面如下 使用docker拉取nginx,并做出端口映射 ┌──(root?kali)-[/etc/nginx] └─# docker pull nginx ┌──(root㉿kali)-[/etc/nginx] └─# docker run -p 11111:80 --name Jdr -d ng…...
项目中日历管理学习使用
一些项目中会有日历或日期设置,最基本的会显示工作日,休息日,节假日等等,下面就是基于项目中的日历管理功能,要显示工作日,休息日,节假日 效果图 获取国家法定节假日工具类 public class Holi…...
【单片机】使用AD2S1210旋变芯片读取转子位置和速度
历时十天的反复调试,终于跑通了。只能说第一次做这种小工程确实缺乏经验,跟书本上学的还是有些出入。做下记录,方便后面来查看。 0. 实验要求 基于STM32单片机,使用AD2S1210旋变芯片读取电机转子位置和速度。 硬件设施&#x…...
EasyExcel实现导出图片到excel
pom依赖: <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.1.0</version> </dependency> 实体类: package com.aicut.monitor.vo;import com.aicut.monit…...
Cybellum—信息安全测试工具
产品概述 由于软件和数据在汽车上的使用越来越多,汽车越来越“智能化”,汽车行业面临着重大的信息安全挑战。2021年8月,ISO/SAE 21434正式发布,标准中对汽车的信息安全提出了规范化的要求,汽车信息安全不容忽视。 Cyb…...
六、Kotlin 类型进阶
1. 类的构造器 & init 代码块 1.1 主构造器 & 副构造器在使用时的注意事项 & 注解 JvmOverloads 推荐在类定义时为类提供一个主构造器; 在为类提供了主构造器的情况下,当再定义其他的副构造器时,要求副构造器必须调用到主构造器…...
Chrome 浏览器插件 runtime 字段解析
运行时 runtime 使用 chrome.runtime API 检索 Service Worker,返回有关 manifest.json 的详细信息监听和响应应用或扩展程序生命周期中的事件还可以使用此 API 将网址的相对路径转换为完整的一个 URL 一、权限 Runtime API 上的大多数方法都不需要任何权限 但是…...
七分钟交友匿名聊天室源码
多人在线聊天交友工具,无需注册即可畅所欲言!你也可以放心讲述自己的故事,说出自己的秘密,因为谁也不知道对方是谁。 运行说明: 安装依赖项:npm install 启动:node app.js 运行:直接…...
Aleo项目详细介绍-一个兼顾隐私和可编程性的隐私公链
Aleo上线在即,整理一篇项目的详细介绍,喜欢的收藏。有计划做aleo节点的可交流。 一、项目简介 Aleo 最初是在 2016 年构思的,旨在研究可编程零知识。公司由 Howard Wu、Michael Beller、Collin Chin 和 Raymond Chu 于 2019 年正式成立。 …...
qt学习:实战 http请求获取qq的吉凶
目录 利用的api是 聚合数据 的qq号码测吉凶 编程步骤 配置ui界面 添加头文件,定义网络管理者和http响应槽函数 在界面的构造函数里创建管理者对象,关联http响应槽函数 实现按钮点击事件 实现槽函数 效果 利用的api是 聚合数据 的qq号码测吉凶 先…...
【NodeJS JS】动态加载字体的各方式及注意事项;
首先加载字体这个需求基本只存在于非系统字体,系统已有字体不需要加载即可直接使用; 方案1:创建 style 标签,写入 font-face{font-family: xxx;src: url(xxx)} 等相关字体样式;将style标签添加到body里;方…...
每次请求sessionid变化【SpringBoot+Vue】
引言:花了一晚上的时间,终于把问题解决了,一开始后端做完后,用apifox所有接口测试都是可以的,但当前端跑起来后发现接收不到后端的数据。 当我写完前后端,主页面和获取当前页面信息接口后,配置了cros注解 CrossOrigin…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
leetcode_69.x的平方根
题目如下 : 看到题 ,我们最原始的想法就是暴力解决: for(long long i 0;i<INT_MAX;i){if(i*ix){return i;}else if((i*i>x)&&((i-1)*(i-1)<x)){return i-1;}}我们直接开始遍历,我们是整数的平方根,所以我们分两…...
Java多线程实现之Runnable接口深度解析
Java多线程实现之Runnable接口深度解析 一、Runnable接口概述1.1 接口定义1.2 与Thread类的关系1.3 使用Runnable接口的优势 二、Runnable接口的基本实现方式2.1 传统方式实现Runnable接口2.2 使用匿名内部类实现Runnable接口2.3 使用Lambda表达式实现Runnable接口 三、Runnabl…...
