如何使用 Python 操作数据库

😀前言
在现代编程中,Python 的数据库操作已广泛应用于各类项目中,例如数据分析、Web 开发和数据持久化存储等。本文将介绍 Python 操作数据库的核心步骤,涉及数据库连接对象、游标对象的使用,以及常见的 SQL 数据操作。希望本文能帮助大家更好地理解并掌握数据库操作的基础知识。

🏠个人主页:晨犀主页
🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力😉😉

💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰
如果文章有什么需要改进的地方还请大佬不吝赐教 先在此感谢啦😊

文章目录

  • 使用 Python 操作数据库
    • 1. 数据库连接对象
      • (1)获取连接对象
      • (2)连接对象的方法
    • 2. 游标对象
      • 游标对象的方法和常用属性
    • 3. 操作 SQLite 数据库
      • 1. 新增用户数据
      • 2. 查询用户数据
      • 3. 修改用户数据
      • 4. 删除用户数据
    • 5. 操作 MySQL 数据表
    • 😄总结

使用 Python 操作数据库

1. 数据库连接对象

(1)获取连接对象

在 Python 中,通过 connect() 函数可以获取数据库连接对象。该函数有多个参数,不同的数据库会有所区别。常见的数据库类型如 Oracle、MySQL、SQLite 等,都需要使用特定的模块,如 cx_Oraclepymysqlsqlite3 等。

连接数据库前,请先确保已经安装相应的数据库驱动。以下是 connect() 函数常用参数及说明:

参数说明
host数据库主机地址(如本地为 ‘localhost’)
user数据库用户名
password数据库密码
database要连接的数据库名称
port数据库端口(默认为 3306)
charset字符集(如 utf8)

例如,使用 pymysql 连接 MySQL 数据库可以按如下方式:

import pymysql# 创建连接
conn = pymysql.connect(host='localhost',user='root',password='password',database='test_db',charset='utf8'
)

(2)连接对象的方法

通过 connect() 返回的连接对象,代表当前与数据库的会话。连接对象提供了多种方法,用于执行事务、提交或回滚操作等。以下是常见方法:

image-20241026235120985

2. 游标对象

游标对象(Cursor Object)用于执行 SQL 语句并获取查询结果。通过调用连接对象的 cursor() 方法,可以创建游标对象,从而操作数据库。

游标对象的方法和常用属性

image-20241026235152043

属性说明
description数据库列的类型和值的描述
rowcount返回结果集的行数
# 创建游标对象
cursor = conn.cursor()# 执行查询
cursor.execute("SELECT * FROM users")# 获取所有查询结果
results = cursor.fetchall()

3. 操作 SQLite 数据库

以下以 SQLite 为例,演示常见的数据操作(增、删、改、查)的 SQL 语句和 Python 代码。

1. 新增用户数据

向数据表中新增数据,使用 INSERT INTO 语句:

cursor.execute("INSERT INTO users (name, age) VALUES ('Alice', 30)")
conn.commit()  # 提交事务

2. 查询用户数据

查找 users 表中的数据,使用 SELECT 语句:

cursor.execute("SELECT name, age FROM users WHERE age > 20")
rows = cursor.fetchall()
for row in rows:print(row)

3. 修改用户数据

修改 users 表中的数据,使用 UPDATE 语句:

cursor.execute("UPDATE users SET age = 31 WHERE name = 'Alice'")
conn.commit()

4. 删除用户数据

删除指定条件的数据,使用 DELETE FROM 语句:

cursor.execute("DELETE FROM users WHERE name = 'Alice'")
conn.commit()

5. 操作 MySQL 数据表

在 MySQL 数据库中,可以使用 execute() 方法插入单条记录,或使用 executemany() 方法批量插入多条记录。例如:

# 批量插入数据
data = [('Bob', 25), ('Carol', 29)]
cursor.executemany("INSERT INTO users (name, age) VALUES (%s, %s)", data)
conn.commit()

😄总结

本文介绍了 Python 中数据库操作的基础知识,包括连接数据库、使用游标对象查询数据、执行增删改查操作。数据库操作是开发中常见的需求,掌握这些方法可以为项目开发奠定坚实的基础。希望通过本文的讲解,大家能够更熟练地使用 Python 进行数据库操作。

提示:操作完成后,记得关闭游标和连接,以释放资源。

# 关闭游标和连接
cursor.close()
conn.close()

文章到这里就结束了,如果有什么疑问的地方请指出,诸大佬们一起来评论区一起讨论😁
希望能和诸大佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞

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

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

相关文章

夸克浏览器的用户反馈如何提交

夸克浏览器凭借其简洁的界面、强大的功能以及不断优化的用户体验,赢得了众多用户的青睐。然而,任何产品都不可能完美无缺,用户的反馈对于产品的持续改进至关重要。本文将详细介绍如何在夸克浏览器中高效提交用户反馈,帮助开发者更…

极狐GitLab 签约新大陆自动识别,以质量和安全让智能识别更精准

关于新大陆自动识别 福建新大陆自动识别技术有限公司(以下简称为新大陆自动识别)是新大陆科技集团的成员企业,是新大陆数字技术股份有限公司(股票代码: 000997)的全资子公司。成立自1999年,当前已成为一家全球化的感知识别和机器…

【移动应用开发】使用多媒体--通知/播放音频/视频

目录 一、具体步骤 二、运行截图 1. 开启通知权限 2. 播放音乐 3. 播放视频 三、源代码 1. activity_main.xml 2. activity_video_player.xml 3. activity_notification.xml 4. 一些配置 5. MainActivity 6. VideoPlayerActivity 7. NotificationActivity 8. And…

VulnHub-Brainpan1 靶机笔记

Brainpan1 靶机笔记 概述 靶机地址:https://vulnhub.com/entry/brainpan-1,51/#download 这台靶机是很好的缓冲区溢出漏洞利用的练习靶机,涉及到逆向和缓冲区溢出漏洞挖掘的一些知识。 一、nmap 扫描 1)端口扫描 nmap -sT --min-rate 1…

echarts实现 水库高程模拟图表

需求背景解决思路解决效果index.vue 需求背景 需要做一个水库高程模拟的图表&#xff0c;x轴是水平距离&#xff0c;y轴是高程&#xff0c;需要模拟改水库的形状 echarts 图表集链接 解决思路 配合ui切图&#xff0c;模拟水库形状 解决效果 index.vue <!--/*** author:…

安全见闻-web安全

web安全 一、web程序简介 1. Web程序的基本构成 2. 工作流程 3. 安全性 二、JavaScript代码库 1. 代码库的概念和用途 2. 常见的代码库 三、框架 1. 常见的前端框架 2. 常见的后端框架 四、数据库 1. 数据库的分类 2. 数据库的潜在漏洞 3. 学习数据库的重要性 五、…

Vue.js(2) 基础:指令与功能概览

正确的开始&#xff0c;微笑的进步&#xff0c;然后持续 文章目录 class和Style绑定v-bind绑定classv-bind绑定style 指令v-model指令v-clock指令v-once指令自定义指令 功能过滤器操作dom计算属性 class和Style绑定 v-bind绑定class 绑定数据对象<div id"app"&g…

【Linux探索学习】第九弹——Linux工具篇(四):项目自动化构建工具—make/Makefile

Linux笔记&#xff1a;https://blog.csdn.net/2301_80220607/category_12805278.html?spm1001.2014.3001.5482 前言&#xff1a; 在前面我们学习了如何用编译并执行&#xff0c;在现代软件开发中&#xff0c;构建一个项目涉及多个步骤&#xff0c;从编译源代码到链接库文件&a…

基于SpringBoot+Vue+MySQL的房屋租赁系统

系统展示 系统背景 随着城市化进程的加速和人口流动性的增加&#xff0c;房屋租赁市场逐渐成为城市生活的重要组成部分。然而&#xff0c;传统的房屋租赁方式存在诸多问题&#xff0c;如信息不对称、交易成本高、租赁关系不稳定等&#xff0c;这些问题严重影响了租赁市场的健康…

View三大机制(一):触摸机制(事件分发)

传递过程遵循如下顺序&#xff1a;Activity->Window->PhoneWindow->DecorView->RootView->ViewGroup->View View事件方法执行顺序:onTouchListener > onTouchEvent > onLongClickListener > onClickListener 主要由三个重要的方法共同完成的,只有Vi…

【面试】rabbitmq的主要组件有哪些?

目录 1. Producer&#xff08;生产者&#xff09;2. Broker&#xff08;消息代理&#xff09;3. Exchange&#xff08;交换机&#xff09;4. Queue&#xff08;队列&#xff09;5. Consumer&#xff08;消费者&#xff09;6. Binding&#xff08;绑定&#xff09;7. Channel&am…

namespace 隔离实战

Docker简介 什么是虚拟化、容器化为什么要虚拟化、容器化?虚拟化实现 什么是虚拟化、容器化 物理机: 实际的服务器或者计算机。相对于虚拟机而言的对实体计算机的称呼。物理机提供给虚拟机以硬件环境&#xff0c;有时也称为“寄主”或“宿主”。 虚拟化: 是指通过虚拟化技术将…

Java AQS CountDownLatch 源码

前言 相关系列 《Java & AQS & 目录》《Java & AQS & CountDownLatch & 源码》《Java & AQS & CountDownLatch & 总结》《Java & AQS & CountDownLatch & 问题》 涉及内容 《Java & AQS & 总结》《Java & AQS &am…

Canvas 画布

文章目录 1. 初识1.1 认识画布1.2 兼容性1.3 上下文属性 2. 绘制2.1 绘制基本图形2.1.1 绘制矩形2.1.2 绘制圆形2.1.3 绘制直线2.1.4 绘制圆弧2.1.5 绘制贝塞尔二次曲线2.1.6 绘制贝塞尔三次曲线2.1.7 封装路径 2.2 颜色控制2.2.1 颜色设置2.2.2 线性渐变2.2.3 径向渐变2.2.4 圆…

使用 web (vue 和DRF))实现 模拟一个IDE 功能思路

采用文件系统和数据库相结合的方案&#xff0c;不仅可以实现基本的文件管理&#xff0c;还可以为未来的扩展提供灵活性。结合我们讨论的内容&#xff0c;以下是更完善的策略&#xff1a; 方案概述&#xff1a;文件系统与数据库结合 文件系统负责实际的文件存储和执行操作&…

javascript中的展开运算符是什么

展开运算符&#xff08;Spread Operator&#xff09;是 JavaScript 中一个非常有用的语法特性&#xff0c;它通过三个点 ...来展开可迭代对象&#xff08;如数组或对象&#xff09;&#xff0c;使其可以更方便地进行操作。 1. 数组中的使用 1.1 合并数组 展开运算符可以轻松地…

XML解析小坑记录[正则表达式解析]

一、问题描述 在做 SSO 单点登录时( 认证中为CAS服务对接 )。在完成对用户ticket票根校验后&#xff0c;返回了用户信息有关 XML 数据片段&#xff0c;例如下&#xff1a; <cas:serviceResponse xmlns:cas"http://www.xxx.xx/xx/cas"><cas:authentication…

ffmpeg视频滤镜:网格-drawgrid

滤镜介绍 drawgrid 官网链接 》 FFmpeg Filters Documentation drawgrid会在视频上画一个网格。 滤镜使用 参数 x <string> ..FV.....T. set horizontal offset (default "0")y <string> ..FV.....T. set…

(50)MATLAB最优延迟迫零均衡器仿真测试与评估

文章目录 前言一、最优延迟迫零均衡器评估模型二、最优延迟迫零均衡器仿真代码1.代码如下&#xff1a;2.迫零均衡器函数zf_equalizer()的MATLAB源码 三、仿真结果画图1.不同权系数长度和延迟的迫零均衡器性能2. 不同权系数长度的迫零均衡器的最佳延迟 前言 对于预设均衡器延时…

用AI绘画工具提升创作效率,这款神器你一定不能错过!

在如今的创作领域&#xff0c;无论是插画师、设计师&#xff0c;还是内容创作者&#xff0c;都在寻找能够提升效率的工具&#xff0c;而AI绘画工具的诞生无疑是一场创意革命。通过AI技术的支持&#xff0c;我们不再需要耗费大量时间在绘制基础草图或反复调整细节上&#xff0c;…