首页 游戏 软件 资讯 排行榜 专题
首页
系统平台
Linux系统安装SQLite 3教程与基础操作指南

Linux系统安装SQLite 3教程与基础操作指南

热心网友
75
转载
2026-05-15

在嵌入式开发与轻量级数据存储场景中,SQLite 凭借其零配置、无服务器架构和单一文件数据库的特性,已成为开发者不可或缺的工具。无论是移动应用、桌面软件还是物联网设备,都能看到它的身影。然而,对于初次接触 SQLite 的开发者而言,从环境安装到成功执行第一个查询,过程中可能会遇到一些典型的“入门陷阱”。本文将系统梳理这些常见问题,并提供清晰的解决方案,帮助您快速上手。

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

第一步:检查系统是否已预装 SQLite3

一个好消息是,目前主流的 Linux 发行版,例如 Ubuntu 22.04+、Fedora、Debian 等,通常已默认安装了 sqlite3 命令行工具。验证方法非常简单:打开终端,输入 sqlite3 --version。如果终端返回类似 3.37.2 的版本信息,则表明命令行工具可用。

但这里存在一个关键区别,需要特别注意:能够运行命令行工具,并不等同于具备了 C 语言开发环境。这是两个不同的概念。

新手开发者常在此处产生混淆:

  • 执行 which sqlite3 命令有输出,仅代表系统路径中可以找到该可执行文件。然而,编译 C/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/C++ 程序编译将无法通过,首当其冲的错误便是 sqlite3.h: No such file or directory。对于 Python 开发者而言,情况则友好得多,因为 sqlite3 模块是 Python 的标准库,通常无需额外安装。除非您希望使用更新的 pysqlite3 来替代内置版本,才需要使用 pip 进行安装。

安装完成后,如何确认 SQLite3 已完全就绪?仅查看版本号是不够的,建议进行实际操作验证:

  • 运行 sqlite3 test.db。如果成功进入 sqlite> 提示符,并且当前目录下生成了 test.db 文件,则证明数据库文件已成功打开(或创建)。
  • 若遇到 unable to open database file 错误,请先检查当前目录是否具有写入权限。或者,直接使用绝对路径指定数据库文件位置,例如 sqlite3 /tmp/test.db
  • 退出 SQLite 交互环境时,请使用其专用的元命令 .exit.quit。直接输入 exit 是无效的,该命令用于退出系统 shell。

.tables 命令无输出?先检查 .database 与分号

许多初学者在使用 .tables 命令查看数据库表时,发现输出一片空白,便误以为命令失效。实际上,.tables 这个元命令非常“安静”,它仅显示当前已连接的数据库中确实已创建并提交(committed)的表。对于空数据库,它不会给出任何提示信息。

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

  • 首先,输入 .database 命令。该命令会显示当前连接到的数据库文件信息。如果输出显示为 main: :memory:,则表明您在启动 sqlite3 时未指定文件名,程序默认使用了内存数据库。在此模式下的所有操作在退出后都会丢失。解决方法是退出后重新指定数据库文件启动:sqlite3 myapp.db
  • 其次,仔细检查您的建表 SQL 语句。SQL 语句必须以分号 ; 结尾。例如:CREATE TABLE users(id INTEGER, name TEXT);。如果遗漏了分号,您输入的语句只会被缓存起来,而不会真正执行,因此 .tables 自然无法显示。
  • 可以使用 .schema 命令进行验证。如果表确实存在,该命令会打印出创建该表的原始 SQL 语句;如果输出为空白,则确认表未创建成功。
  • 最后,注意表名的大小写敏感性。除非在建表时使用双引号明确指定了表名(例如 CREATE TABLE "Log"),否则后续查询时必须严格匹配表名的大小写。而 .tables 命令在显示表名时是不带引号的,这有时会造成混淆。

INSERT/SELECT 语句无反应?分清点命令与 SQL 语句

这可能是新手最常遇到的困惑:将 SQL 语句当作点命令使用,或者反之。sqlite3 的交互模式严格区分两类指令:

  • 点命令:所有以英文句点 . 开头的指令,都是 sqlite3 自身的元命令,用于控制环境或获取元信息,例如设置显示格式的 .headers on.mode column。这类命令不需要以分号结尾,并且不能与 SQL 语句在同一行连续书写。
  • SQL 语句:所有标准的 SQL 操作,包括 INSERTSELECTUPDATECREATE TABLE 等,都必须以分号 ; 结尾。如果忘记输入分号,光标会跳至下一行并持续等待输入,程序看起来就像“卡住”了一样,没有任何反应。

这里提供几个实用技巧:

  • 进入 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 语句本身就是一个事务。如果您在多行输入一个复杂的 SQL 语句时遗漏了结尾的分号,那么整个交互会话将处于“挂起”状态——既不报错,也不执行。在编写脚本或进行自动化操作时,这种静默等待尤为危险,通常需要使用 Ctrl+C 来中断。因此,清晰地区分点命令和 SQL 语句,是顺畅使用 sqlite3 命令行工具的关键第一步。

来源:https://www.php.cn/faq/2472054.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

Linux端口占用解决方法与强制结束进程命令教程
系统平台
Linux端口占用解决方法与强制结束进程命令教程

遇到端口被占用,首先使用`lsof-i:端口号`命令查找占用进程的PID。找到后,优先使用`killPID`命令让进程优雅退出。若无效,再考虑使用`kill-9PID`强制终止。使用`killall`或`pkill`时需谨慎,建议附加用户或名称限制以避免误杀。若端口仍显示占用,可能是TCP的TIME_WAIT状态,可使用`ss`命令确认,通常端口可立即复用。

热心网友
05.14
Linux系统CPU漏洞检测指南 Spectre与Meltdown状态查看方法
系统平台
Linux系统CPU漏洞检测指南 Spectre与Meltdown状态查看方法

检测Linux系统是否受Spectre或Meltdown漏洞影响,需直接检查运行状态。最可靠的方法是读取 sys devices system cpu vulnerabilities 目录下的实时状态文件,观察各漏洞的缓解情况。也可使用第三方脚本进行交叉验证,重点关注漏洞状态与微码版本。此外,需确认内核启动参数是否已启用缓解措施,以确保防护生效。

热心网友
05.14
Linux SSH反向隧道配置教程与内网穿透步骤详解
系统平台
Linux SSH反向隧道配置教程与内网穿透步骤详解

配置SSH反向隧道时,常见问题包括隧道端口无法被外部访问、连接不稳定或连接被拒绝。这通常源于服务器SSH默认设置`GatewayPortsno`,导致端口仅绑定在本地回环地址。需修改为`clientspecified`或`yes`并重启服务。命令中`localhost`指内网机地址,若需外部访问,应使用`*:2222`绑定所有接口。为保持连接稳定,建议使用`

热心网友
05.14
Git LFS配置教程 高效管理大型二进制文件指南
系统平台
Git LFS配置教程 高效管理大型二进制文件指南

GitLFS用于管理Git中的大型二进制文件。配置时需先安装git-lfs工具并运行gitlfsinstall初始化。使用前必须用gitlfstrack指定跟踪文件类型并提交 gitattributes,再添加文件。克隆含LFS的仓库时,默认仅下载指针,需运行gitlfspull获取实际文件。若已有仓库误提交大文件,可使用gitlfsmigrate重写历史,

热心网友
05.14
Linux strace命令详解如何查看进程系统调用统计
系统平台
Linux strace命令详解如何查看进程系统调用统计

strace-c用于统计进程系统调用的耗时分布,反映内核态时间占比,而非CPU占用率。其输出百分比代表各调用在追踪总耗时中的比例,与top的CPU观测维度不同,属正常现象。该工具适用于排查启动慢、网络卡顿等问题,但需注意无法统计用户态计算耗时,且应结合时间序列分析以避免误判。

热心网友
05.14

最新APP

宝宝过生日
宝宝过生日
应用辅助 04-07
台球世界
台球世界
体育竞技 04-07
解绳子
解绳子
休闲益智 04-07
骑兵冲突
骑兵冲突
棋牌策略 04-07
三国真龙传
三国真龙传
角色扮演 04-07

热门推荐

银河麒麟系统SSH公钥登录配置与安全远程连接指南
系统平台
银河麒麟系统SSH公钥登录配置与安全远程连接指南

在麒麟操作系统上配置SSH公钥登录,不仅能免去每次输入密码的繁琐,更能显著增强远程连接的安全性。整个过程并不复杂,核心步骤围绕密钥生成、公钥部署和服务端配置展开。本文将详细介绍几种主流方法,涵盖从自动化部署到手动配置,助你轻松完成麒麟系统SSH密钥登录设置。 一、使用ssh-keygen与ssh-c

热心网友
05.15
银河麒麟系统登录循环故障解决方法与桌面修复指南
系统平台
银河麒麟系统登录循环故障解决方法与桌面修复指南

登录循环闪退应先删 Xauthority和 ICEauthority文件、修复 tmp权限为1777、重置ukui mate dconf配置、清理磁盘空间、重装lightdm并重新配置。 在银河麒麟操作系统中输入密码后,屏幕一闪又回到登录界面,这种“登录循环”问题确实令人困扰。这通常并非硬件故障,而

热心网友
05.15
GUSD稳定币详解:项目背景、核心用途与投资风险全解析
web3.0
GUSD稳定币详解:项目背景、核心用途与投资风险全解析

GUSD是一种与美元1:1锚定的合规稳定币,由Gemini交易所发行并受纽约州金融服务部监管。其核心价值在于为加密世界提供透明、受监管的美元等价物,主要应用于交易、支付和价值存储。投资者需关注其中心化托管风险、监管政策变化及智能合约潜在漏洞,理解其作为传统金融与加密市场桥梁的定位与局限。

热心网友
05.15
Win11如何设置默认音频输出设备与调整音量
系统平台
Win11如何设置默认音频输出设备与调整音量

在Windows 11系统中,确保系统音频稳定输出到指定设备(如已连接的耳机或已配对的蓝牙音箱),核心在于正确配置默认音频输出设备。您可以通过任务栏快速设置、系统设置应用、控制面板声音对话框、音量混合器下拉菜单或Win+Ctrl+V快捷键这五种主流方案,实现即时切换或永久性配置,彻底解决声音输出错乱

热心网友
05.15
宏胜集团高管变动与业务外包调整深度解析
AI
宏胜集团高管变动与业务外包调整深度解析

宏胜集团近期发生重要人事与业务调整。总裁办主任叶雅琼、销售总经理吴汀燕、法务部部长周卓盈及生产管理科科长吴潘潘等多位高管已离职,该消息已获接近集团人士证实。与此同时,集团启动了部分非生产业务的外包运作,显示出其正在优化内部结构与运营模式。这一系列变动可能意味着公司正处于战略调整期,旨在聚焦核心业务并

热心网友
05.15