Python3操作SQLite数据库
Python3操作SQLite数据库#
SQLite
SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。 至2019年已经有19个年头,SQLite也迎来了一个版本 SQLite 3已经发布。[摘自SQLite百度百科]
功能特性#
- ACID事务
- 零配置 – 无需安装和管理配置
- 支持数据库大小至2TB
- 比一些流行的数据库在大部分普通数据库操作要快
- 独立: 没有额外依赖
- 支持多种开发语言,C, C++, PHP, Perl, Java, C#,Python, Ruby等
数据类型#
- Typelessness(无类型)
- 支持常用的数据库类型
使用Python3操作SQLite#
python2.5以后的安装包已经自带SQLite3的软件包了,所以直接导入使用即可。
import sqlite3
第一步:连接数据库(如果数据库不存在就会创建新的数据库)#
# 可以指定创建数据库的路径,比如可以写成sqlite3.connect(r"E:\DEMO.db")
con = sqlite3.connect("DEMO.db")
第二步:创建游标#
cur = con.cursor()
第三步:CURD操作#
(一) 创建表#
sql = "CREATE TABLE IF NOT EXISTS test(id INTEGER PRIMARY KEY,name TEXT,age INTEGER)"
cur.execute(sql)
创建完数据库和表后的结构示意图:
(二) 添加数据(需要提交)#
# ①:添加单条数据
data = "1,'Desire',5"
cur.execute('INSERT INTO test VALUES (%s)' % data)
# ②:添加单条数据
cur.execute("INSERT INTO test values(?,?,?)", (6, "zgq", 20))
# ③:添加多条数据
cur.executemany('INSERT INTO test VALUES (?,?,?)', [(3, 'name3', 19), (4, 'name4', 26)])
操作后的数据库如下图:
(三) 更新数据(需要提交)#
# 方式一
cur.execute("UPDATE test SET name=? WHERE id=?", ("nihao", 1))
# 方式二
cur.execute("UPDATE test SET name='haha' WHERE id=3")
操作后的数据库如下图:
(四) 删除数据(需要提交)#
# 方式一
cur.execute("DELETE FROM test WHERE id=?", (1,))
# 方式二
cur.execute("DELETE FROM test WHERE id=3")
操作后的数据库如下图:
(五) 查询数据#
数据库中的数据如下:
1、查询所有数据
cur.execute("select * from Test")
print(cur.fetchall())
结果如下:
2、查询第一条数据
cur.execute("select * from Test")
print(cur.fetchone())
结果如下:
3、查询多条数据
print(cur.fetchmany(3))
结果如下:
第四步:事务的提交和回滚#
提交
con.commit()
回滚
con.rollback()
第五步:断开会话连接,释放资源#
# 关闭游标
cur.close()
# 断开数据库连接
con.close()
关于SQLite数据类型的Typelessness(无类型)#
创建一个无类型的表(创建表的SQL语句字段不加类型即可)#
sql = "CREATE TABLE IF NOT EXISTS user(clo_1,clo_2,clo_3)"
cur.execute(sql)
创建成功后的结构:
添加数据的时候就可以添加任意类型的数据(没有限制)#
sql = 'INSERT INTO user VALUES (?,?,?)'
data = [(9, 'name3', 19), ('name4', 26, "nihao"), ('nihao', 3, 2.89)]
cur.executemany(sql, data)
con.commit()
添加成功后的表内容:
-----------------------------------------------------------------------------
*以上便是SQLite在Python中简单的操作,查看表结构可以用Navicat for SQLite可视化工具
作者: DesireYang
出处:https://www.cnblogs.com/desireyang/p/12102143.html
版权:本文采用「署名-非商业性使用-相同方式共享 4.0 国际」知识共享许可协议进行许可。
Explicit is better than implicit(明了胜于晦涩)
希望对您有所帮助!感谢观看!
如要转载,请注明出处:转载自:https://www.cnblogs.com/desireyang/,谢谢
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人