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带符号的整型,具体取决有存入数字的范围大小。FLOAT32位元的实数。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 数据库应用的版本不一样。