【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

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

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

相关文章

腾讯云服务器租用价格表,2核2G3M带宽61元一年

腾讯云服务器租用价格表,2核2G3M带宽61元一年,配置:轻量应用服务器、2核2G3M、3M带宽、200GB月流量、上海/广州/北京、40GB SSD云硬盘、61元一年。 腾讯云服务器有两个活动,一个是官方的主会场入口,还有一个是买赠专区…

【快速解决】解决谷歌自动更新的问题,禁止谷歌自动更新,如何防止chrome自动升级 chrome浏览器禁止自动升级设置方法

目录 问题描述 解决方法 1、搜索栏搜索控制面板 2、搜索:服务 ​编辑 3、点击Windows工具 4、点击服务 ​5、禁止谷歌更新 问题描述 由于我现在需要装一个谷歌的驱动系统,但是目前的谷歌驱动系统的版本都太旧了,谷歌自身的版本又太新了…

docker常用命令(不断更新)

1、docker将镜像打成文件 docker save -o image.tar your_image_name:tag; #比如 docker save - o nginx.tar nginx:latest2、将文件加载成docker镜像 docker load -i image.tar #比如 docker load -i nginx.tar3、docker进入到容器里面 docker exec -it 容器id bash4、dock…

上海:6月1日起取消企业复工复产白名单制

财经新闻5月29日消息:上海市人民政府关于印发《上海市加快经济恢复振兴行动计划》的通知。 《方案》包括千方百计缓解各类市场主体困难,全面有序推进复工复产和市场复工复产,多措并举稳外资稳外贸,大力促进消费加速复苏&#xff0…

uboot与分区表

分区表的作用 存储信息:分区表是存储设备(如硬盘、SSD、MMC等)上的一个特殊部分,它包含了关于设备上所有分区的信息,如起始和结束位置、分区类型、大小等。组织数据:通过分区表,存储设备被划分…

argocd cli工具使用

一、前言 ragocd除了使用web界面操作之外,也可以通过argocd cli工具进行操作,关于集群创建、gitlab仓库创建、app创建都是可以通过yaml 文件去操作,使用web界面创建的操作也需要使用argocd cli工具进行备份 二、使用 在argocd部署的章节已经…

Windows安装Odoo结合内网穿透实现公网访问本地企业管理系统

文章目录 前言1. 下载安装Odoo:2. 实现公网访问Odoo本地系统:3. 固定域名访问Odoo本地系统 前言 Odoo是全球流行的开源企业管理套件,是一个一站式全功能ERP及电商平台。 开源性质:Odoo是一个开源的ERP软件,这意味着企…

数字后端概念——FinFET/Nanosheet FET

FinFET/Nanosheet FET的概念 3nm后,芯片该何去何从? 3nm后,芯片该何去何从? 解决以上问题的有效办法是将电源/接地线埋入基板,即BPR(Buried Power Rails)。利用BPR方法,可将Track数…

盏燕生物科技将出席2024第七届燕窝天然滋补品博览会

参展企业介绍 深圳市盏燕生物科技有限公司,办公室地址位于中国第一个经济特区,鹏城深圳,深圳市龙岗区平湖街道禾花社区富安大道18号亚钢工贸大楼1栋1017A,我公司主要提供一般经营项目是:初级农产品、海产品、化妆品、…

R使用netmeta程序包实现生存数据的频率学网状meta分析

之前的推文系统的介绍了使用netmeta包实现对二分类变量、连续型变量和罕见事件的网状meta分析。今天的文章介绍如何使用netmeta程序包实现生存数据的频率学网状meta分析,用来评估6种免疫疗法( Camrelizumab、Tislelzumab、Toripalimab、Sintilimab、Pemb…

美易官方:盘前道指期货涨0.5%,游戏驿站跌逾15%

在股市开盘前的交易时段,道指期货上涨了0.5%,而游戏驿站(GameStop)的股价却出现了大幅下跌,跌幅超过15%。这一市场动态引发了投资者的广泛关注,也反映了当前股市的复杂性和不确定性。 美股股指期货周三盘前…

影视文件数字指纹签名检验系统的用户操作安全大多数

国内网盘服务大规模出现版权问题。 一些个人或团体会通过云存储客户端将主要由电影、电视、音乐组成的文件上传到网盘,然后在圈子里分享。 可供下载。 大量受版权保护的视频音乐就是通过这种特殊的盗版方式传播的,而这种传播方式暂时不受监管。 一些云存…

设计一个简单的Qt界面

import sys from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLineEdit, QPushButton, QMessageBoxdef show_confirmation_dialog(text):msg QMessageBox()msg.setWindowTitle("确认框")msg.setText(text)msg.exec_()def main():# 创建应用程序对…

STM32/GD32——自己制定协议和解析协议数据

温馨提醒: 由于我最害怕的就是接触各种新协议,尤其是对各种协议和解析协议数据简直就是职业生涯的噩梦,但工作中不免和不同的协议打交道。本着要啃就啃最难的,大不了放弃的心态。所以我学习了如何自定义制定自己的协议&#xff0c…

小程序的编译上传

小程序如果是hbuilderx开发的,当开发完成后运行到小程序模拟器里面的微信开发者工具,或者(发行里面的小程序微信(仅适用于uniapp)),然后打开微信开发者工具的 项目→里面的导入项目 &#x…

Unity中使用AssetPostprocessor对模型动画处理

在游戏开发的过程中,会遇到模型动作同事频繁的修改模型动画,比如可能某个动作不对了等等。而程序使用的动画clip是从模型中拷贝一份出来的,而在AssetPostprocessor中就可以做一些处理这样模型同事频繁修改动画的话,只需要重新导入…

JVM虚拟机-实战篇

专属小彩蛋:前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站(前言 - 床长人工智能教程) 目录 一、内存溢出和内存泄漏 什么是内存泄漏? 二、解决内存泄漏 解决内存泄漏的思路 top命令 发现问题 VisualVM 发现问…

Java File类(文件操作类)

背景: 在Java编程语言中,操作文件和目录是一项常见的任务。而File类,则是java.io包中的重要类,它是唯一代表磁盘文件本身的对象。通过File类提供的方法,我们可以轻松地创建、删除、重命名文件和目录等操作。 构造方法&…

记一个越权+逻辑漏洞产生的高危组合漏洞

懒得打码不放图 1、有两个测试账号,a(攻击账号), 测试账号b(被修改信息的账号) 2、图片拉到最下有修改信息按钮,点击修改并抓包,得到两份数据包 ​经过观察得知,两个账…

ffmpeg重点之时间戳,PTS、DTS、time_base

PTS和DTS和时间基time_base 首先我们知道PTS是一帧音频或视频显示的时间,DTS是解码时间戳 既然是时间,PST和DTS的单位是什么呢?秒还是毫秒,抑或是纳秒? 先说结论—都不是 先引入FFmpeg中时间基的概念,也就是time_bas…