SQLite是一个关系型数据库管理系统(RDBMS),而不是非关系型数据库。它是一个轻量级的数据库,设计用于嵌入到应用程序中,而不是作为一个独立的服务器运行。
SQLite的特点包括:
- 体积小:它只有一个单一的exe文件,非常适合嵌入到其他应用程序中。
- 零配置:不需要单独的服务器进程或配置文件。
- 跨平台:支持多种操作系统,包括Windows、macOS、Linux等。
- 完全遵守SQL标准:支持标准的SQL查询语言。
- 支持事务:具有ACID(原子性、一致性、隔离性、持久性)特性。
SQLite的工作机制中,B-tree和Page cache共同对数据进行管理。
-
B-tree:
- SQLite使用B-tree作为其索引结构,用于快速地检索数据。B-tree是一种平衡树结构,可以有效地处理大量的数据,并支持快速的插入、删除和查询操作。
- B-tree中的每个节点包含多个键值对,这些键值对被组织成有序的列表,以便于快速搜索。
-
Page cache:
- SQLite使用Page cache来缓存磁盘上的数据页。当数据库需要读取数据时,它首先从Page cache中查找,如果数据不在Page cache中,SQLite会从磁盘读取数据页并将其缓存到Page cache中。
- Page cache提高了数据的读取速度,因为它减少了磁盘I/O操作。
在Python中,sqlite3
库是Python标准库的一部分,不需要通过pip安装
Connection
对象是SQLite3提供的主要连接对象,它代表了一个与SQLite数据库的连接。一旦创建了Connection
对象,就可以通过它来创建一个或多个Cursor
对象。
connect()
函数用于建立与SQLite数据库的连接。如果指定的数据库文件存在,它会返回一个Connection
对象,允许你执行SQL语句和操作数据库。如果指定的数据库文件不存在,connect()
函数会创建一个新数据库文件,并返回一个Connection
对象。
python与sqlite3使用例子
import sqlite3
# 连接到SQLite数据库
conn = sqlite3.connect('example.db')
# 创建一个Cursor对象
cursor = conn.cursor()
# 创建一个表
cursor.execute('''CREATE TABLE IF NOT EXISTS contacts
(id INTEGER PRIMARY KEY, name TEXT, phone TEXT)''')
# 插入一些数据
cursor.execute('INSERT INTO contacts VALUES (?, ?, ?)', (1, 'Alice', '123-4567'))
#更新数据
cursor.execute('UPDATE test_table SET salary=6800 WHERE id=5')
#删除数据
cursor.execute('DELETE FROM test_table WHERE id=5')
# 提交事务
conn.commit()
# 关闭连接
conn.close()