当前位置:

首页 > 系统应用 > Linux怎么安装SQLite 3并进行基本操作 Linux嵌入式数据库详解

Linux怎么安装SQLite 3并进行基本操作 Linux嵌入式数据库详解

SQLite是嵌入式常用数据库,Linux多预装命令行工具,C开发需另装开发包。使用时要区分点开头的元命令和以分号结尾的SQL语句,避免操作无响应。注意验证安装、正确使用分号及区分命令类型,可防止常见操作错误。

在嵌入式开发和轻量级数据存储领域,SQLite 几乎是一个绕不开的名字。它以其零配置、无服务器、单文件数据库的特性,赢得了从移动应用到桌面软件的广泛青睐。不过,对于刚接触它的开发者来说,从安装到第一个成功的查询,中间可能会遇到几个不大不小的“门槛”。今天,我们就来把这些常见的坑点捋清楚。

Linux怎么安装SQLite 3并进行基本操作 Linux嵌入式数据库详解

确认系统是否已自带 sqlite3

好消息是,现在绝大多数主流的 Linux 发行版,比如 Ubuntu 22.04 及以后版本、Fedora、Debian 这些,默认就已经预装了 sqlite3 命令行工具。验证方法很简单,打开终端输入 sqlite3 --version,如果看到类似 3.37.2 的版本号输出,那就说明工具本身是可用的。

但这里有个关键点需要划重点:能运行命令行工具,不等于能进行 C 语言开发。这两者是两码事。

新手容易在这里产生误判:

  • 执行 which sqlite3 命令有输出,只代表终端能找到这个程序,但编译 C 程序时需要的头文件(比如 sqlite3.h)可能并不存在。缺少开发包,编译时就会报 #include 找不到文件的错误。
  • 像 CentOS 或 RHEL 8 及以上的系统,默认可能只安装了运行时工具,开发包需要单独安装:sudo yum install sqlite-devel。
  • 在一些为嵌入式环境定制的极简系统镜像里(例如用 Buildroot 或 Yocto 构建的),可能连基础工具都没装,这就需要手动部署二进制文件或者进行交叉编译了。

Ubuntu/Debian 安装 sqlite3 与开发依赖

如果第一步验证时直接报了 command not found,那就需要手动安装。在基于 Debian 的系统上,命令很直观:

sudo apt update
sudo apt install sqlite3 libsqlite3-dev

请注意,libsqlite3-dev 这个包必须安装。没有它,你的 C 程序编译之路就会卡在第一个关卡——sqlite3.h: No such file or directory。对于 Python 开发者来说,情况则好得多,因为 sqlite3 模块是 Python 的标准库,通常无需额外安装。除非你想使用更新的 pysqlite3 来替换内置版本,那才需要动用 pip。

安装完成后,怎么才算真正“可用”了呢?光看版本号还不够,得实际操作一下:

  • 运行 sqlite3 test.db,如果成功进入了 sqlite> 提示符,并且当前目录下生成了 test.db 文件,这才算真正打开(或创建)了一个数据库文件。
  • 如果遇到 unable to open database file 的错误,先别慌,检查一下当前目录是否有写入权限。或者,直接使用绝对路径来指定数据库文件位置,比如 sqlite3 /tmp/test.db。
  • 退出时,记住要用 sqlite 自己的元命令 .exit 或 .quit,直接输入 exit 是没用的,那是退出系统 shell 的命令。

.tables 没输出?先看 .database 和分号有没有漏

很多朋友第一次用 .tables 命令查看表时,发现一片空白,就以为是命令失效了。其实,.tables 这个元命令非常“安静”,它只显示当前已打开的数据库中确实已经创建并提交了的表。没有输出,它也不会提示“空数据库”。

遇到这种情况,可以按以下步骤排查:

  • 首先,输入 .database 命令。这个命令会告诉你当前连接到了哪个数据库文件。如果输出显示 main: :memory:,那说明你启动 sqlite3 时没有指定文件名,程序默认使用了一个内存数据库。所有操作在退出后都会消失。解决办法就是退出重来:sqlite3 myapp.db。
  • 其次,检查你的建表语句。SQL 语句必须以分号 ; 结尾。比如 CREATE TABLE users(id INTEGER, name TEXT);。如果漏掉了这个分号,你输入的语句就只是被缓存起来,并没有真正执行,.tables 自然什么也看不到。
  • 可以用 .schema 命令来验证。如果表真的存在,它会打印出创建该表的 SQL 语句;如果输出是空白,那就确认表确实没建成功。
  • 最后,注意表名的大小写问题。除非建表时用双引号明确指定了表名(如 CREATE TABLE "Log"),否则后续查询时表名必须严格匹配大小写。而 .tables 命令在显示时是不带引号的,这可能会造成一些混淆。

INSERT/SELECT 没反应?分号和点命令别混用

这大概是新手最常卡住的地方了:把 SQL 语句当成点命令来用,或者反过来。sqlite3 的交互模式严格区分两类指令:

  • 点命令:所有以英文句点 . 开头的,都是 sqlite3 自身的元命令,比如设置显示模式的 .headers on、.mode column。这类命令不需要以分号结尾,而且也不能跟在 SQL 语句后面连续书写。
  • SQL 语句:所有标准的 SQL,包括 INSERT、SELECT、UPDATE 等,都必须以分号 ; 结尾。如果忘了加分号,光标会跳到下一行并等待你继续输入,看起来就像是程序“卡住”了,没有任何反应。

这里有几个实用技巧:

  • 一进入 sqlite3 环境,建议先执行 .headers on。这样在执行 SELECT 查询时,结果会显示列名,否则你看到的只是一堆数据,容易误以为查询没结果。
  • 插入数据后,如果不确定是否成功,别只看命令行有没有报错。执行一句 SELECT COUNT(*) FROM 表名; 来验证,记得带上分号。

来看一个完整的操作示例,感受一下正确的节奏:

sqlite3 app.db
sqlite> .headers on
sqlite> .mode column
sqlite> CREATE TABLE tasks(id INTEGER PRIMARY KEY, title TEXT);
sqlite> INSERT INTO tasks(title) VALUES ('learn sqlite');
sqlite> SELECT * FROM tasks;

还有一个容易被忽略的细节是:sqlite3 默认是自动提交模式,但这里的“自动提交”指的是每个以分号结束的独立语句本身就是一个事务。如果你在多行输入一个复杂的 SQL 时漏掉了结尾的分号,那么整个交互会话就会处于一种“悬停”状态——不报错,也不继续执行。在脚本或自动化场景中,这种静默等待尤其危险,往往需要靠 Ctrl+C 来中断。理解并区分好点命令和 SQL 语句,是顺畅使用 sqlite3 命令行工具的关键第一步。

本文内容来源于网友投稿,如有侵权请联系删除。
作者最新文章
系统应用 Linux
相关文章 更多
普通用户选Windows 10家庭版还是专业版?适用场景分析
普通用户选Windows 10家庭版还是专业版?适用场景分析

不确定该选Windows 10家庭版还是专业版?本文解析两者在远程连接、磁盘加密和虚拟化等方面的实际差异,帮你避开性能误区,根据真实使用场景做出最具性价比的选择。

win10断电重启后自动继续更新要怎么阻止
win10断电重启后自动继续更新要怎么阻止

Win10断电重启后总是自动继续更新怎么办?别强行关机,先等恢复完成。教你用暂停更新、设置活动时间和按流量计费连接,减少更新对工作的打扰。注意Win10支持已终止,长期不更新有风险。

win10能不能单独关闭功能更新不关闭安全补丁
win10能不能单独关闭功能更新不关闭安全补丁

解析Windows 10功能更新与质量更新的区别。说明个人家庭版无法永久单独关闭功能更新,专业版可通过组策略延迟功能升级。提醒用户关注Win10支持终止时间,避免误用禁用服务导致安全风险。

win10使用移动热点如何禁止win10自动更新下载
win10使用移动热点如何禁止win10自动更新下载

想知道Win10连手机热点时如何避免偷跑流量?只需将热点网络设为“按流量计费的连接”,即可限制Windows Update自动下载非优先更新。本文提供详细界面导览与设置步骤,助你精准控制后台数据消耗。

U盘启动安装Windows11容易失败?正确装机流程是什么
U盘启动安装Windows11容易失败?正确装机流程是什么

详解 Windows 11 安装的三种路径风险,指导如何制作官方安装介质、正确进入启动菜单、安全清理磁盘分区以及装后验证激活状态,帮助用户避免数据丢失和安装失败。

win10怎么只关闭大版本升级保留安全更新推送
win10怎么只关闭大版本升级保留安全更新推送

想只关闭Win10大版本升级但保留安全补丁?本文区分功能更新与质量更新,详解专业版组策略配置方法,并说明家庭版限制及Win10停止支持后的应对建议。

win10笔记本外出联网如何阻止自动下载更新包
win10笔记本外出联网如何阻止自动下载更新包

Win10笔记本外出使用手机热点时,如何防止自动下载更新包消耗流量?本文详解通过设置“按流量计费的连接”和“暂停更新”来精准控制流量,对比传递优化限速效果,并解释为何不应直接禁用Windows Update服务。

Windows 10家庭版和专业版有什么区别?核心功能对比
Windows 10家庭版和专业版有什么区别?核心功能对比

想知道Windows 10家庭版和专业版怎么选?本文不聊跑分,只讲远程桌面、磁盘加密和组策略等关键功能的实际差异,帮你判断是否真的需要升级到专业版。

Win11专业版和家庭版安装流程有什么区别
Win11专业版和家庭版安装流程有什么区别

Windows 11 家庭版和专业版在安装步骤上并无本质差异,主要区别在于产品密钥激活和功能解锁。本教程指导你如何检查硬件兼容性、使用官方媒体创建工具制作安装盘,以及在安装过程中正确选择版本。同时解析安装后如何验证激活状态,以及从家庭版升级到专业版的正规路径,确保系统稳定且合规。

除了界面,Windows11和Win10还有哪些实质差异
除了界面,Windows11和Win10还有哪些实质差异

除了开始菜单的变化,Windows 11在TPM 2.0安全要求、窗口贴靠布局、驱动兼容性以及系统更新策略上与Windows 10有显著不同。本文详解两者实质差异,助你判断是否值得升级。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

macOS软件
macOS软件

正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

Mac软件 更多
photoshop
photoshop
Windows、macOS 、 iPad

Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

Blender
Blender
Windows、macOS 和 Linux

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。

灵活计算器
灵活计算器
macOS/iOS/Android

灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

WINDOWS 更多
3dmax(3ds max)
3dmax(3ds max)
Windows

Autodesk 3ds Max 是一款专业的三维建模、动画与渲染软件,广泛应用于建筑可视化、游戏开发、影视动画、广告设计和产品展示等领域。

photoshop
photoshop
Windows、macOS 、 iPad

Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

Blender
Blender
Windows、macOS 和 Linux

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。