当前位置: 首页 > news >正文

x-cmd pkg | sqlite3 - 轻量级的嵌入式关系型数据库

目录

    • 简介
    • 首次用户
  • 技术特点
    • 竞品和相关产品
    • sqlite 与 x-cmd
    • 进一步阅读

简介

sqlite3 是一个轻量级的文件数据库,体积非常小,提供简单优雅而功能强大的 sql 化的数据查询。
通常情况下,sqlite 指的是 SQLite 2.x 版本,而 sqlite3 指的是 SQLite 3.x 版本。相比于 sqlite ,sqlite3 拥有更多功能和改进,是当前广泛使用的版本,也是推荐的版本。

首次用户

  1. 使用 x sqlite3 即可自动下载并使用

    • 在终端运行 eval "$(curl https://get.x-cmd.com)" 即可完成 x 命令安装, 详情参考 x-cmd 官网
  2. x-cmd 提供1分钟教程,其中包含了 sqlite3 命令常用功能的 demo 示例,可以帮你快速上手 sqlite3 。

  3. 使用案例:

    sqlite3-1min-cn

    # 启用 sqlite3
    x sqlite3# 打开并使用 ex1.db 数据库文件
    .open ex1.db# 查看当前使用的数据库
    .database# 显示当前数据库中的所有表
    .tables# 显示当前数据库中的所有表的结构
    .schema# 将数据库内容呈现为 SQL
    .dump# 查看当前输出模式,并将输出模式设置为 column
    .mode column# 从 csv 文件中导入数据到指定的表
    .import --csv data.csv pe_table# 将 example_table 表的数据导出到 csv 文件
    .headers on
    .mode csv
    .once ./dataout.csv# 退出 sqlite3 命令行
    .quite
    

技术特点

  1. 使用简单:
    1. 无需任何配置和依赖即可直接使用
    2. 它的数据库文件也非常的简洁直观,所有数据都存储在一个本地的 .db 文件中,你可以像对待其他任何文件一样进行拷贝、传输和移动等操作
  2. 功能强大:
    1. 支持关系型数据库中的绝大部分通用语法和操作
    2. 本 sqlite3 的包自带了 JSON 功能,支持使用一些函数和操作符来处理 JSON 值。
    3. 用户可以开发自定义的函数,可以参考官方文档中的 Extension 这个章节。
  3. 支持多种系统和多种硬件架构,并在几乎所有主流语言非常成熟的实现和支持
  4. sqlite3 虽然支持多种文件系统,但是在远程文件系统上,可能会有性能问题,甚至是正确性问题, 详情请参考这篇技术文章。
  5. sqlite3 同时支持内存数据库模式。
    1. 当使用 :memory: 作为文件名,sqlite3 就会进入内存数据库模式。例如 x sqlite3 ":memory:",这个时候,就不会创建任何数据库文件,此时整个数据库都在内存中建立,自然,退出时数据也会全部随着内存回收而销毁。
    2. 详情可参考官网中关于 Sqlite3 作为内存数据库的介绍

竞品和相关产品

在文件型小型关系型数据库中,sqlite3 可谓一骑绝尘。但是除了众所周知的关系型数据库之外,还有一些小型数据库产品值得大家关注,例如:

  1. Berkeley DB 是一个风格类似的产品,与之不同是,BDB 不是关系型数据库,提供的是键值对这种数据模型。
  2. Redis DB 是以效率见长的数据库,虽然其并非关系型数据库,但提供多种特别(从传统数据库角度)但在开发中常用的数据结构,例如 list,set,hash 等。

另外,sqlite 官方基于 Sqlite 提供了一个别具风格的版本管理软件 fossil,sqlite 的源码正是用此来管理。

sqlite 与 x-cmd

  1. x-cmd 当前主要采用文件方式来管理模块应用的数据,但是对于部分日益复杂的应用,x-cmd 正打算采用 sqlite 来完成部分的数据管理工作。
  2. x-cmd 的用户可以考虑在复杂的数据管理场景,使用 sqlite 替代基于文件的管理。
  3. x-cmd 团队认为 sqlite 是一个效率一流(在部分场景,性能和稳定性比文件系统更佳),用户在考虑到数据安全的前提下(例如做好备份),推荐使用。

进一步阅读

  • sqlite 官网 提供了非常丰富的使用案例。而且还提供了技术分析文档,不管你是否深度使用 sqlite ,都值得一读。
  • 维基百科 - 维基百科页面提供了关于 sqlite 的详细历史和技术细节。
  • sqlite3 手册页 - 提供关于 sqlite3 命令行工具的详细信息,包括使用说明、命令选项、示例和其他相关内容。
http://www.lryc.cn/news/290584.html

相关文章:

  • LeetCode —— 43. 字符串相乘
  • PalWorld/幻兽帕鲁Ubuntu 22.04 LTS 一键部署脚本
  • 【Vue】Vue3.0样式隔离
  • Git初识
  • OpenHarmony隐藏应用(应用不在桌面显示,隐藏应用图标)
  • 2024年新提出的算法:(凤头豪猪优化器)冠豪猪优化算法Crested Porcupine Optimizer(附Matlab代码)
  • vue3 el-pagination 将组件中英文‘goto’ 修改 为 中文到‘第几’
  • 【蓝桥杯日记】复盘篇二:分支结构
  • Vulnhub靶机:hackme1
  • 【C/C++ 06】基数排序
  • Flume1.9基础学习
  • ThinkPHP6的助手函数汇总
  • ·备忘录模式
  • docker-学习-2
  • 树--二叉树(C语言纯手凹)
  • TypeScript(七) 函数
  • 学fpga和还是嵌入式?
  • Day01-变量和数据类型课后练习-参考答案
  • Docker 数据管理、容器互联、网络与资源控制
  • 密码加密——MD5与BCryptPasswordEncoder
  • 利用外卖系统源码构建高效的在线订餐平台
  • 数据分析数据 -(用数据讲故事)
  • 如何运用5W2H分析法分析自己适合哪种办公室
  • 为什么考虑电子采购而非传统采购?
  • 【git】git update-index --assume-unchanged(不改动.gitignore实现忽略文件)
  • 科普类——无压缩图像传输带宽的计算(七)
  • 云原生周刊:K8s 1.26 到 1.29 版本的更新 | 2024.1.29
  • 手机壳也能散热了?
  • 《微信小程序开发从入门到实战》学习九十七
  • 二极管漏电流对单片机ad采样偏差的影响