LV005-SQLite简介
一、SQLite 简介
1. 数据和数据库
| 数据(Data) | 能够输入计算机并能被计算机程序识别和处理的信息集合。 |
| 数据库(Database) | 数据库是在数据库管理系统管理和控制之下,存放在存储介质上的数据集合。 |
2. 基于嵌入式的数据库
基于嵌入式 Linux 的数据库主要有 SQLite, Firebird, Berkeley DB, eXtremeDB:
| SQLite | 关系型数据库, 体积小, 支持 ACID 事务 |
| Firebird | 关系型数据库, 功能强大, 支持存储过程、SQL 兼容等 |
| Berkeley DB | 它里边并没有数据库服务器的概念,它的程序库直接链接到应用程序中 |
| eXtremeDB | 内存数据库, 运行效率高 |
3. 什么是 SQLite
SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,我们不需要在系统中配置。并且 SQLite 可以直接访问其存储文件。
SQLite 的源代码是 C,其源代码完全开放。SQLite 第一个 Alpha 版本诞生于 2000 年 5 月,它是一个轻量级的嵌入式数据库。
Github 仓库:sqlite/sqlite: Official Git mirror of the SQLite source tree
3.1 Excel?
其实怎么说呢,它大概就像是 Windows 下的 Excel 一样,对于 Windows 下的 Excel,我们首先会创建一个工作簿,就像下图中左侧这样:
![]() | ![]() |
创建完工作簿后,我们就进入了这个工作簿(如右图),在 Excel 中,会提前创建好一个默认的工作表。然后我们就可以开始输入表头,然后,每一行记录一条数据。
3.2 SQLite?
SQLite 呢?我没有用过可视化的工看过 SQLite,但是后续的操作让我觉得,它与上边介绍的 Excel 是很类似的。
(1)首先,我们需要创建一个数据库,这就类似于 Excel 中的工作簿。
(2)然后我们需要再创建数据表,创建数据表的时候是需要有一个数据表的表头的,就是每一列的数据大概是什么类型的数据,每一列的标识是怎样的。这其实就很像 Excel 中的工作表,只不过 Excel 会自动帮我们创建一张工作表,而 SQLite 不会,创建了数据库之后,它里边什么都没有,甚至于我们不创建数据表的情况下,这个数据库根本不会在硬盘上保存。
(3)接着就是向工作表添加数据,查询数据,删除数据,修改数据等等一系列的操作。
所以这样一想,其实跟我们平时使用的 Excel 是很类似的,后边会具体学习如何使用 SQLite 数据库。
4.SQLite 有哪些特点
- 不需要一个单独的服务器进程或操作的系统(无服务器的)。
- 不需要配置,这意味着不需要安装或管理。
- 一个完整的
SQLite数据库是存储在一个单一的跨平台的磁盘文件。 - 占用空间非常小的,是轻量级的,完全配置时小于
400KB,省略可选功能配置时小于250KB,支持数据库大小至2TB。 - 数据库文件可以在不同字节顺序的机器间自由共享。
SQLite是自给自足的,这意味着不需要任何外部的依赖。SQLite事务是完全兼容ACID的,允许从多个进程或线程安全访问。SQLite支持SQL92(SQL2)标准的大多数查询语言的功能。SQLite使用ANSI-C编写的,全部源码大致3万行C代码,并提供了简单和易于使用的API。SQLite可在UNIX(Linux,Mac OS-X,Android,iOS)和Windows(Win32,WinCE,WinRT)中运行。
二、SQLite 安装与启动
这里只说明在 Ubuntu 系统中 SQLite 的安装。其为了后续操作的顺畅,所以这里添加了三个 SQLite 最最基本的操作。
1. 在线安装
首先查看系统中是否已经安装了 SQLite3,可以在命令行中输入以下命令:
sqlite3若未安装过,则会有以下提示:
Command 'sqlite3' not found, but can be installed with:
sudo apt install sqlite3然后我们输入以下命令,等待安装完成即可:
sudo apt install sqlite3然后我们重新输入以下命令:
sqlite3若安装成功,则会显示以下信息:
SQLite version 3.34.1 2021-01-20 14:10:07
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite>sqlite> 表示此处可以开始输入数据库的命令啦。
2. 编译安装
2.1 下载编译源码
我们可以在官网找到可以编译安装的源码包:
https://www.sqlite.org/download.html打开这个网址后,我们会看到有很多的安装包,但是我们选择这个 sqlite-autoconf-xxx.tar.gz 的包下载就可以啦。然后解压:
tar -xvf sqlite-autoconf-3380500.tar.gz或者也可以直接通过 github 仓库拉取源码:
git clone --depth=1 https://github.com/sqlite/sqlite.git2.2 编译安装
- 配置
cd sqlite-autoconf-3380500/
./configure --prefix=/usr/local- 编译安装
make # 编译源码
sudo make install # 安装注意加上 sudo,否则可能会有以下报错:
make[1]: 进入目录“/home/hk/1Software/sqlite-autoconf-3380500”
/usr/bin/mkdir -p '/usr/local/lib'
/bin/bash ./libtool --mode=install /usr/bin/install -c libsqlite3.la '/usr/local/lib'
libtool: install: /usr/bin/install -c .libs/libsqlite3.so.0.8.6 /usr/local/lib/libsqlite3.so.0.8.6
/usr/bin/install: cannot create regular file '/usr/local/lib/libsqlite3.so.0.8.6': Permission denied
make[1]: *** [Makefile:419:install-libLTLIBRARIES] 错误 1
make[1]: 离开目录“/home/hk/1Software/sqlite-autoconf-3380500”
make: *** [Makefile:898:install-am] 错误 2- 检测是否安装完成
sqlite3若安装成功,则会显示以下信息:
SQLite version 3.38.5 2022-05-06 15:25:27
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite>从这里可以看出,我们编译安装的版本比在线安装的要更新一些。
三、SQLite 基本操作
1. 进入 SQLite
其实前边安装的时候都已经启动过了,就是我们直接在终端中输入以下命令:
sqlite3然后便会进入 SQLite 数据库命令提示符下:
SQLite version 3.38.5 2022-05-06 15:25:27
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite>2. 创建 SQLite 数据库
2.1 启动时创建
后续的操作都需要首先有一个数据库才行,所以这里就先了解一下如何创建一个数据库吧,我们在终端中执行以下命令:
sqlite3 DatabaseName.db这样便会在 当前目录 下创建一个名为 DatabaseName.db 的数据库,创建的数据库就类似于我们在 Windows 下的 Execl 中创建了一个工作簿一样。我们现在只是有了数据库,却还没有创建数据表,这个数据表不会自动创建,需要我们后边使用相关的一些语句进行创建。需要注意的是当我们 没有创建数据表的时候,磁盘中不会有该数据库文件的存在。
2.2 .open 创建
已经进入了 sqlite 命令行后,我们可以使用 .open 命令来创建数据库:
sqlite> .open DatabaseName.db上面的命令创建了数据库文件 DatabaseName.db,位于 sqlite3 命令同一目录下。打开已存在数据库也是用 .open 命令,以上命令如果 test.db 存在则直接会打开,不存在就创建它。
3. 退出 SQLite 命令
进入 SQLite 进行一系列操作后,如何退出呢?我们可以在 SQLite 命令提示符后边输入以下命令:
sqlite>.quit这样便可以退出 SQLite 啦。

