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

【Python进阶篇 面向对象程序设计(7) Python操作数据库】

文章目录

    • 1、了解游标Cursor
    • (1) 执行 SQL 语句
    • (2)处理查询结果
    • 2、python操作数据库的通用流程
    • 3、使用SQLite
    • (1)创建数据库文件
    • (2)新增用户数据
    • (3)查看用户数据
    • (4)修改用户数据信息
    • (5)删除用户信息

1、了解游标Cursor

在 Python 中操作数据库时,游标(Cursor) 是一个核心对象,用于执行 SQL 语句并处理结果。它类似于文件操作中的文件指针,允许你逐条遍历查询结果。以下是游标的详细作用和用法:

(1) 执行 SQL 语句

a、所有 SQL 命令(SELECT、INSERT、UPDATE、DELETE)都通过游标执行。
b、支持参数化查询,防止 SQL 注入。

(2)处理查询结果

a、逐条或批量获取查询结果集。
b、跟踪结果集中的当前位置。
在这里插入图片描述

2、python操作数据库的通用流程

开始—>创建connection–>获取cursor–>执行SQL语句,处理数据结果–>关闭cursor–>关闭connection–>结束

3、使用SQLite

python中已经内置了SQLite3,所以直接用import语句导入SQLite3模块。

(1)创建数据库文件

# 创建SQLite数据库文件
import sqlite3# 连接到SQLite数据库
# 数据库文件是data.db,不存在会自动在当前目录创建
conn = sqlite3.connect('data.db')
# 创建一个Cursor
cursor = conn.cursor()
# 执行一条sql语句,创建user表
cursor.execute('create table user(id int(10) primary key ,name varchar(20))')# 关闭游标
cursor.close()
# 关闭connection
conn.close()

在这里插入图片描述
格式:

# 安全写法:检查表是否存在
cursor.execute('''
CREATE TABLE IF NOT EXISTS user (id INTEGER PRIMARY KEY,  -- SQLite 推荐使用 INTEGER 类型主键name TEXT  -- TEXT 类型更灵活,无需指定长度
)
''')

(2)新增用户数据

# 插入数据
# 方法一:使用 execute() + 占位符 ?
name = "Alice"
cursor.execute("insert into user (id, name) VALUES (?, ?)", (1, name))# 方法二:使用insert into 表名(字段名1,字段名2) values (字段值1, 字段值2)
cursor.execute('insert into user(id, name) values ("2", "Bob")')       

(3)查看用户数据

# 执行查询语句
cursor.execute('select * from user')# 获取查询结果集中的下一条记录
cursor.fetchone()
# 获取指定数量的记录
cursor.fetchmany(2)  # 获取两条记录
# 获取结果集的所有结果,返回列表
cursor.fetchall()

查询所有的记录:
在这里插入图片描述

(4)修改用户数据信息

import sqlite3
conn = sqlite3.connect('data.db')
cursor = conn.cursor()
cursor.execute('update user set name = ? where id = ?', ('MR', 1))
cursor.execute('select * from user')
result1 = cursor.fetchall()
print(result1)
# 关闭游标
cursor.close()
# 提交事务(重要!)
conn.commit()
# 关闭connection
conn.close()

输出结果为:
在这里插入图片描述

(5)删除用户信息

import sqlite3
conn = sqlite3.connect('data.db')
cursor = conn.cursor()
cursor.execute('delete from user where id = ?', (1,))
cursor.execute('select * from user')
result1 = cursor.fetchall()
print(result1)
# 关闭游标
cursor.close()
# 提交事务(重要!)
conn.commit()
# 关闭connection
conn.close()

输出结果:
在这里插入图片描述

http://www.dtcms.com/a/273318.html

相关文章:

  • 《测试开发:从技术角度提升测试效率与质量》
  • 《Revisiting Generative Replay for Class Incremental Object Detection》阅读笔记
  • 3D lidar目标跟踪
  • PyTorch自动微分:从基础到实战
  • Linux C 文件基本操作
  • 【Java并发编程】AQS(AbstractQueuedSynchronizer)抽象同步器核心原理
  • 飞算科技:以原创技术赋能电商企业数字化转型
  • AI翻唱——So-VITS-SVC
  • ubuntu virtual box全屏
  • 无人机三叶螺旋桨概述
  • kail相关
  • Linux下PCIe子系统(二)——PCIe子系统框架详解
  • 算法练习5-原地移除数组中所有的元素
  • 多元函数的链式法则:从单变量到高维的推广
  • 无人设备遥控器之无线电频率篇
  • Java HashMap已存在的值是否覆盖
  • 全链智造铸丰碑 全球布局启新程 —— 河北华创测控技术有限公司领航测控产业新高度
  • python学习打卡:DAY 29 复习日:类的装饰器
  • 快捷键——VsCode
  • msf复现“永恒之蓝”
  • 在 node 端执行打开一个新的 chrome 并且跳转到指定 url
  • 力扣热门算法题 136.只出现一次的数字,139.单词拆分,141.环形链表
  • Docker——容器文件操作
  • 实习第一个小需求样式问题总结
  • 八猴渲染器三维场景实时预览软件 Marmoset Toolbag 5.02b1 Win
  • 20250710-day11
  • 如何选择合适的ai降重工具?七个实用的ai查重网站
  • MyBatis插件机制揭秘:从拦截器开发到分页插件实战
  • 「莫尔物理新范式」普林斯顿马普所合作Nature论文:SnSe₂/ZrS₂扭曲双层实现M点能谷调控与拓扑新效应
  • 安装VMware详细步骤