当前位置: 首页 > news >正文

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数据库操作时,以下是一些重要的注意事项和步骤:

  1. 安装pymysql库:使用pip命令安装pymysql库,以便在Python中使用该库。
  2. 连接到MySQL数据库:使用pymysql库的connect()方法连接到MySQL数据库,并创建一个连接对象。
  3. 创建游标对象:使用连接对象的cursor()方法创建一个游标对象,用于执行SQL语句。
  4. 创建表格:使用SQL语句创建一个表格,并定义字段、主键等约束。
  5. 插入数据:使用SQL语句向表格中插入数据。
  6. 查询数据:使用SQL语句查询表格中的数据,并使用游标对象的fetchall()方法获取结果集。
  7. 更新数据:使用SQL语句更新表格中的数据,并使用连接对象的commit()方法提交更改。
  8. 删除数据:使用SQL语句从表格中删除数据,并使用连接对象的commit()方法提交更改。
  9. 关闭连接:使用连接对象的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依赖&#xff1a; <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.1.0</version> </dependency> 实体类&#xff1a; package com.aicut.monitor.vo;import com.aicut.monit…...

Cybellum—信息安全测试工具

产品概述 由于软件和数据在汽车上的使用越来越多&#xff0c;汽车越来越“智能化”&#xff0c;汽车行业面临着重大的信息安全挑战。2021年8月&#xff0c;ISO/SAE 21434正式发布&#xff0c;标准中对汽车的信息安全提出了规范化的要求&#xff0c;汽车信息安全不容忽视。 Cyb…...

六、Kotlin 类型进阶

1. 类的构造器 & init 代码块 1.1 主构造器 & 副构造器在使用时的注意事项 & 注解 JvmOverloads 推荐在类定义时为类提供一个主构造器&#xff1b; 在为类提供了主构造器的情况下&#xff0c;当再定义其他的副构造器时&#xff0c;要求副构造器必须调用到主构造器…...

Chrome 浏览器插件 runtime 字段解析

运行时 runtime 使用 chrome.runtime API 检索 Service Worker&#xff0c;返回有关 manifest.json 的详细信息监听和响应应用或扩展程序生命周期中的事件还可以使用此 API 将网址的相对路径转换为完整的一个 URL 一、权限 Runtime API 上的大多数方法都不需要任何权限 但是…...

七分钟交友匿名聊天室源码

多人在线聊天交友工具&#xff0c;无需注册即可畅所欲言&#xff01;你也可以放心讲述自己的故事&#xff0c;说出自己的秘密&#xff0c;因为谁也不知道对方是谁。 运行说明&#xff1a; 安装依赖项&#xff1a;npm install 启动&#xff1a;node app.js 运行&#xff1a;直接…...

Aleo项目详细介绍-一个兼顾隐私和可编程性的隐私公链

Aleo上线在即&#xff0c;整理一篇项目的详细介绍&#xff0c;喜欢的收藏。有计划做aleo节点的可交流。 一、项目简介 Aleo 最初是在 2016 年构思的&#xff0c;旨在研究可编程零知识。公司由 Howard Wu、Michael Beller、Collin Chin 和 Raymond Chu 于 2019 年正式成立。 …...

qt学习:实战 http请求获取qq的吉凶

目录 利用的api是 聚合数据 的qq号码测吉凶 编程步骤 配置ui界面 添加头文件&#xff0c;定义网络管理者和http响应槽函数 在界面的构造函数里创建管理者对象&#xff0c;关联http响应槽函数 实现按钮点击事件 实现槽函数 效果 利用的api是 聚合数据 的qq号码测吉凶 先…...

【NodeJS JS】动态加载字体的各方式及注意事项;

首先加载字体这个需求基本只存在于非系统字体&#xff0c;系统已有字体不需要加载即可直接使用&#xff1b; 方案1&#xff1a;创建 style 标签&#xff0c;写入 font-face{font-family: xxx;src: url(xxx)} 等相关字体样式&#xff1b;将style标签添加到body里&#xff1b;方…...

每次请求sessionid变化【SpringBoot+Vue】

引言&#xff1a;花了一晚上的时间&#xff0c;终于把问题解决了&#xff0c;一开始后端做完后,用apifox所有接口测试都是可以的,但当前端跑起来后发现接收不到后端的数据。 当我写完前后端&#xff0c;主页面和获取当前页面信息接口后&#xff0c;配置了cros注解 CrossOrigin…...

勤学苦练“prompts“,如沐春风“CodeArts Snap“

前言 CodeArts Snap 上手一段时间了&#xff0c;对编程很有帮助。但是&#xff0c;感觉代码编写的不尽人意。 我因此也感到困惑&#xff0c;想要一份完整的 CodeArts Snap 手册看看。 就在我感觉仿佛"独自彷徨在这条悠长、悠长又寂寥的雨巷"时&#xff0c;我听了大…...

springboot(ssm线上医院挂号系统 在线挂号预约系统Java系统

springboot(ssm线上医院挂号系统 在线挂号预约系统Java系统 开发语言&#xff1a;Java 框架&#xff1a;springboot&#xff08;可改ssm&#xff09; vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mysql 5.7&a…...

万界星空科技可视化数据大屏的作用

随着科技的不断发展和进步&#xff0c;当前各种数据化的设备也是如同雨后春笋般冒了出来&#xff0c;并且其可以说是给我们带来了极大的便利的。在这其中&#xff0c;数据大屏就是非常具有代表性的一个例子。 数据大屏的主要作用包括&#xff1a; 数据分析&#xff1a;数据大屏…...

5月22日比特币披萨日,今天你吃披萨了吗?

比特币披萨日 1. Laszlo Hanyecz2. 最贵披萨诞生记3. 梭哈买披萨4. 未完待续 2010年5月22日&#xff0c;美国佛罗里达州的程序员Laszlo Hanyecz&#xff08;拉兹洛哈涅克斯&#xff09;用10000个比特币购买了棒约翰&#xff08;Papa Johns&#xff09;比萨店一个价值25美元的奶…...

内网穿透、远程桌面、VPN的理解

最近在研究内网穿透的相关技术&#xff0c;然后回想起一些相关的技术&#xff0c;比如说要远程桌面公司的电脑&#xff0c;VPN连入内网等。然后想着在此处记录一下&#xff0c;各个的区别&#xff0c;这个纯粹是从技术层面的理解&#xff0c;此处不详细解释怎么去实现或者用什么…...

如何发布自己的npm包,详细流程

发布自己的npm包需要遵循以下具体流程&#xff1a; 创建npm账号&#xff1a;打开浏览器&#xff0c;访问npm官网&#xff0c;注册一个npm账号。 创建项目文件夹并进入&#xff1a;在本地创建一个项目文件夹&#xff0c;并使用终端进入该文件夹。 初始化包信息管理文件&#x…...

【书生·浦语大模型实战】“PDF阅读小助手”学习笔记

1 参考资料 《新版本Lmdeploy量化手册与评测》 2 项目资料 项目主页&#xff1a;【tcexeexe / pdf阅读小助手】 3 模型运行测试 在InternStudio平台中选择A100 (1/4)的配置&#xff0c;镜像选择Cuda11.7-conda&#xff0c;可以选择已有的开发机langchain&#xff1b; 3.1…...

用ChatGPT写申请文书写进常春藤联盟?

一年前&#xff0c;ChatGPT 的发布引发了教育工作者的恐慌。现在&#xff0c;各大学正值大学申请季&#xff0c;担心学生会利用人工智能工具伪造入学论文。但是&#xff0c;聊天机器人创作的论文足以骗过大学招生顾问吗&#xff1f; ChatGPT简介 ChatGPT&#xff0c;全称聊天生…...

uni-app导航栏自定义“返回按钮”多种方法设置原生返回

方法一、 导航栏返回按钮事件 onBackPress监听页面返回,返回 event = {from:backbutton、 navigateBack} ,backbutton 表示来源是左上角返回按钮或 android 返回键;navigateBack表示来源是 uni.navigateBack;详见app、H5、支付宝小程序onBackPress() { this.back1(); …...

【kubernets】kubelet证书单独更新

前言说明 接上一篇文章https://blog.csdn.net/margu_168/article/details/132584109关于kubernets中的证书管理。本篇文章将单独说明一下kubelet的证书更新。在1.19.16版本中&#xff0c;默认情况下使用 kubeadm alpha certs renew all 不能更新kubelet的证书&#xff0c;其他…...

西安市住房和城乡建设局网站/优化人员配置

1.创建函数 Python中函数的关键字def来定义。 1 def fibs(num): 2 f[0,1] 3 for i in range(1,num): 4 f.append(f[-1]f[-2]) 5 return f 6 7 print fibs(10) #输出[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55] 2.文档字符串 在函数内部的开头添加一个说明字符…...

网站建设销售前景/百度热搜榜怎么打开

转载请标明出处&#xff1a;http://blog.csdn.net/xx326664162/article/details/67640509 文章出自&#xff1a;薛瑄的博客 Dagger2 系列&#xff1a; Dagger2 入门详解&#xff08;一&#xff09; Scope 看这一篇就够了——Dagger2 &#xff08;二&#xff09; 1、Scope 到…...

公众号开发是前端还是后端/北京seo结算

实验内容&#xff1a; 测试典型运算符的使用。将程序补充完整。获取实数的整数部分&#xff0c;并求出实数与整数部分的差。输入摄氏温度&#xff0c;计算华氏温度并输出。输入圆柱体的高和半径&#xff0c;求其体积。输入一个梯形的上底&#xff64;下底&#xff64;高&#x…...

wordpress grace主题/河南seo技术教程

作者&#xff1a;flow.ci 链接&#xff1a;https://zhuanlan.zhihu.com/p/22638204 文章目录1 什么是DevOps2 Devops 的好处与价值3 Devops与持续集成4 DevOps 的技术栈与工具链5 DevOps 最佳实践总结1 什么是DevOps 当我们谈到 DevOps 时&#xff0c;可能讨论的是&#xff1a…...

万户网络官网/搜索引擎优化seo培训

主库&#xff1a;192.168.0.11 备选主库&#xff1a;192.168.0.12 从库&#xff1a;192.168.0.13 监控机&#xff1a;192.168.0.10 首先在三台机器上安装mysql&#xff08;监控机的mysql先不装&#xff0c;以后再说&#xff09;。 我使用percona server&#xff08;一个mysql的…...

一网网站制作平台/seo上首页

什么是探针 探针Probe是由 kubelet对容器执行的定期诊断。要执行诊断&#xff0c;kubelet 调用由容器实现的 Handler。有三种类型的处理程序&#xff1a; ExecAction&#xff1a;在容器内执行指定命令。如果命令退出时返回码为 0 则认为诊断成功。TCPSocketAction&#xff1a;对…...