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.rhkb.cn/news/247740.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【AI视野·今日NLP 自然语言处理论文速览 第七十六期】Fri, 12 Jan 2024

AI视野今日CS.NLP 自然语言处理论文速览 Fri, 12 Jan 2024 Totally 60 papers 👉上期速览✈更多精彩请移步主页 Daily Computation and Language Papers Axis Tour: Word Tour Determines the Order of Axes in ICA-transformed Embeddings Authors Hiroaki Yamagi…

Apache Shiro 安全框架

前言 Apache Shiro 是一个强大且容易使用的Java安全矿建,执行身份验证,授权,密码和会话管理。使用Shiro的易于理解的API您可以快速轻松的获得任何应用程序直到大的项目。 一丶什么是Shiro 1.Shiro是什么 Apache Shiro是一个强大且易于使用…

第九节HarmonyOS 常用基础组件14-DataPanel

1、描述 数据面板组件,用于将多个数据占比情况使用占比图进行展示。 2、接口 DataPanel(options:{values: number[], max?: numner, type?: DataPanelType}) 3、参数 参数名 参数类型 必填 描述 values number[] 是 数据值列表,最多含9条数…

【数据分析】numpy基础第二天

文章目录 前言数组的形状变换reshape的基本介绍使用reshapereshape([10, 1])运行结果reshape自动判断形状reshape([-1, 1])运行结果 合并数组使用vstack和hstackvstack和hstack的运行结果使用concatenateconcatenate运行结果 分割数组array_split运行结果 数组的条件筛选条件筛…

C++ 数论相关题目:卡特兰数应用、快速幂求组合数。满足条件的01序列

给定 n 个 0 和 n 个 1 ,它们将按照某种顺序排成长度为 2n 的序列,求它们能排列成的所有序列中,能够满足任意前缀序列中 0 的个数都不少于 1 的个数的序列有多少个。 输出的答案对 1097 取模。 输入格式 共一行,包含整数 n 。 …

【计网·湖科大·思科】实验五 IPV4地址-分类地址和构建超网

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要&…

highcharts.css文件的样式覆盖了options的series里面的color问题解决

文章目录 一、问题背景二、解决问题 一、问题背景 原本的charts我们的每个数据是有对应的color显示的,如下图: 后面我们系统做了黑白模式,引入了highcharts的css文件,结果highcharts的css文件中class的颜色样式覆盖了我们数据中的…

Rollup:打包 TypeScript - React 组件库

调用浏览器摄像头拍照组件 1、前提1、安装依赖2、添加 rollup.config.js 配置3、修改 package.json3.1 添加打包命令3.2 添加组件入口3.3 添加组件声明入口3.4 浏览器支持 1、前提 1.1 通过 create-react-app take-photo --template 创建前端应用 1.2 添加组件 TakePhoto (拍照…

差异性分析汇总

在做科研写论文的时候,我们总会听说要对数据进行差异性分析,那么何为差异性分析?差异性分析常用的方法有哪些?这些方法应该如何进行分类?如何选择?差异性分析的数据格式是怎么样的?软件如何操作…

如何在Win系统安装Jupyter Notbook并实现无公网ip远程访问本地笔记

文章目录 1.前言2.Jupyter Notebook的安装2.1 Jupyter Notebook下载安装2.2 Jupyter Notebook的配置2.3 Cpolar下载安装 3.Cpolar端口设置3.1 Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 在数据分析工作中,使用最多的无疑就是各种函数、图表、…

C语言-指针的基本知识(上)

一、关于内存 存储器:存储数据器件 外存 外存又叫外部存储器,长期存放数据,掉电不丢失数据 常见的外存设备:硬盘、flash、rom、u盘、光盘、磁带 内存 内存又叫内部存储器,暂时存放数据,掉电数据…

Android 水印效果

Android 水印效果 本文主要介绍下android 中水印的实现效果. 实现的方式有多种,就不一一赘述了, 本文就是通过自定义drawable来实现水印. 不多说,直接上代码吧: import android.content.Context; import android.content.res.Resources; import android.graphics.Canvas; i…

freeRTOS

1.新建一个无FreeRTOS的工程,取名为Motor 根据风扇模块PDF原理图和操作文档让风扇转动 1.新建一个包含FreeRTOS的工程,取名为Semaphore 2.根据信号量的文档先预习信号量的创建步骤和API函数 3.完成使用信号量访问共享资源的实验 具体步骤: 创…

Unity制作右键菜单(自适应分辨率)

一、需求 右键触发打开菜单,左键在内部可选择选项,左键单击菜单范围外关闭。难点在于屏幕坐标系,鼠标位置,UI位置之间的关系。 二、理论 前置知识: unity中,用RectTransform对象的position.x和position.y表…

vscode连不上虚拟机,一直密码错误

最近在做毕设,但是vscode使用连接不上虚拟机,我以为是网络配置的问题,一顿查阅没找到原因。 后来查了一下ssh的日志,发现ssh有消息,但是也提示密码错误。 没找到密码配置格式什么的,经查看sshd配置文件发现…

C语言第十二弹--扫雷

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 扫雷 1、扫雷游戏分析和设计 1.1、扫雷游戏的功能说明 1.2 游戏的分析和设计 1.2.1、数据结构的分析 1.2.2、文件结构设计 2、扫雷游戏的结构分析 2.1、用…

自动化软件开发常用代码分享!

随着科技的发展,自动化软件开发已经成为现代企业不可或缺的一部分,自动化软件可以帮助企业提高生产效率、降低成本、优化业务流程。 而在自动化软件开发中,代码是实现这些功能的基础,本文将分享一些常用的自动化软件开发代码&…

【JSON2WEB】03 go的模板包html/template的使用

Go text/template 是 Go 语言标准库中的一个模板引擎,用于生成文本输出。它使用类似于 HTML 的模板语言,可以将数据和模板结合起来,生成最终的文本输出。 Go html/template包实现了数据驱动的模板,用于生成可防止代码注入的安全的…

计算机网络·网络层

网络层 网络层提供的两种服务 争论: 网络层应该向运输层提供怎样的服务?面向连接还是无连接? 在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统? 2 种观点: 面向连接的可靠交付。 无连…

macOS与Linux相互投屏的方法

很多人面对跨系统投屏都望而却步。其实只要找对方法,两台不同系统的电脑也可以相互投屏。 今天就来看看Linux系统和macOS系统如何相互投屏! 第一步,将Linux系统电脑和macOS系统电脑连接同一网络。假设是macOS系统投屏到Linux系统,…