SQLite 的简单介绍
一、定义
一款轻型的数据库,是遵守ACID的关系型数据库管理系统;实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。设计目标是嵌入式的,而且已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。处理速度比MySQL、PostgreSQL都快。
二、工作原理
SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。
三、特点:
- 不需要一个单独的服务器进程或操作的系统(无服务器的)。
- SQLite 不需要配置,这意味着不需要安装或管理。
- 一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件。
- SQLite 是非常小的,c编写的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KiB。
- SQLite 是自给自足的,这意味着不需要任何外部的依赖。
- SQLite 事务是完全兼容 ACID 的,允许从多个进程或线程安全访问。
- SQLite 支持 SQL92(SQL2)标准的大多数查询语言的功能。
- SQLite 使用 ANSI-C 编写的,并提供了简单和易于使用的 API。
- 跨平台,SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)中运行。
四、缺点
- 只能本地使用,无法被远程的客户端访问;
- 适合单线程访问,不适合多线程高并发的场景;
五、应用场景
- 小型网站;
- 嵌入式设备;
- 数据库学习;
- 并发量不高的网站;
六、 Python 使用SQLite
SQLite3可使用sqlite3模块与Python进行集成。
# 如果数据库不存在,那么它就会被创建,最后将返回一个数据库对象。
conn = sqlite3.connect("test.db")
print("数据库打开失败“",conn)
c = conn.cursor()
#创建表
c.execute('CREATE TABLE classdemo (ID INT PRIMARY KEY NOT NULL,NAME TEXT NOT NULL,AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL)')
#向表中插入一行数据
c.execute("INSERT INTO classdemo(ID, NAME, AGE, ADDRESS, SALARY) VALUES(4, 'Mark', 25, 'Rich-Mond ', 65000.00)")
conn.commit()
#查询表
c.execute("SELECT id, name, address, salary from classdemo")
cursor = c.fetchall()
print(cursor)
conn.close()