SQLite是遵守ACID的轻量型数据库管理系统,其核心是由相对较少的 C 代码实现的, 具有简单、稳定、易于使用和真正的轻量级特点。 每个 SQLite 数据库是一个简单文件,用户可以方便地复制、压缩, 并通过网络进行传输与交换。 SQLite 程序是跨平台的,其数据库文件也是跨平台的, 所以在 Windows 、 Linux , MacOS 等平台中都得到了广泛的应用。
由于 SQLite 的强大功能与嵌入式设计, 被集成到许多系统与平台中,在 Python 2.5 及以上版本中就默认带了 SQLite 模块。
它是D.RichardHipp建立的公有领域项目。 它的设计目标是嵌入式的,而且已经在很多嵌入式产品中使用了它, 它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。 它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合, 比如 Tcl、C#、PHP、Java等,还有ODBC接口, 同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。
优点:
- ACID事务
- 零配置 – 无需安装和管理配置
- 储存在单一磁盘文件中的一个完整的数据库
- 数据库文件可以在不同字节顺序的机器间自由的共享
- 支持数据库大小至2TB
- 足够小, 大致13万行C代码, 4.43M
- 比一些流行的数据库在大部分普通数据库操作要快
- 简单, 轻松的API
- 包含TCL绑定, 同时通过Wrapper支持其他语言的绑定
- 良好注释的源代码, 并且有着90%以上的测试覆盖率
- 独立: 没有额外依赖
- 源码完全的开源, 可以用于任何用途, 包括出售它
- 支持多种开发语言,C, C++, PHP, Perl, Java, C#,Python, Ruby等
数据类型
SQLite允许忽略数据类型, 但是最好事先声明数据类型。
常见的数据类型包括:
VARCHAR(M)
是一种比CHAR
更加灵活的数据类型,用于表示字符数据。NVARCHAR(n)
包含n
个字符的可变长度 Unicode 字符数据。n
的值必须介于1
与4,000
之间。字节的存储大小是所输入字符个数的两倍。TEXT
字符串文本。INTEGER
带符号的整型,具体取决有存入数字的范围大小。FLOAT
32位元的实数。BOOLEAN
是bit类型(长度为1)内容可以是0,1.但是数据在页面返回的是true,false。CLOB
是内置类型,它将字符大对象 (Character Large Object) 存储为数据库表某一行中的一个列值。BLOB
二进制对象。
常用函数
SQLite COUNT
函数SQLite COUNT
聚集函数是用来计算一个数据库表中的行数。SQLite MAX
函数SQLite MAX
聚合函数允许选择某列的最大值。SQLite MIN
函数SQLite MIN
聚合函数允许选择某列的最小值。SQLite AVG
函数SQLite AVG
聚合函数计算某列的平均值。SQLite SUM
函数SQLite SUM
聚合函数允许为一个数值列计算总和。SQLite RANDOM
函数SQLite RANDOM
函数返回一个介于-9223372036854775808
和+9223372036854775807
之间的伪随机整数。SQLite ABS
函数SQLite ABS
函数返回数值参数的绝对值。SQLite UPPER
函数SQLite UPPER
函数把字符串转换为大写字母。SQLite LOWER
函数SQLite LOWER
函数把字符串转换为小写字母。SQLite LENGTH
函数SQLite LENGTH
函数返回字符串的长度。SQLite sqlite_version
函数SQLite sqlite_version
函数返回 SQLite 库的版本。
!sqlite3 --version
/bin/bash: line 1: sqlite3: command not found
在 Python 中通过以下语句:
import sqlite3 ; sqlite3.version
/tmp/ipykernel_4931/1494481624.py:1: DeprecationWarning: version is deprecated and will be removed in Python 3.14 import sqlite3 ; sqlite3.version
'2.6.0'
sqlite3.version
的版本是 Python 中 sqlite3
模块的版本,与系统中 SQLite 3 数据库应用的版本不一样。