SQLite(1):初步了解

成元 / 2026-09-28 / 约 1893 字 / 预计阅读 4 分钟 / — 次浏览 < 教程, 笔记 > • [ SQL, SQLite ]

前言

最近复习项目,十分的无趣。我这个人还是喜欢搞些新玩意。

于是以类似“奖励自己”的形式每天给自己留一点时间,这点时间可以随便学一点东西。最近打算学一下 SQLite。

为什么打算学习 SQLite?因为我最近投递简历时,发现很多嵌入式岗位都要求掌握数据库知识,恰巧我也对数据这一块感兴趣。通过查寻,SQLite 是一个嵌入式关系型数据库引擎(也可以说关系型数据库管理系统),而且装机量巨大,可以说是世界上部署最广泛的软件之一了。因此我打算从 SQLite 开始入门数据库。

至于 SQLite 学了后我要用它来干什么之类的我还没想好,毕竟是出于兴趣而学,而非项目需要。就这样吧。

SQLite 介绍

SQLite 是一个进程内的库,实现了自包含、无服务器、零配置、支持事务的 SQL 数据库引擎。简单来说,SQLite 是一个嵌入式关系型数据库引擎。

我刚看到这几个词时,感觉有些绕,但重点其实是“进程内的库”。SQLite 数据库引擎不是一个独立运行的服务,而是和应用程序运行在同一个进程中。应用程序调用 SQLite 库后,由 SQLite 直接读取和修改数据库文件。

这也就是所谓的“无服务器”和“零配置”。使用 SQLite 时,不需要另外启动、配置和维护一个数据库服务器,也不需要通过网络把操作请求发送给数据库服务器。这里的“零配置”并不是说不需要安装任何软件,而是使用数据库引擎前不需要配置一个独立的数据库服务。

通常情况下,SQLite 会把数据库保存在一个磁盘文件中。文件名和扩展名可以自己决定,*.db 只是一种常见写法。事务处理过程中还可能出现日志等辅助文件,这里暂时不展开。

这里主要先说一下 CLI、点命令和 SQL 语句。我前几天刚学习的时候就把他们弄混了。

SQLite CLI

SQLite CLI,也就是 SQLite 的命令行界面,是官方提供的一个命令行程序,程序名为 sqlite3。在终端中输入 sqlite3,就是在启动这个程序。

CLI 本身不是 SQLite 数据库引擎。它接收用户输入,再调用底层的 SQLite 库完成数据库操作。通过 CLI,可以打开数据库、输入 SQL 语句,也可以执行 CLI 自己提供的点命令。

简单来说,SQLite 库负责实际的数据库操作,CLI 则提供了一个供人使用的命令行界面。

SQLite 点命令

在 SQLite CLI 中,以 . 开头的命令叫作点命令,例如:

.help
.open
.tables
.quit

点命令由 CLI 自己处理,不会作为 SQL 交给 SQLite 库解析,因此它们不属于 SQL。点命令必须从一行的开头开始,并完整写在一行中,平时也不需要像 SQL 语句那样以分号结束。

例如,后面会用到的 .quit,就是用来退出 CLI 的点命令。

更多的点命令可以在 CLI 启动后输入 .help 点命令来查寻:

sqlite> .help

SQL 语句

SQL 是一种用于操作关系型数据库的语言,主要描述“我要对关系型数据做什么”。注意 SQL 不规定数据库管理系统底层必须如何部署、如何保存数据,这些是数据库管理系统操心的。

很多关系型数据库管理系统都实现并支持 SQL 语言,比如本文说的 SQLite 就使用 SQL 作为主要的数据库操作语言。

在 SQLite CLI 中输入 SQL 语句后,CLI 会把它交给 SQLite 库执行。以后通过 C/C++、Python 等语言使用 SQLite 时,也可以通过相应的接口把 SQL 语句交给 SQLite 库执行。

SQL 语句可以用于创建表、查询数据以及增加、修改和删除数据。在 CLI 中,一条完整的 SQL 语句通常需要以分号结束。

我现在先这样区分它们:

这篇文章先不学习具体的 SQL 语法。

工具安装

我的主力机和学习机使用的都是 Ubuntu 或其他 Debian 系 Linux 发行版,因此这里就只记录一下在 Debian 系 Linux 下的安装方式。

CLI 工具

直接在终端中输入:

sudo apt install sqlite3

APT 包管理器会自动完成安装。如果提示找不到软件包,或者本地的软件包信息已经过期,可以先更新软件包信息再重新安装:

sudo apt update
sudo apt install sqlite3

如果还是安装失败,就需要根据终端中的具体错误继续排查。如果确实需要从源码安装,可以到 SQLite 的下载页面获取源码,然后在本地编译并安装:

$ tar xvzf sqlite-autoconf-3530400.tar.gz
$ cd sqlite-autoconf-3530400
$ ./configure --prefix=/usr/local
$ make
$ make install

具体请参考官方的编译文档。

安装后,可以先查看 SQLite CLI 的版本:

sqlite3 --version

也可以直接在终端中输入 sqlite3 启动 CLI。

安装成功后,启动时会看到类似下面的内容,版本号可能和我的不一样:

$ sqlite3
SQLite version 3.45.1 2024-01-30 16:01:20
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite>

这说明 SQLite CLI 已经能正常启动。如果想退出,可以输入前面提到的 .quit 点命令:

sqlite> .quit

图形化工具

如果不喜欢使用 CLI 软件,也有图形化工具可供使用。我推荐的是开源软件 DB Broswer for SDLite。

其 Github 仓库见:https://github.com/sqlitebrowser/sqlitebrowser

官方下载链接见:https://sqlitebrowser.org/dl/

这里提一下,在 Debian 系 Linux 下可以直接使用 APT 安装:

sudo apt install sqlitebrowser

不过官方也提到:

Note that Debian focuses more on stability rather than newest features. 

Therefore packages will typically contain some older version, compared to the latest release.

对我而言没有影响就是了,由相关需求的注意一下。

参考资料