SQLite3 实践教程


SQLite3 实践教程

文章插图
应用程序经常需要保存数据 。无论你的用户是创建简单的文本文档、复杂的图形布局、游戏进度还是错综复杂的客户和订单号列表,软件通常都意味着生成数据 。有很多方法可以存储数据以供重复使用 。你可以将文本转储为 INI、YAML、XML 或 JSON 等配置格式,可以输出原始的二进制数据,也可以将数据存储在结构化数据库中 。SQLite 是一个自包含的、轻量级数据库,可轻松创建、解析、查询、修改和传输数据 。
  • 下载 SQLite3 备忘录
SQLite 专用于 公共领域,ublicDomain">从技术上讲,这意味着它没有版权,因此不需要许可证 。如果你需要许可证,则可以购买所有权担保 。SQLite 非常常见,大约有 1 万亿个 SQLite 数据库正在使用中 。在每个基于 Webkit 的 Web 浏览器,现代电视机,汽车多媒体系统以及无数其他软件应用程序中,Android 和 IOS 设备, macOS 和 windows 10 计算机,大多数 linux 系统上都包含多个这种数据库 。
总而言之,它是用于存储和组织数据的一个可靠而简单的系统 。
 
安装你的系统上可能已经有 SQLite 库,但是你需要安装其命令行工具才能直接使用它 。在 Linux上,你可能已经安装了这些工具 。该工具提供的命令是 sqlite3(而不仅仅是 sqlite) 。
如果没有在你的 Linux 或 BSD 上安装 SQLite,你则可以从软件仓库中或 ports 树中安装 SQLite,也可以从源代码或已编译的二进制文件进行下载并安装 。
在 macOS 或 Windows 上,你可以从 sqlite.org下载并安装 SQLite 工具 。
 
使用 SQLite通过编程语言与数据库进行交互是很常见的 。因此,像 JAVA、Python、Lua、php、Ruby、C++ 以及其他编程语言都提供了 SQLite 的接口(或“绑定”) 。但是,在使用这些库之前,了解数据库引擎的实际情况以及为什么你对数据库的选择很重要是有帮助的 。本文向你介绍 SQLite 和 sqlite3命令,以便你熟悉该数据库如何处理数据的基础知识 。
 
与 SQLite 交互你可以使用 sqlite3命令与 SQLite 进行交互 。该命令提供了一个交互式的 shell 程序,以便你可以查看和更新数据库 。
$ sqlite3SQLite version 3.34.0 2020-12-01 16:14:00Enter ".help" for usage hints.Connected to a transient in-memory database.Use ".open FILENAME" to reopen on a persistent database.sqlite>该命令将你使你处于 SQLite 的子 shell 中,因此现在的提示符是 SQLite 的提示符 。你以前使用的 Bash 命令在这里将不再适用 。你必须使用 SQLite 命令 。要查看 SQLite 命令列表,请输入 .help
sqlite> .help.archive ...Manage SQL archives.auth ON|OFFSHOW authorizer callbacks.backup ?DB? FILEBackup DB (DEFAULT "main") TO FILE.bail ON|offStop after hitting an error.DEFAULT OFF.binary ON|offTurn BINARY output ON OR off.DEFAULT OFF.cd DIRECTORYCHANGE the working directory TO DIRECTORY[...]这些命令中的其中一些是二进制的,而其他一些则需要唯一的参数(如文件名、路径等) 。这些是 SQLite Shell 的管理命令,不是用于数据库查询 。数据库以结构化查询语言(SQL)进行查询,许多 SQLite 查询与你从 MySQL和MariaDB数据库中已经知道的查询相同 。但是,数据类型和函数有所不同,因此,如果你熟悉另一个数据库,请特别注意细微的差异 。
 
创建数据库启动 SQLite 时,可以打开内存数据库,也可以选择要打开的数据库:
$ sqlite3 mydatabase.db如果还没有数据库,则可以在 SQLite 提示符下创建一个数据库:
sqlite> .open mydatabase.db现在,你的硬盘驱动器上有一个空文件,可以用作 SQLite 数据库 。文件扩展名 .db是任意的 。你也可以使用.sqlite或任何你想要的后缀 。
 
创建一个表数据库包含一些表table,可以将其可视化为电子表格 。有许多的行(在数据库中称为记录record)和列 。行和列的交集称为字段field 。
结构化查询语言(SQL)以其提供的内容而命名:一种以可预测且一致的语法查询数据库内容以接收有用的结果的方法 。SQL 读起来很像普通的英语句子,即使有点机械化 。当前,你的数据库是一个没有任何表的空数据库 。
你可以使用 CREATE来创建一个新表,你可以和IF NOT EXISTS结合使用 。以便不会破坏现在已有的同名的表 。
你无法在 SQLite 中创建一个没有任何字段的空表,因此在尝试 


推荐阅读