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

【python】数据库操作

文章目录

  • 数据库编程接口
    • 连接对象
      • 获取连接对象 connect()
      • 连接对象的方法
    • 游标对象
  • SQLite——SQLite3
  • MySQL——pyMySQL

数据库编程接口

python 数据库API接口的各个部分:

  • 模块接口
  • 连接对象
  • 游标对象
  • 类型对象
  • 构造器
  • DB API的可选扩展
  • 可选的错误处理机制

连接对象

主要提供获取数据库游标对象和提交/回滚事务,关闭数据库的方法。

获取连接对象 connect()

connect() 函数会返回一个连接对象,通过该连接对象可以执行 SQL 查询、插入等操作。

pymysql.connect(host='', user='', password='', database='', port=0, charset='', ...)

其中各参数的含义如下:

  • host: MySQL 服务器的主机地址,默认为本地主机(localhost)。
  • user: 登录 MySQL 的用户名。
  • password: 登录 MySQL 的密码。
  • database: 要连接的默认数据库。
  • port: MySQL 服务器的端口号,默认为 3306。
  • charset: 用于通信的字符集,默认为 ‘utf8’。
sqlite3.connect(database[, timeout, detect_types, isolation_level, check_same_thread, factory, cached_statements, uri])

其中各参数的含义如下:

  • database: 要连接的 SQLite 数据库文件的路径。
  • timeout: 等待数据库操作的超时时间(以秒为单位)。
  • detect_types: 控制是否自动检测和转换数据库中的类型。
  • isolation_level: 指定事务的隔离级别。
  • check_same_thread: 控制在多线程环境中是否检查连接的线程安全性。
  • factory: 用于创建连接对象的工厂函数。
  • cached_statements: 控制是否缓存 SQL 语句。
  • uri: 指定连接的 URI(Uniform Resource Identifier)。

连接对象的方法

  • cursor():
    这个方法用于创建一个游标对象,通过游标对象可以执行 SQL 查询、插入、更新等操作。
cursor = conn.cursor()
  • commit():
    该方法用于提交当前事务。在执行插入、更新、删除等修改数据库数据的操作后,需要调用 commit() 方法提交事务,将修改保存到数据库中。
conn.commit()
  • rollback():
    如果在事务过程中发生错误或者需要取消之前的修改,可以调用 rollback() 方法回滚事务,恢复到之前的状态。
conn.rollback()
  • close():
    该方法用于关闭数据库连接。在完成所有数据库操作后,应该调用 close() 方法关闭连接,释放资源。
conn.close()

事务主要用于处理数据量大、复杂度高的数据。使用事务可以维护数据库的完整性。

游标对象

代表数据库中的游标,用来只是抓取数据操作的上下文,提供执行SQL语句、调用存储过程、获取查询结果等方法。

获取游标对象 conn.cursor()

游标对象的属性:

  • description:
    这是一个只读属性,返回一个描述结果集中每一列的元组的序列。每个元组包含列的名称、类型、显示大小、精度以及其他信息。
cursor.execute("SELECT * FROM users")
print(cursor.description)
  • rowcount:
    这是一个只读属性,返回最近一次执行的 SQL 命令所影响的行数。对于 SELECT 查询,rowcount 返回结果行的数量;对于插入、更新和删除操作,返回受影响的行数。
cursor

相关文章:

  • Java File类(文件操作类)
  • 【Linux】Centos7安装redis
  • 【教程】高效数据加密混淆方法及实现简介
  • 隐私计算实训营学习四:SecretFlow的安装和部署
  • 【Linux基础】dash和bash简介
  • 实现实时查询并带有查询结果列表的输入框
  • 数字化转型核心 数据治理神器Hadoop 生态介绍HDFS、Yarn以及HBase/Hive
  • jvm底层
  • 设计一个简单的Qt界面
  • nodejs安装使用React
  • SQLiteC/C++接口详细介绍sqlite3_stmt类(十三)
  • C#多态性
  • 2024/3/24 蓝桥杯
  • 酒店智能水电表管理解决方案:提升效率、节约成本与环保并重
  • go面向对象
  • 2019.2.20 c++ 知识梳理
  • Javascript 原型链
  • markdown编辑器简评
  • Python实现BT种子转化为磁力链接【实战】
  • Rancher-k8s加速安装文档
  • React的组件模式
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • underscore源码剖析之整体架构
  • Web Storage相关
  • webpack4 一点通
  • 实习面试笔记
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 硬币翻转问题,区间操作
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #stm32驱动外设模块总结w5500模块
  • (06)Hive——正则表达式
  • (7)STL算法之交换赋值
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (Matlab)使用竞争神经网络实现数据聚类
  • (WSI分类)WSI分类文献小综述 2024
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (新)网络工程师考点串讲与真题详解
  • (一)插入排序
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)Linq学习笔记
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • .NET Core 项目指定SDK版本
  • .net 流——流的类型体系简单介绍
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .NetCore 如何动态路由
  • .NET下ASPX编程的几个小问题
  • .ui文件相关
  • @reference注解_Dubbo配置参考手册之dubbo:reference
  • @拔赤:Web前端开发十日谈
  • [ vulhub漏洞复现篇 ] Jetty WEB-INF 文件读取复现CVE-2021-34429
  • [ 渗透工具篇 ] 一篇文章让你掌握神奇的shuize -- 信息收集自动化工具
  • [Bada开发]初步入口函数介绍