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的软件包了,所以直接导入使用即可。
Copy
import sqlite3

第一步:连接数据库(如果数据库不存在就会创建新的数据库)#

Copy
# 可以指定创建数据库的路径,比如可以写成sqlite3.connect(r"E:\DEMO.db") con = sqlite3.connect("DEMO.db")

第二步:创建游标#

Copy
cur = con.cursor()

第三步:CURD操作#

(一) 创建表#

Copy
sql = "CREATE TABLE IF NOT EXISTS test(id INTEGER PRIMARY KEY,name TEXT,age INTEGER)" cur.execute(sql)
创建完数据库和表后的结构示意图:

(二) 添加数据(需要提交)#

Copy
# ①:添加单条数据 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)])
操作后的数据库如下图:

(三) 更新数据(需要提交)#

Copy
# 方式一 cur.execute("UPDATE test SET name=? WHERE id=?", ("nihao", 1)) # 方式二 cur.execute("UPDATE test SET name='haha' WHERE id=3")
操作后的数据库如下图:

(四) 删除数据(需要提交)#

Copy
# 方式一 cur.execute("DELETE FROM test WHERE id=?", (1,)) # 方式二 cur.execute("DELETE FROM test WHERE id=3")
操作后的数据库如下图:

(五) 查询数据#

数据库中的数据如下:

1、查询所有数据
Copy
cur.execute("select * from Test") print(cur.fetchall())
结果如下:

2、查询第一条数据
Copy
cur.execute("select * from Test") print(cur.fetchone())
结果如下:

3、查询多条数据
Copy
print(cur.fetchmany(3))
结果如下:

第四步:事务的提交和回滚#

提交
Copy
con.commit()
回滚
Copy
con.rollback()

第五步:断开会话连接,释放资源#

Copy
# 关闭游标 cur.close() # 断开数据库连接 con.close()

关于SQLite数据类型的Typelessness(无类型)#

创建一个无类型的表(创建表的SQL语句字段不加类型即可)#

Copy
sql = "CREATE TABLE IF NOT EXISTS user(clo_1,clo_2,clo_3)" cur.execute(sql)
创建成功后的结构:

添加数据的时候就可以添加任意类型的数据(没有限制)#

Copy
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可视化工具

posted @   DesireYang  阅读(36146)  评论(3编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 开发者新选择:用DeepSeek实现Cursor级智能编程的免费方案
· Tinyfox 发生重大改版
· 独立开发经验谈:如何通过 Docker 让潜在客户快速体验你的系统
· 小米CR6606,CR6608,CR6609 启用SSH和刷入OpenWRT 23.05.5
· 近期最值得关注的AI技术报告与Agent综述!
点击右上角即可分享
微信分享提示
CONTENTS