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数据库操作的关键步骤。

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

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

相关文章

Android开发修炼之路——(一)Android App开发基础-1

本文介绍基于Android系统的App开发常识,包括以下几个方面:App开发与其他软件开发有什么不一样,App工程是怎样的组织结构又是怎样配置的,App开发的前后端分离设计是如何运作实现的,App的活动页面是如何创建又是如何跳转…

C++:优先队列-Priority_queue

目录 1.关于优先队列 2.priority_queue的使用 1.构造方法 2.empty();判空 3.size(); 4.top(); 5.push(val); 6.pop(); 3.优先队列模拟实现 4.用优先队列解决数组中第K个大的元素 1.关于优先队列 在C中,可以使用STL(标准模板库)中的p…

【Uni-App】Vuex在vue3版本中的使用与持久化

Vuex是什么 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 简而言之就是用来存数据,可以有效减少使用组件传参出现的问题。 基本元素:…

如何解决服务器端口被占用的问题,减少带来的影响

在现代网络环境中,服务器扮演着至关重要的角色,其稳定性和安全性对企业的正常运营具有重要意义。然而,服务器端口被占用的问题却时常困扰着企业网络管理员。本文将深入探讨服务器端口被占用的影响,并提出相应的解决方案。 一、服务…

(2)(2.8) Holybro 900Mhz XBP9X无线电遥测设备

文章目录 前言 1 特点 2 规格 3 电源 4 引脚输出 5 下载 前言 Holybro XBP9X 无线电设备可使用 Digi 免费的 XCTU 软件或通过 Digi 简化的 AT 或 API 命令集轻松进行配置。无线电台采用 256 位 AES 加密技术,可在设备之间安全可靠地传输关键数据。无线电的射…

解决 Required Integer parameter ‘uid‘ is not present

1.原因分析 后端没接收到uid可能是前端没传递uid也可能是前端传递了uid,但是传递方式与后端接收方式不匹配,导致没接收到更大的可能是因为后端请求方式错了。比如: 2.解决方案 先确定前端传参方式与后端请求方式是匹配的后端get请求的话…

云计算项目六:升级网站运行平台|部署缓存服务|数据迁移|部署集群

升级网站运行平台|部署缓存服务|数据迁移|部署集群 案例1:升级网站运行平台步骤一:清除当前配置步骤二:部署LNMP步骤三:测试配置 案例2:部署内存存储服务步骤一:部署redi…

【大数据面试题】HBase面试题附答案

目录 1.介绍下HBase 2.HBase优缺点 3.介绍下的HBase的架构 4.HBase的读写缓存 5.在删除HBase中的一个数据的时候,它是立马就把数据删除掉了吗? 6.HBase中的二级索引 7.HBase的RegionServer宕机以后怎么恢复的? 8.HBase的一个region由哪些东西组成? 9.…

ChatGPT模型大更新!全新大、小文本嵌入模型,API价格大降价!

1月26日凌晨,OpenAI在官网对ChatGPT Turbo模型(修复懒惰行为),免费的审核模型,并对新的GPT-3.5 Turbo模型API进行了大幅度降价。模型进行了大更新,发布了两款全新大、小文本嵌入模型,全新的GPT-…

申万宏源基于 StarRocks 构建实时数仓

作者 :申万宏源证券 实时数仓项目组 小编导读: 申万宏源证券有限公司是由新中国第一家股份制证券公司——申银万国证券股份有限公司与国内资本市场第一家上市证券公司——宏源证券股份有限公司,于 2015 年 1 月 16 日合并组建而成&#xff0c…

设计模式_装饰器模式_Decorator

生活案例 咖啡厅 咖啡定制案例 在咖啡厅中,有多种不同类型的咖啡,客户在预定了咖啡之后,还可以选择添加不同的调料来调整咖啡的口味,当客户点了咖啡添加了不同的调料,咖啡的价格需要做出相应的改变。 要求&#xff…

机器学习_常见算法比较模型效果(LR、KNN、SVM、NB、DT、RF、XGB、LGB、CAT)

文章目录 KNNSVM朴素贝叶斯决策树随机森林 KNN “近朱者赤,近墨者黑”可以说是 KNN 的工作原理。 整个计算过程分为三步: 计算待分类物体与其他物体之间的距离;统计距离最近的 K 个邻居;对于 K 个最近的邻居,它们属于…

Qt编写linux系统onvif工具(支持预览/云台/预置位/录像等)

一、功能特点 广播搜索设备,支持IPC和NVR,依次返回。可选择不同的网卡IP进行对应网段设备的搜索。依次获取Onvif地址、Media地址、Profile文件、Rtsp地址。可对指定的Profile获取视频流Rtsp地址,比如主码流地址、子码流地址。可对每个设备设…

单元测试——题目十二

目录 题目要求: 定义类 测试类 题目要求: 根据下列流程图编写程序实现相应处理,执行j=10*x-y返回文字“j1=:”和计算值,执行j=(x-y)*(10⁵%7)返回文字“j2=:”和计算值,执行j=y*log(x+10)返回文字“j3=:”和计算值。 编写程序代码,使用JUnit框架编写测试类对编写的…

idea中使用带provide修饰的依赖,导致ClassNotFound

1、provide修饰的依赖作用: 编译时起作用,而运行及打包时不起作用。程序打包到Linux上运行时,若Linux上也有这些依赖,为了在Linux上运行时避免依赖冲突,可以使用provide修饰,使依赖不打包进入jar中 2、可能…

Map集合(二)

HashMap HashMap集合的底层原理 HashMap跟HashSet的底层原理是一模一样的,都是基于哈希表实现的。 实际上:原来学的Set集合的底层就是基于Map实现的,只是Set集合中的元素只要键数据,不要值数据而已。 哈希表 哈希表是一种增删…

Python Flask与APScheduler构建简易任务监控

1. Flask Web Flask诞生于2010年,是用Python语言,基于Werkzeug工具箱编写的轻量级、灵活的Web开发框架,非常适合初学者或小型到中型的 Web 项目。 Flask本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展…

代码随想录算法训练营31期day4,力扣24+19+02.07+142

24,动指针 class Solution { public:ListNode* swapPairs(ListNode* head) {//建立虚拟头结点auto dummynew ListNode(-1);dummy->nexthead;for(auto pdummy;p->next&&p->next->next;){auto ap->next;auto ba->next;p->nextb;a->n…

tee漏洞学习-翻译-1:从任何上下文中获取 TrustZone 内核中的任意代码执行

原文:http://bits-please.blogspot.com/2015/03/getting-arbitrary-code-execution-in.html 目标是什么? 这将是一系列博客文章,详细介绍我发现的一系列漏洞,这些漏洞将使我们能够将任何用户的权限提升到所有用户的最高权限 - 在…

POLYGON Military - Low Poly 3D Art by Synty

这是一个非常全面的资产包,可满足您的所有军事需求。一个绝对庞大的低多边形资产包,用于构建您的梦想游戏! 模块化部分易于以各种组合方式拼接在一起。 此包中包含 1500 多个详细的预制件。 主要特征 - 完全模块化武器系统 - 超级可定制的角色 -沙漠主题建筑和环境 - 建筑物…