sqlite3模块的使用

1. SQLite数据库

SQLite是一个轻量级的, 基于磁盘的, 关系型的数据库管理系统(RDBMS).
它不需要一个独立的服务器进程或操作系统级别的配置.
SQLite是D.Richard Hipp在2000年创建的, 并且由于其小巧, 快速, 可靠和易于使用的特性, 它在全球范围内得到了广泛的应用.以下是 SQLite 的一些主要特点和优势:
* 1. 轻量级: SQLite的整个数据库就是一个单一的磁盘文件, 可以很容易地在不同的设备之间移动和复制.
* 2. 零配置: 不需要安装或配置, 只需要将SQLite库与你的应用程序一起编译即可.
* 3. 跨平台: 支持Windows, Linux, macOS, Android, iOS等多种操作系统.
* 4. 支持SQL92标准: 虽然SQLite是一个轻量级的数据库, 但它支持大部分SQL92标准的功能.
* 5. 事务完整: SQLite支持ACID事务, 这意味着数据库操作是原子性, 一致性, 隔离性和持久性的.
* 6. 零服务器: SQLite不需要像MySQL, PostgreSQL或Oracle这样的中央服务器. 它直接从磁盘文件读取和写入数据.
* 7. 可扩展性: 虽然SQLite本身是一个简单的数据库引擎, 但它允许用户通过创建虚拟表(如全文搜索, R-Tree, 用户定义的函数等)来扩展其功能.
* 8. 内存效率: SQLite使用了一种独特的B-Tree数据结构来存储数据, 这使得它在处理大量数据时非常高效.
* 9. 安全性: SQLite支持加密和完整性检查, 以确保数据的安全性和一致性.虽然它的功能不如一些更复杂的关系型数据库强大, 但SQLite提供了足够的功能来满足许多常见的数据存储和检索需求.
由于SQLite的轻量级和易用性, 它被广泛用于各种应用程序中, 包括Web浏览器, 移动应用, 嵌入式系统, 桌面应用等.

2. sqlite3模块

SQLite3是一个轻量级的, 内嵌式的, 关系型数据库管理系统, 它不需要一个独立的服务器进程或操作系统级别的配置.
Python的sqlite3模块提供了一个轻量级的磁盘上数据库, 它不需要单独的服务器进程或操作系统特定的配置.
Python的标准库中包含了一个名为sqlite3的模块, 它提供了与SQLite数据库交互的接口.
使用这个模块, Python开发者可以轻松地创建, 查询, 更新和删除SQLite数据库中的数据.
要在Python中使用SQLite3, 可以简单地导入sqlite3模块, 并使用它提供的类和函数来创建和操作数据库.
以下是一个简单的例子, 展示了如何在Python中使用SQLite3来创建一个数据库, 一个表, 并插入一些数据:
import sqlite3  # 连接到SQLite数据库(如果不存在, 它将被创建)  
# 数据库文件是test.db  
# 如果数据库文件与Python脚本在同一目录下
conn = sqlite3.connect('test.db')cur = conn.cursor()  # 连接到一个 SQLite 数据库并创建一个游标对象(用于执行SQL语句并获取结果)# 创建了一个名为user的表, 其中包含了两个个字段: username, password.
# username和password字段被定义为varchar(12)类型, 这意味着它们可以存储最多12个字符的变长字符串.
cur.execute('''CREATE TABLE user  (username varchar(12), password varchar(12))''')  # 插入数据, 防止sql注入使用?作为占位符 
cur.execute("INSERT INTO user VALUES (?, ?)", ('张三', 123))  # 保存(commit)更改  
conn.commit()  # 查询数据
sql = cur.execute("SELECT * FROM user")
print(sql)# 关闭连接  
conn.close()
在这个例子中, 首先导入了sqlite3模块, 并使用sqlite3.connect()函数连接到一个SQLite数据库文件(在这个例子中是 test.db).
如果该文件不存在, SQLite将自动创建一个新的数据库文件.
然后, 创建了一个Cursor对象, 并使用这个对象来执行SQL命令.
在这个例子中, 我们创建了一个表, 并插入了一行数据(需要使用commit()方法保存了更改), 
最后, 查询数据库的所有记录, 并关闭了到数据库的连接.请注意, 在实际应用中, 可能需要处理一些错误, 比如当尝试创建一个已经存在的表时.
此外, 你还需要考虑在关闭数据库连接之前确保所有的更改都已经被保存.

image-20240615132218150

3. sqlite_master

sqlite_master是SQLite数据库中的一个内置系统表, 它具有以下主要特点和功能:
* 1. 概述:sqlite_master表存储着当前数据库中所有表, 索引, 视图和触发器的相关信息.它包含了关于这些数据库对象的元数据, 如对象的名称, 类型, 用于创建它们的SQL语句等.* 2. 结构:sqlite_master表具有固定的结构, 包括以下几个字段:type: 表示对象的类型, 如'table', 'index', 'view'或'trigger'.name: 对象的名称.tbl_name: 对于索引, 这是索引所属的表的名称; 对于其他对象类型, 此字段与name字段相同.rootpage: 该对象在数据库文件中的根页面编号(对于理解SQLite的内部结构很重要, 但通常用户不需要关心).sql: 用于创建该对象的SQL语句.* 3. 权限.sqlite_master表是只读的, 用户只能对其进行读操作.写操作(如创建, 修改或删除表)会自动更新此表, 但用户不能直接修改它.* 4. 应用场景:用户可以使用SELECT查询从sqlite_master表中检索关于数据库对象的信息.例如, 要查询某个表是否存在, 可以执行类似`SELECT * FROM sqlite_master WHERE type='table' AND name='表名';的查询.要查询某个索引的信息, 可以设置type字段为'index'并指定索引名.* 5. 临时表:需要注意的是, 临时表的信息不存储在sqlite_master表中, 而是存储在另一个名为SQLITE_TEMP_MASTER的表中,其结构与sqlite_master相同.

4. 查询表是否存在

# 查询表是否存在
import sqlite3def table_exists(conn, table_name):cur = conn.cursor()cur.execute(f"SELECT name FROM sqlite_master WHERE type='table' AND name='{table_name}';")result = cur.fetchone()return result is not None  # 条件表达式, 判断result是否为None# 连接到SQLite数据库
conn = sqlite3.connect('test.db')# 检查表是否存在
if table_exists(conn, 'user'):print("表 user 存在")
else:print("表 user 不存在")# 关闭连接
conn.close()

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

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

相关文章

60.WEB渗透测试-信息收集- 端口、目录扫描、源码泄露(8)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:59.WEB渗透测试-信息收集- 端口、目录扫描、源码泄露(7) 御剑是用…

人工智能模型组合学习的理论和实验实践

组合学习,即掌握将基本概念结合起来构建更复杂概念的能力,对人类认知至关重要,特别是在人类语言理解和视觉感知方面。这一概念与在未观察到的情况下推广的能力紧密相关。尽管它在智能中扮演着核心角色,但缺乏系统化的理论及实验研…

DDPAI盯盯拍记录仪删除后的恢复方法(前后双路)

DDPAI盯盯拍行车记录仪的口碑相当不错,其产品一直以行车记录仪为主,曾经使用过比较早的产品,体验还不错。下面来看下这个DDPAI的视频恢复方法。 故障存储: 64G存储卡 /文件系统:FAT32 故障现象: 在发生事故后在记录仪上看到了…

工程设计问题---工业制冷系统的优化设计问题

参考文献: [1]李煜,梁晓,刘景森,等.基于改进平衡优化器算法求解工程优化问题[J/OL].计算机集成制造系统,1-34[2024-06-16].

水滴式粉碎机:玉米饲料加工的新篇章

在饲料加工业中,玉米作为一种重要的原料,其加工方式直接影响到饲料的品质以及动物对饲料的消化吸收率。近年来,随着科技的进步,越多的环保的饲料加工设备被引入到饲料生产中,其中,水滴式粉碎机以其独特的优…

Ubuntu Linux 24.04 C语言TCP/IP socket编程基础知识

socket起源于Unix,Unix/Linux基本哲学之一就是“一切皆文件”,都可以用“打开open –> 读写write/read –> 关闭close”模式来操作。Socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行读/写…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 部门项目任务分配(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 📎在线评测链接 部门项目任务分配(100分) 🌍 评测功能需要订阅专栏后私信联…

举例说明 如何通过SparkUI和日志定位任务莫名失败?

有一个Task OOM: 通过概览信息,发现Stage 10的Task 36失败了4次导致Job失败。概览信息中显示最后一次失败的退出代码(exit code)是143,意味着发生了内存溢出(OOM,即Out of Memory)。…

探索Edge

目录 1.概述 1.1.什么是浏览器 1.2.浏览器的作用 2.Edge 2.1.什么是Edge 2.2.诞生背景 2.3.历史版本 2.4.作用 2.5.优缺点 2.5.1.优点 2.5.2.缺点 3.对比 3.1.和360浏览器的对比 3.2.和谷歌浏览器(Chrome)的对比 4.未来展望 5.总结 1.概…

从“产品的RFM分析”看如何探索“职业方向”

我们在做产品分析时,经常会用到一种方法“产品的RFM分析”,它是一种客户细分和价值评估的常用方法,广泛应用于电子商务、零售和其他众多行业,它可以帮助企业和产品团队更好地理解用户行为,优化营销策略,提升…

Python基础教程(二十二):XML解析

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝&#x1f49…

0 算法复杂度

算法复杂度 时间复杂度有关总结 一,常数时间的操作【基本操作】 常数时间——固定时间——O(1)——由实现细节决定 不会随着输入规模的变化而增加时间复杂度 1 基本操作解析 1.算数操作: ab a-b a*b a/b int a 32位 int b 32位11 178997…

Linux--MQTT(二)通信基本原理

一、MQTT 通信基本原理 MQTT 是一种基于 客户端 - 服务端 架构的消息传输协议,所以在 MQTT 协议通信中,有两个最为重要的角色,它们便是服务端 和 客户端 。 举例:若开发板向“芯片温度”这一主题发布消息,那么服务…

cocos开发的时候 wx.onShow在vscode里面显示红色

这个函数是在微信小游戏平台才会用到。 cocos识别不到wx这个变量。 可以改成下面的写法。 只要在变量前面加一个globalThis.就能识别这个变量了。也不报错了。 搞死强迫症了。orz 欢迎大家来玩我的微信小游戏。多多提意见啊。

欧阳修,仕途波澜中的文坛巨匠

欧阳修,字永叔,号醉翁、六一居士,生于北宋真宗景德四年(公元1007年),卒于北宋神宗熙宁五年(公元1072年),享年65岁。他是北宋时期著名的文学家、史学家,也是唐…

计算机缺失d3dcompiler_43.dll怎么办,介绍5种靠谱的解决方法

在电脑使用过程中,我们经常会遇到一些错误提示,其中之一就是“找不到d3dcompiler43.dll”的错误。那么,d3dcompiler43.dll到底是什么?为什么会出现丢失的情况?它对计算机有什么具体影响?如何解决这个问题&a…

数据库系统概念(第七周 第二堂)(E-R模型转关系模式)

前言 前一堂课我们深入研究了E-R模型的画法和要点,学习E-R模型肯定是为了给数据库表格设计提供帮助。数据库表格设计就是关系模式设计,数据库表就是关系模式的实例化。所以本堂课,我们来看E-R模型如何转为关系模式。 转化原则 转化步骤 转…

[Vulnhub]Solid-State POP3邮件服务(James)+rbash逃逸

信息收集&SSH Server IP addressPorts Open192.168.8.100TCP:22,25,80,110,119,4555 Nmap 扫描: $ nmap -p- 192.168.8.100 --min-rate 1000 -sC -sV 结果: Host is up (0.00061s latency). Not shown: 65529 closed tcp ports (conn-refused) PORT STATE SERVICE…

phpStudy安装sqli-labs

phpStudy安装sqli-labs git地址:https://github.com/Audi-1/sqli-labs 点击管理–>根目录 将git下载的sqli-labs文件放进去并解压 进入sql-connections修改 修改db-creds.inc文件为自己数据库的账号密码 更改php版本为5.*,因为这个程序只能在php 5.…

[Golang] go-kit 介绍和使用 (微服务实现工具)

文章目录 1.go-kit 介绍1.1 go-kit 三层结构 2.go-kit 实例 1.go-kit 介绍 go-kit是一个分布式的开发工具集,在大型的组织(业务)中可以用来构建微服务,其解决了分布式系统中大多数常见问题,因此,使用者可以…