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()

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

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

相关文章

windows server 2012 服务器打开系统远程功能

服务器上开启远程功能 进入服务器,选择“添加角色和功能” 需要选择安装的服务器类型,如图所示 然后在服务器池中选择你需要使用的服务器。 选择完成后,在图示列表下勾选“远程桌面服务” 再选择需要安装的功能和角色服务。 选择完成确认内容…

CTFHUB - SSRF

目录 SSRF漏洞 攻击对象 攻击形式 产生漏洞的函数 file_get_contents() fsockopen() curl_exec() 提高危害 利用的伪协议 file dict gopher 内网访问 伪协议读取文件 端口扫描 POST请求 总结 上传文件 总结 FastCGI协议 CGI和FastCGI的区别 FastCGI协议 …

MyBatis-plus使用

1 基础介绍 MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 它已经封装好了一些crud方法,我们不需要再写…

Leetcode hot 100之双指针(快慢指针、滑动窗口)

目录 数组 有序的平方仍有序 删除/覆盖元素 移动零:交换slow和fast 滑动窗口:最短的连续子串(r可行解->l--最短解) 最小长度的子数组 求和:sort、l i 1, r len - 1 三数之和abctarget 四数之和abcdtarg…

Linux中Too many open files

Linux中Too many open files 问题分析和解决_e929: too many viminfo temp files-CSDN博客 too many open files 出现这句提示的原因是程序打开的文件/socket连接数量超过系统设定值。 查看每个用户最大允许打开文件数量 ulimit -a fdipzoneubuntu:~$ ulimit -a core file …

修改 ModelScope 默认缓存路径

修改 ModelScope 默认缓存路径 设置 MODELSCOPE_CACHE 和 MODELSCOPE_MODULES_CACHE 两个环境变量。 export MODELSCOPE_CACHE<your_favourite_path>/hub export MODELSCOPE_MODULES_CACHE<your_favourite_path>/modelscope_modules完结&#xff01;

VUE3照本宣科——package.json与vite.config.js

VUE3照本宣科——package.json与vite.config.js VUE3照本宣科系列导航 前言一、package.json1.name2.version3.private4.scripts5.dependencies6.devDependencies 二、vite.config.js1.plugins2.resolve.alias3.base4.mode 三、VUE3照本宣科系列总结 VUE3照本宣科系列导航 1.VU…

大数据Doris(五):开始编译 Doris

文章目录 开始编译 Doris 一、下载Doris的安装包 二、解压缩 三、上传配置文件

commons-collections4工具常用方法

commons-collections4是Apache Commons项目中的一个模块&#xff0c;提供了一系列处理集合和映射的工具类、接口和算法。它是在commons-collections的基础上进行了改进和增强&#xff0c;为Java开发者提供了更多集合操作的功能和便利性。 引入依赖 <dependency><group…

嵌入式操作系统服务机制

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。搜…

三一充填泵:煤矿矸石无害化充填,煤炭绿色高效开采的破局利器

富煤贫油少气是我国的能源禀赋特征&#xff0c;决定了我国以煤炭为主的能源结构&#xff0c;煤炭为国民经济发展提供了重要的基础。煤炭开采过程会对土地、地下水、空气等环境造成较大的污染&#xff0c;但大宗固废煤矸石无害化充填的技术手段可以有效改善这样的情况&#xff0…

【Linux】线程详解完结篇——信号量 + 线程池 + 单例模式 + 读写锁

线程详解第四篇 前言正式开始信号量引例信号量的本质信号量相关的四个核心接口生产消费者模型用环形队列实现生产者消费者模型基于环形队列的生产消费模型的原理代码演示单生产者单消费者多生产者多消费者 计数器的意义 线程池基本概念代码 单例模式STL,智能指针和线程安全STL中…

移动D频段频点的计算

移动D频段的频率范围是2515MHz ~ 2675MHz&#xff0c;用于TDD-LTE制式的通信。在D频段中&#xff0c;D1频点的中心频率为37900 MHz。这个中心频点的计算方式如下&#xff1a; 首先需要知道&#xff0c;在TDD-LTE的通信中&#xff0c;频段是被分成多个子带进行使用的。在移动D频…

软考知识汇总-软件工程

软件工程 1 能力成熟度模型&#xff08;CMM&#xff09;2 能力成熟度模型集成&#xff08;CMMI&#xff09;2.1阶段式模型2.2 连续式模型 3 软件过程模型 1 能力成熟度模型&#xff08;CMM&#xff09; 将软件工程成熟度分为5个级别 初始级&#xff1a;杂乱无章&#xff0c;很…

设计模式——11. 享元模式

1. 说明 享元模式(Flyweight Pattern)是一种结构型设计模式,它旨在减少系统中相似对象的内存占用或计算开销,通过共享相同的对象来达到节省资源的目的。 享元模式的核心思想是将对象的状态分为内部状态(Intrinsic State)和外部状态(Extrinsic State): 内部状态是对象…

基于Uniswap V3的去中心化前端现货交易平台Oku正式登陆Moonbeam

波卡上的Uniswap v3合约由Moonbeam智能合约、Oku前端&#xff0c;以及Wormhole远程路由技术共同实现。 跨链互连应用的最佳去中心化开发平台Moonbeam宣布Uniswap现已正式登陆。此次是Uniswap产品作为一个主流的DEX首次涉足Polkadot生态。用户可以通过新的、易于使用的Oku界面与…

【JavaEE】_构造HTTP请求与HTTPS

目录 1. 构造HTTP请求 1.1 form标签构造HTTP请求 1.1.1 form标签构造GET请求 1.1.2 form标签构造POST请求 1.2 通过ajax构造HTTP请求 1.3 form与ajax 1.4 使用ajax构造HTTP请求 2.HTTPS 2.1 对称加密 2.2 非对称加密 2.3 证书 1. 构造HTTP请求 1.1 form标签构造HTT…

NPDP产品经理知识(产品创新种的市场调研)

1. 复习产品设计与开发工具 创意生成&#xff1a; scamper也叫蹦蹦法 心智图就是思维导图&#xff1a;mindmaping 原型法--故事板&#xff1a;创意生成的时候做的 人种学--民族志 六顶思考帽&#xff1a;白色红色黑色蓝色。。。 概念设计&#xff1a; AOMI&#xff1a;卡…

Hive【Hive(六)窗口函数】

窗口函数&#xff08;window functions&#xff09; 概述 定义 窗口函数能够为每行数据划分 一个窗口&#xff0c;然后对窗口范围内的数据进行计算&#xff0c;最后将计算结果返回给该行数据。 语法 窗口函数的语法主要包括 窗口 和 函数 两个部分。其中窗口用于定义计算范围…

最全MacBook选购指南 | 看完你就知道怎么买

最全MacBook选购指南 | 看完你就知道怎么买 作为MacBook的老用户大大小小的型号也都用了不少 那这么多台MacBook到底怎么选呢&#x1f4a1; . ☑️M1和Intel的MacBook有什么差别呢&#xff1f; 下半年苹果发布的两款MacBook都是苹果自研的芯片M1。在此之前苹果一直用的都是Inte…