24 Python的sqlite3模块
概述
在上一节,我们介绍了Python的shutil模块,包括:shutil模块中一些常用的函数。在这一节,我们将介绍Python的sqlite3模块。sqlite3模块是Python中的内置模块,用于与SQLite数据库交互。SQLite是一个轻量级的磁盘数据库,不需要单独的服务器进程。你可以在多个线程和进程之间共享SQLite数据库,并且它支持事务处理、零配置以及多种数据类型。
下面,我们将逐一介绍sqlite3模块中一些常用的函数和类。
connect()函数
connect()函数用于建立与SQLite数据库的连接。该函数接受一个数据库文件名作为参数,并返回一个连接对象,该对象可用于执行SQL命令和操作数据库。如果指定的数据库文件不存在,connect()函数将创建一个新的数据库文件。
import sqlite3# 连接到数据库文件
conn = sqlite3.connect('test.db')
close()函数
close()函数用于关闭数据库连接。一旦完成了与数据库的交互,使用close()函数是一个推荐的做法,因为它可以释放资源并确保连接被正确关闭。
import sqlite3# 连接到数据库文件
conn = sqlite3.connect('test.db')# 关闭数据库连接
conn.close()
cursor()函数
cursor()函数用于创建一个游标对象,以执行SQL命令和处理结果。
import sqlite3# 连接到数据库文件
conn = sqlite3.connect('test.db')# 创建游标对象
cursor = conn.cursor()# 关闭游标
cursor.close()# 关闭数据库连接
conn.close()
execute()函数
execute()函数是游标对象(Cursor)的一个方法,用于执行SQL命令。使用execute()函数,可以执行各种SQL命令,比如:SELECT、INSERT、UPDATE、DELETE等。注意:execute()函数只是执行SQL命令,并不会自动提交更改。
import sqlite3# 连接到数据库文件
conn = sqlite3.connect('test.db')# 创建游标对象
cursor = conn.cursor()# 执行SQL命令
cursor.execute('CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY, name TEXT)')# 关闭游标
cursor.close()# 关闭数据库连接
conn.close()
executemany()函数
executemany()函数是游标对象(Cursor)的一个方法,用于执行相同的SQL命令多次,每次使用来自序列的不同参数。使用executemany()函数,可以在一次数据库交互中执行多次插入、更新或删除操作,这通常比重复执行execute()函数更有效。
import sqlite3# 连接到数据库文件
conn = sqlite3.connect('test.db')# 创建游标对象
cursor = conn.cursor()# 执行SQL命令多次
users = [('Jack',), ('Tom',), ('Mike',)]
cursor.executemany("INSERT INTO users (name) VALUES (?)", users)# 关闭游标
cursor.close()# 关闭数据库连接
conn.close()
commit()函数
commit()函数是数据库连接对象(Connection)的一个方法,用于提交事务。在SQLite中,事务是一组数据库操作,要么全部成功执行,要么全部回滚(撤销)。当我们在SQLite中执行多个操作时,可以使用事务来确保数据的一致性。
使用commit()函数,可以提交之前执行的所有数据库操作。一旦调用了commit()函数,所有未提交的更改都会被保存到数据库中。如果在调用commit()函数之前发生了错误,可以选择回滚事务以撤销所有更改。
import sqlite3# 连接到数据库文件
conn = sqlite3.connect('test.db')# 创建游标对象
cursor = conn.cursor()# 执行一些数据库操作
cursor.execute('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)')
cursor.execute("INSERT INTO users (name) VALUES ('Jack')")
cursor.execute("INSERT INTO users (name) VALUES ('Tom')")# 提交更改
conn.commit()# 关闭游标
cursor.close()# 关闭数据库连接
conn.close()
fetchall()函数
fetchall()函数是游标对象(Cursor)的一个方法,用于获取查询结果集中的所有行。使用该函数,可以一次性获取查询结果集中的所有行,并以列表的形式返回。每行数据表示为一个元组或列表,其中包含了该行的各个列的值。
注意:如果查询结果集非常大,使用fetchall()函数可能会消耗较多的内存。在这种情况下,可以考虑使用 fetchone()或fetchmany()函数来分批获取查询结果。
import sqlite3# 连接到数据库文件
conn = sqlite3.connect('test.db')# 创建游标对象
cursor = conn.cursor()# 执行查询
cursor.execute('SELECT * FROM users')# 获取查询结果集中的所有行
rows = cursor.fetchall()# 输出查询结果
for row in rows:print(row)# 关闭游标
cursor.close()# 关闭数据库连接
conn.close()
fetchone()函数
fetchone()函数是游标对象(Cursor)的一个方法,用于获取查询结果集中的下一行。使用该函数,可以逐行获取查询结果集中的数据。每次调用fetchone()函数,它会返回结果集中的下一行数据。当没有更多的行可用时,它将返回None。
import sqlite3# 连接到数据库文件
conn = sqlite3.connect('test.db')# 创建游标对象
cursor = conn.cursor()# 执行查询
cursor.execute('SELECT * FROM users')# 获取查询结果集中的下一行数据
row = cursor.fetchone()# 输出查询结果
while row:print(row)row = cursor.fetchone()# 关闭游标
cursor.close()# 关闭数据库连接
conn.close()
fetchmany()函数
fetchmany(size)函数是游标对象(Cursor)的一个方法,用于获取查询结果集中的多行数据,最多获取size行。注意:每次调用 fetchmany()都会从上次获取数据的地方开始继续获取,也就是说,如果先调用了fetchmany(5),然后再调用 fetchmany(5),那么第二次调用将返回查询结果的第6-10行。如果想要重新从头开始获取数据,需要先调用 cursor.scroll(0, mode='absolute') 来重置游标位置。
import sqlite3# 连接到数据库文件
conn = sqlite3.connect('test.db')# 创建游标对象
cursor = conn.cursor()# 执行查询
cursor.execute('SELECT * FROM users')# 最多获取5行数据
rows = cursor.fetchmany(5)# 输出查询结果
for row in rows:print(row)# 关闭游标
cursor.close()# 关闭数据库连接
conn.close()
相关文章:
24 Python的sqlite3模块
概述 在上一节,我们介绍了Python的shutil模块,包括:shutil模块中一些常用的函数。在这一节,我们将介绍Python的sqlite3模块。sqlite3模块是Python中的内置模块,用于与SQLite数据库交互。SQLite是一个轻量级的磁盘数据库…...
ARM-流水灯
.text .global _start _start: 1、设置GPIOE寄存器的时钟使能 RCC_MP_AHB$ENSETR[4]->1 0x50000a28LDR R0,0X50000A28 LDR R1,[R0] 从R0起始地址的4字节数据取出放在R1 ORR R1,R1,#(0X3<<4) 第4位设置为1 STR R1,[R0] 写回2、设置PE10、PE8、PF10管脚为输出模式 …...
【虚拟机】NAT 模式下访问外网
目录 一、NAT 模式的作用原理 二、配置 NAT 模式实现外网访问 1、配置NAT模式的网段 2、虚拟机选择 VMnet8 网卡 3、IP地址设为自动分配 一、NAT 模式的作用原理 NAT模式下,虚拟机的系统会把宿主机当作一个大路由器,发送的网络请求和数据都是先发给…...
React 入门笔记
前言 国庆值班把假期拆了个稀碎, 正好不用去看人潮人海, 趁机会赶个晚集入门一下都火这么久的 React 前端技术. 话说其实 n 年前也了解过一丢丢来着, 当时看到一上来就用 JS 写 DOM 的套路直接就给吓退了, 扭头还去看 Vue 了🤣, 现在从市场份额 社区活度来看, 确实…...
Ubuntu MySQL
在安装前,首先看你之前是否安装过,如果安装过,但是没成功,就要先卸载。 一、卸载 1.查看安装 dpkg --list | grep mysql 有东西,就说明您之前安装过mysql。 2.卸载 先停掉server sudo systemctl stop mysql.servic…...
大数据软件系统开发框架
大数据处理框架是用于处理大规模数据集的软件工具和平台,它们可以帮助分析、存储和处理庞大的数据量。以下是一些常见的大数据处理框架,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.A…...
rust变量
一 、变量定义 (一)语法格式 使用let关键字定义变量 let varname: type value; 如,let a: i32 78;也可以不显式指定类型 let varname value; 如,let a 78;一些例子 1.布尔 let t true; let f: bool false;2.整数 let a …...
蓝桥杯---第一讲 递归与递推
文章目录 前言Ⅰ. 递归实现指数型枚举0x00 算法思路0x00 代码书写0x00 思考总结 Ⅱ. 递归实现排列型枚举0x00 算法思路0x01代码书写0x02 思考总结 Ⅲ. 简单斐波那契0x00 算法思路0x01 代码书写 Ⅳ. 费解的开关0x00 算法思路0x01 代码书写 Ⅴ. 递归实现组合型枚举0x00 算法思路0…...
OpenCV 15(SIFT/SURF算法)
一、SIFT Harris和Shi-Tomasi角点检测算法,这两种算法具有旋转不变性,但不具有尺度不变性,以下图为例,在左侧小图中可以检测到角点,但是图像被放大后,在使用同样的窗口,就检测不到角点了。 尺度…...
前端二维码图片解析图片识别/网络图片解析成链接/图片网络链接转本地链接(Js/Vue/Jquery)
注:需要用到canvas/jsqr/jquery! 1、远程图片链接本地化 页面: <!-- 识别二维码用的 canvas--> <canvas class"canvas" ref"canvas" style"display: none"></canvas> 1.创建图片 get2: fu…...
模板中的依赖类型使用 --- typename
依赖类型,顾名思义就是依赖于模板参数的类型,在使用这种类型时,必须使用 typename,否则编译器是无法知道是在使用类型,还是类的成员(因为类的静态成员的使用方法也是T::xxx,这跟某个类中的类型的…...
git 同时配置 gitee github
git 同时配置 gitee github 1、 删除C:\Users\dell\.ssh目录。 在任意目录右击——》Git Bash Here,打开Git Bash窗口,下方命令在Git Bash窗口输入。 2、添加git全局范围的用户名和邮箱 git config --global user.email "609612189qq.com" …...
2023.10.8 面试
面试工作1年的程序员 看到生涩才入职场不久的面试者,为人也相对诚恳的模样,我对此是很欣赏的态度。 因为完全看到了自己毕业1年时的场景。 简历上写的事情,讨论起来,描述不清楚,为此感到遗憾,因我本人也会…...
【前端】js实现队列功能 先进后出 先进先出 等
也可以定义一个定时器 不断的去取队列 执行任务 用一个flag定义队列正在执行中, 如果没有执行 则定时器不断的去调用队列,(因为会随时添加一个任务到队列中) 队列任务结束后 自动取下一个队列 也可以边加队列 边取 队列定义 function Queue() {//初始化队列(使用…...
07.数据持久化之文件操作
1. 文件操作 计算机的文件,就是存储在某种 长期储存设备 上的一段 数据 长期存储设备包括:硬盘、U 盘、移动硬盘、光盘… 文本文件和二进制文件 文本文件 可以使用 文本编辑软件 查看本质上还是二进制文件例如:python 的源程序 二进制文件…...
nginx开启https配置之后网页无法访问问题处理
背景说明 最近新购服务器部署nginx之后按照之前的方式部署前端项目并配置https之后访问页面显示:无法访问.新的服务器ECS系统和之前相同,nginx安装方式也相同,nginx配置方式也是相同.但是访问还是显示无法访问.下面简单记录一下问题处理过程. 处理过程 1.https访问之后无法访问…...
文本嵌入层
目录 1、文本嵌入层的作用 2、代码演示 3、构建Embeddings类来实现文本嵌入层 1、文本嵌入层的作用 无论是源文本嵌入层还是目标文本嵌入,都是为了将文本词汇中的数字表示转变为向量表示,希望在这样的高维空间中捕捉词汇之间的关系 2、代码演示 Emb…...
如何搭建自动化测试框架
关于测试框架的好处,比如快速回归提高测试效率,提高测试覆盖率等这里就不讨论了。这里主要讨论自动化框架包含哪些内容,以及如何去设计一个测试框架。 1. 什么是自动化测试框架? 它是由一个或多个自动化测试基础模块、自动化测试…...
抄写Linux源码(Day17:你的键盘是什么时候生效的?)
回忆我们需要做的事情: 为了支持 shell 程序的执行,我们需要提供: 1.缺页中断(不理解为什么要这个东西,只是闪客说需要,后边再说) 2.硬盘驱动、文件系统 (shell程序一开始是存放在磁盘里的,所以需要这两个东…...
在原生html中使用less
引入less <link rel"stylesheet/less" href"./lessDemo.less" /><script src"./js/less.min.js"></script> less.min.js文件下载地址:https://github.com/less/less.js 注意:less文件在前,js文件在后…...
【Qt】顶层窗口和普通窗口区别以及用法
区别 在Qt项目开发中,经常会用到窗体控件用于显示及数据操作和其他交互等。 但,窗体分为顶层窗口(Top-level Window)和普通窗口(Regular Window)。 他们之间是有区别的,包括在项目实际中的用法…...
qt开发从入门到实战2
以下是本人学习笔记 原视频:最新QT从入门到实战完整版|传智教育 qt开发从入门到实战1 练习示例 设计一个按钮,点击时弹出新窗口,再次点击时新窗口关闭 // exerciseQWidget* second_window new QWidget();QPushButton* btn3 new QPushBu…...
Android---字节码层面分析Class类文件
Java 提供了一种可以在所有平台上都能使用的一种中间代码---字节码文件(.class文件)。有了字节码,无论是那个平台只要安装了虚拟机都可以直接运行字节码文件。有了虚拟机,解除了 java 虚拟机与 java 代码之间的耦合。 Java 虚拟机当初被设计出来时就不单…...
【2023研电赛】东北赛区一等奖作品:基于FPGA的小型水下无线光通信端机设计
本文为2023年第十八届中国研究生电子设计竞赛东北赛区一等奖作品分享,参加极术社区的【有奖活动】分享2023研电赛作品扩大影响力,更有丰富电子礼品等你来领!,分享2023研电赛作品扩大影响力,更有丰富电子礼品等你来领&a…...
JWT授权为啥要在 Authorization标头里加个Bearer 呢
这是因为 W3C 的 HTTP 1.0 规范,Authorization 的格式是: Authorization: <type> <authorization-parameters> w3c规定,请求头Authorization用于验证用户身份。这就是告诉我们,token应该写在请求头Authorization中 …...
一篇理解TCP协议
一、TCP协议概念。 TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的传输层协议。它主要用于在计算机网络中,通过建立可靠的通信连接来进行数据传输。 TCP协议的特点如下: 可靠性…...
rk平台android12系统设置里面互联网选项中的以太网选项点击不了问题
rk平台android12系统中,系统设置中的互联网选项,当连接以太网以后,会显示以太网的选项,但是点击没作用,现在需要点击能够进入到以太网的设置界面,需要添加相关的点击事件。 首先,在packages/apps/Settings/AndroidManifest.xml中的以太网设置配置添加一个action,用于打…...
ctrl+d和ctrl+c的区别
CtrlD和CtrlC都是常用的键盘快捷键,但它们的功能不同。 CtrlD 在不同的操作系统和应用程序中可以有不同的功能。在Unix/Linux系统的命令行终端中,CtrlD的作用是发送EOF(End of File)信号,表示输入结束。在Windows系统中…...
ChatGLM2-6B微调实践
ChatGLM2-6B微调实践 环境准备安装部署1、安装 Anaconda2、安装CUDA3、安装PyTorch4、安装 ChatGLM2-6B 微调实践1、准备数据集2、安装python依赖3、微调并训练新模型4、微调后模型的推理与评估5、验证与使用微调后的模型 微调过程中遇到的问题 环境准备 申请阿里云GPU服务器&…...
YOLOv7独家改进FPN系列:结合新颖的 GhostSlimPAN 范式网络结构,进一步提升检测器性能
💡本篇内容:YOLOv7改进FPN系列:结合新颖的 GhostSlimFPN 范式网络结构,进一步提升检测器性能 重点:🔥🔥🔥YOLOv7 使用这个 核心创新点 在数据集改进做实验:即插即用: 当 Slim 遇到 YOLO 系列 💡🚀🚀🚀本博客 YOLO系列 + 改进源代码改进 适用于 YOLOv7…...
建立旅游网站的目的/成都短视频代运营
Navicat for MySQL 是一套管理和开发 MySQL 或 MariaDB 的理想解决方案,支持单一程序,可同时连接到 MySQL和MariaDB。这个功能齐备的前端软件为数据库管理、开发和维护提供了直观而强大的图形界面,给 MySQL 或 MariaDB 新手以及专业人士提供了…...
烟台开发区人才市场招聘信息/合肥网络公司seo建站
奔小康赚大钱Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2325 Accepted Submission(s): 1020Problem Description传说在遥远的地方有一个非常富裕的村落,有一天,村长决定进行制度改革:重新分配房…...
品牌理念设计企业网站建设/客户引流的最快方法是什么
Python版本: 3.6.0 一、添加Media Types Name:自定义的媒介名称 Type:Scipt 脚本 Scipt name : 脚本名称 Scipt parameters : 传递给脚本的参数。(该参数可以在后面的Actions部分自定义)。这里我们就使…...
网站建设的好处有什么用/引擎seo如何优化
系统流程如下图所示 首先数据交换流程为数据库<—>后台<---->前台 Dao层负责和数据库进行数据交互,services负责事务逻辑处理,action为struts部分,主要负责页面跳转时的数据传送。在web.xml文件中,有 <?xml version"1…...
网站的版面布局/什么是核心关键词
在这篇由两部分组成的文章中,Elliotte Rusty Harold 与您一起探讨经典java.lang.Math 类中的“新”功能。第 1 部分主要讨论比较单调的数学函数。第 2 部分将探讨专为操作浮点数而设计的函数。有时候您会对一个类熟悉到忘记了它的存在。如果您能够写出 java.lang.Fo…...
wordpress 操作教程/广州网站seo地址
在子目录下仍然可以建立.gitignore文件以用于忽略子目录的文件转载于:https://www.cnblogs.com/zuoxiaobing/p/4616568.html...