【Python快速上手(二十二)】

目录

  • Python快速上手(二十二)
    • Python3 使用数据库-pymysql
      • 1. 创建数据库连接
      • 2. 创建数据表
      • 3. 插入数据
      • 4. 查询数据
      • 5. 使用 WHERE 条件语句
      • 6. 排序
      • 7. 删除记录
      • 8. 更新表数据
      • 9. 删除表
      • 10.异常处理
      • 总结

Python快速上手(二十二)

Python3 使用数据库-pymysql

在Python中,我们可以使用pymysql库来连接MySQL数据库并进行各种操作。pymysql是一个纯Python实现的MySQL客户端库,可以让我们在Python中轻松地与MySQL数据库进行交互。在本文中,我将详细讲解如何使用pymysql库进行数据库操作,包括创建数据库连接、创建数据表、插入数据、查询数据、使用WHERE条件语句、排序、删除记录、更新表数据以及删除表。

1. 创建数据库连接

首先,我们需要通过pymysql库来创建与MySQL数据库的连接。以下是连接数据库的示例代码:

import pymysql
# 创建数据库连接
conn = pymysql.connect(host='localhost',user='root',password='password',database='mydatabase'
)# 创建游标对象
cursor = conn.cursor()

在这段代码中,我们使用pymysql.connect()方法来创建数据库连接,并传入主机名、用户名、密码和数据库名称。然后,我们创建了一个游标对象cursor,用于执行SQL语句。

2. 创建数据表

接下来,让我们使用CREATE TABLE语句来创建数据表。以下是一个示例代码:

# 创建数据表
cursor.execute("CREATE TABLE mytable (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), age INT)")

在这个示例中,我们使用execute()方法执行CREATE TABLE语句来创建一个名为mytable的数据表,包含id、name和age三个字段。

3. 插入数据

现在,让我们向数据表中插入一些数据。以下是一个示例代码:

# 插入数据
sql = "INSERT INTO mytable (name, age) VALUES (%s, %s)"
val = ("Alice", 25)
cursor.execute(sql, val)# 提交更改
conn.commit()

在这个示例中,我们使用INSERT INTO语句向mytable表中插入一条数据,然后使用commit()方法提交更改。

4. 查询数据

我们可以使用SELECT语句来查询数据。以下是一个示例代码:

# 查询数据
cursor.execute("SELECT * FROM mytable")
result = cursor.fetchall()for row in result:print(row)

这段代码执行了一个简单的SELECT * FROM mytable查询,并打印了查询结果。

5. 使用 WHERE 条件语句

如果我们想要根据特定条件过滤数据,可以使用WHERE条件语句。以下是一个示例代码:

# 使用 WHERE 条件语句
sql = "SELECT * FROM mytable WHERE age > 20"
cursor.execute(sql)
result = cursor.fetchall()for row in result:print(row)

这段代码查询age大于20的数据,并打印结果。

6. 排序

我们也可以对查询结果进行排序。以下是一个示例代码:

# 排序
sql = "SELECT * FROM mytable ORDER BY age DESC"
cursor.execute(sql)
result = cursor.fetchall()for row in result:print(row)

这段代码按照age字段降序排列查询结果。

7. 删除记录

如果我们想要删除数据表中的记录,可以使用DELETE语句。以下是一个示例代码:

# 删除记录
sql = "DELETE FROM mytable WHERE name = 'Alice'"
cursor.execute(sql)# 提交更改
conn.commit()

这段代码删除了name为Alice的记录。

8. 更新表数据

如果我们需要更新数据表中的数据,可以使用UPDATE语句。以下是一个示例代码:

# 更新表数据
sql = "UPDATE mytable SET age = 30 WHERE name = 'Alice'"
cursor.execute(sql)# 提交更改
conn.commit()

这段代码将name为Alice的记录的age字段更新为30。

9. 删除表

最后,如果我们想要删除数据表,可以使用DROP TABLE语句。以下是一个示例代码:

# 删除表
cursor.execute("DROP TABLE mytable")

这段代码删除了名为mytable的数据表。

10.异常处理

在实际应用中,我们应该添加异常处理来处理可能出现的错误。下面是一个使用try…except语句来处理异常的示例代码:

import pymysqltry:conn = pymysql.connect(host='localhost', user='root', password='password', database='mydatabase')cursor = conn.cursor()cursor.execute("SELECT * FROM mytable")results = cursor.fetchall()for row in results:print(row)except pymysql.Error as e:print(f"Error: {e}")finally:cursor.close()conn.close()

在这个示例中,我们使用try…except语句来捕获可能出现的pymysql.Error异常。如果出现异常,我们打印错误信息。无论是否出现异常,最后都会关闭游标和连接。

总结

在本文中,我们详细讲解了如何使用pymysql库在Python中连接MySQL数据库,并进行一系列操作,包括创建数据库连接、创建数据表、插入数据、查询数据、使用WHERE条件语句、排序、删除记录、更新表数据以及删除表。通过这些操作,我们可以轻松地对MySQL数据库进行管理和操作。

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

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

相关文章

通过EXCEL控制PLC启停电机的一种方法

概述 本例将介绍用微软EXCEL电子表格控制西门子S7-1200 PLC实现电机启停的一种方法。 第1步: 添加PLC设备,选择西门子S7-1214C CPU,设置IP地址:192.168.18.18,子网掩码:255.255.255.0。 第2步&#xff1a…

vue3中通过自定义指令实现loading加载效果

前言 在现代Web开发中,提升用户体验一直是开发者们追求的目标之一。其中,一个常见的场景就是在用户与应用程序进行交互时,特别是当进行异步操作时(如网络请求),为用户提供即时的反馈,避免用户因…

Flet初体验:Python跨平台开发新选择

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 初识Flet 📒📝 安装与配置📝 构建第一个Flet应用📝 Flet打包:跨平台的魔法📝 Flet与FastAPI的结合🎈 总结⚓️ 相关链接 ⚓️📖 介绍 📖 “探索未知,拥抱创新,Flet让我在应用开发的世界中找到了新的航标。”…

02 | 该如何选择消息队列?

RabbitMQ RabbitMQ 一个比较有特色的功能是支持非常灵活的路由配置,和其他消息队列不同的是,它在生产者(Producer)和队列(Queue)之间增加了一个 Exchange 模块,你可以理解为交换机。 问题 Ra…

【循环程序设计-谭浩强适配】(适合专升本、考研)

无偿分享学习资料,需要的小伙伴评论区或私信dd。。。 无偿分享学习资料,需要的小伙伴评论区或私信dd。。。 无偿分享学习资料,需要的小伙伴评论区或私信dd。。。 完整资料如下:纯干货、纯干货、纯干货!!…

浅谈电动汽车充电站的电气安全

1 引言 1月14日日上午10点左右,青岛市市北区辽宁路63号公交停车场内,一辆报废公交车突然起火,由于大风天气,大火很快引燃了停在旁边的几辆报废车。消防人员快速赶到,迅速控制住火势。11时30分,停车场内的…

鸿蒙内核源码分析(ELF格式篇) | 应用程序入口并不是main

阅读之前的说明 先说明,本篇很长,也很枯燥,若不是绝对的技术偏执狂是看不下去的.将通过一段简单代码去跟踪编译成ELF格式后的内容.看看ELF究竟长了怎样的一副花花肠子,用readelf命令去窥视ELF的全貌,最后用objdump命令…

Image to Music V2 :只需上传一张照片,自动转换成与图片内容匹配的音频!

前言 我们之前肯定已经见过了很多文本生成图片、文本生成声音以及AI翻唱歌曲 等多种AI产品(模型)。 其实音乐和图片从某种意义上来说都是艺术创作的一种形式,它们可以相互配合,共同呈现出一种更加丰富、感性的表达方式。 将图片…

弘君资本:人形机器人概念走强,盛通股份涨停,怡合达、鼎智科技等拉升

人形机器人概念14日盘中拉升走高,到发稿,盛通股份涨停,怡合达、鼎智科技涨约6%,索辰科技、伟创电气、丰立智能等涨超4%。 音讯面上,5月13日,宇树发布人形智能体Unitree G1,身高127cm,体重35kg&…

[240514] OpenAI 发布 GPT-4o,人机交互的历史性时刻 | 苹果芯片进军服务器剑指AI​ | 谷歌大会以AI为主

目录 OpenAI 发布 GPT-4o,人机交互的历史时刻苹果芯片进军服务器,剑指生成式 AI2024年谷歌开发者大会将围绕 AI 展开 OpenAI 发布 GPT-4o,人机交互的历史时刻 OpenAI 发布了 GPT-4o,大家一直都想要现在终于等到的语音助手 : 勿需…

618值得入手的数码产品怎么选?2024 买过不后悔的数码好物分享

在数字时代的浪潮中,每一次的购物狂欢节都如同一场科技盛宴,让我们有机会接触到最前沿、最实用的数码产品,而“618”无疑是这场盛宴中最为引人瞩目的日子之一。面对琳琅满目的商品,如何选择那些真正值得入手的数码好物&#xff0c…

易宝OA-ExecuteQueryForDataSetBinary处sql注入

免责声明: 本文内容为学习笔记分享,仅供技术学习参考,请勿用作违法用途,任何个人和组织利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责,与作者无关!!&#…

Centos 安装jenkins 多分支流水线部署前后端项目

1、安装jenkins 1.1 安装jdk 要求:11及以上版本 yum install yum install java-11-openjdk 1.2 安装jenkins 导入镜像 sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo出现以下错误 执行以下命令 sudo yum …

前端使用原生JS怎么上传本地路径的文件到后端【附源码】

本文不使用<input type"file">等前端上传组件 一、为什么不能使用本地文件路径上传&#xff1f; 前端不能直接根据本地文件路径&#xff08;例如 C:\Users\Username\Documents\image.jpg&#xff09;上传文件到后端服务器&#xff0c;原因主要在于浏览器的安全…

使用java远程提交flink任务到yarn集群

使用java远程提交flink任务到yarn集群 背景 由于业务需要&#xff0c;使用命令行的方式提交flink任务比较麻烦&#xff0c;要么将后端任务部署到大数据集群&#xff0c;要么弄一个提交机&#xff0c;感觉都不是很离线。经过一些调研&#xff0c;发现可以实现远程的任务发布。…

LOTO示波器软件PC缓存(波形录制与回放)功能

当打开PC缓存功能后, 软件将采用先进先出的原则排队对示波器采集的每一帧数据, 进行帧缓存。 当发现屏幕中有感兴趣的波形掠过时, 鼠标点击软件的(暂停)按钮, 可以选择回看某一帧的波形。一帧数据的量 是 当前用户选择时基档位缓冲区总数据大小。不同时基档位缓冲区大小不同&am…

谈谈std::map的lower_bound

我们知道std::map内部是一个红黑树&#xff0c;放到std::map里的数据等有一个能比较大小的方法。它相当于java里面的TreeMap。 它里面有个lower_bound方法&#xff0c;返回一个迭代器&#xff0c;它指向map里第一个大于等于参数的元素。 方法的签名很简单&#xff0c;但是在不同…

富格林:有效预防黑幕阻挠被骗

富格林指出&#xff0c;在投资领域&#xff0c;现货黄金是一种备受推崇的贵金属投资品种。倘若能有效预防黑幕阻挠被骗的情况&#xff0c;事实上现货黄金是很多投资者的“理想型”。然而要想有效地预防黑幕阻挠被骗&#xff0c;就需要掌握足够多的投资技巧。为此&#xff0c;富…

Milvus 基本概念

Milvus 是一个开源的向量数据库&#xff0c;专门用于高效地存储、管理和检索大规模向量数据。它基于 Apache 许可证 2.0 版本发布&#xff0c;由 Zilliz 公司开源并维护。 Milvus 的设计理念是为了解决向量数据存储和检索的挑战。在许多应用中&#xff0c;向量数据是一种重要的…

强化学习——马尔可夫过程的理解

目录 一、马尔可夫过程1.随机过程2.马尔可夫性质3.马尔可夫过程4.马尔可夫过程示例 参考文献 一、马尔可夫过程 1.随机过程 随机过程是概率论的“动态”版本。普通概率论研究的是固定不变的随机现象&#xff0c;而随机过程则专注于那些随时间不断变化的情况&#xff0c;比如天…