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 命令行工具的详细信息,包括使用说明、命令选项、示例和其他相关内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/348290.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Aleo测试网回顾-测试网期间共释放了多少积分

上一篇我们整理了Aleo的详细项目介绍,Aleo项目详细介绍-一个兼顾隐私和可编程性的隐私公链-CSDN博客 接下来,让我们盘点下测试网期间的积分释放情况,测试网期间的奖励积分也将是Aleo主网上线后的抛压来源。测试网期间共计释放了4000万的积分…

MATLAB标记点

% clear % clc % close all % % 生成随机时程信号 % fs100; % signalLength fs*60*2; % time 1/fs:1/fs:signalLength/fs; % randomSignal 2*sin(2*pi*0.5*time)3*cos(2*pi*1*time)randn(1, signalLength); function [frequencyPP]funct_peak(signal,Hz) % 生成随机时…

跨境防诈指南 | 了解美国电商持续遭遇的“超额支付”欺诈

目录 常见的“超额支付”欺诈类型 假支票诈骗 虚假信用卡欺诈 基于交易的洗钱诈骗 防止“超额支付”欺诈 增强交易安全保障 加强异常交易识别 借助反欺诈技术识别 加强团队欺诈培训 美国商业委员会的统计报告显示,2023年年1至6月,联邦贸易委员会&#xf…

kafka(三)生产问题

一、线上机器规划 二、线上问题优化 1、消息丢失的情况 消息发送端: a:acks0: 表示producer不需要等待broker确认收到消息的回复就可以继续发送消息;性能高,但很容易丢失消息; b:acks1&#x…

《游戏-01_3D-开发》之—人物动画控制器

创建变量, 创建线, 连接, 选中线会变为蓝色,新增变量, 设置线, 双击子层进入子层, 创建变量, 双击SkillPanel 拖拽好之后返回上一层, 依次连接, 设置线&#…

《WebKit 技术内幕》学习之十四(1):调式机制

第14章 调试机制 支持调试HTML、CSS和JavaScript代码是浏览器或者渲染引擎需要提供的一项非常重要的功能,这里包括两种调试类型:其一是功能,其二是性能。功能调试能够帮助HTML开发者使用单步调试等技术来查找代码中的问题,性能调…

03. 静态路由

文章目录 一. 静态路由概述1.1. 概述1.2. 路由信息获取方式1.3. 路由表的参数1.4. 路由协议的优先级1.5. 最优路由条目优先1.6. 最长前缀匹配原则 二. 实验实操2.1. 实验1:静态路由2.1.1. 实验目的2.1.2. 实验拓扑图2.1.3. 实验步骤(1)配置网…

centos系统安装Ward服务器监控工具

简介 Ward是一个简约美观多系统支持的服务器监控面板 安装 1.首先安装jdk yum install java-1.8.0-openjdk-devel.x86_64 2.下载jar wget 3.启动 java -jar ward-1.8.8.jar 体验 浏览器输入 http://192.168.168.110:4000/ 设置服务名设置为:myserver 端口号:5000 点击…

写一份简单的产品说明书:格式和排版建议

现在的市场竞争那么激烈,拥有一份简洁明了的产品说明书可以说是很重要的。产品说明书不仅向用户提供了对产品的详细了解,还能够树立品牌形象,提升用户体验。 | 一、写一份简单的产品说明书—一些建议 1.创意封面设计 一个吸引人的封面设计能…

wpf控件Expander集合下的像素滚动

项目场景:Expander集合滚动 如下图,有一个Expander集合,且设置 ScrollViewer.VerticalScrollBarVisibility "Auto" 每个Expaner下包含有若干元素,当打开Expader(即IsExpanded "true")时&#…

利用Python实现科学式占卜

一直以来,中式占卜都是基于算命先生手工实现,程序繁琐(往往需要沐浴、计算天时、静心等等流程)。准备工作复杂(通常需要铜钱等道具),计算方法复杂,需要纯手工计算二进制并转换为最终的卦象,为了解决这个问题,笔者基于python实现了一套科学算命工具,用于快速进行占卜…

测试人年终总结:入行三年,下一步怎么走,思想碰撞

原贴地址:入行三年,下一步怎么走,思想碰撞 TesterHome 熟悉环境,进步缓慢;停止思考,举步不前(为什么会有这篇文章why 初心变质:计算机系毕业,毕业时的打算是从测试进&a…

MTP与管理壳(AAS)有异曲同工之妙

在过去的几年中,流程工业中的不同部门(例如制药、精细化学品以及食品和饮料部门)遇到了一系列共同且可比较的新兴挑战。这些挑战包括: 新产品的需求迅速接连不断,更快交货和更低价格的压力,更多定制产品&a…

有向图的拓扑序列——拓扑排序

问题描述 什么是拓扑序列 若一个由图中所有点构成的序列 A 满足:对于图中的每条边 (x,y),x 在 A 中都出现在 y 之前,则称 A 是该图的一个拓扑序列。图中不能有环图中至少存在一个点的入度为0 如何求拓扑序列? 计算出每个节点的…

【Python编程工具】【ssh连接Docker容器】如何使用Docker容器里的python环境,如何调试在容器中的代码

文章目录 方案一览Gateway软件介绍启动容器配置apt源在容器中安装SSH服务器配置SSH服务器生成SSH密钥启动SSH服务为root创建密码连接到容器使用Gateway 方案一览 本篇博客将介绍如何在Docker容器中打开SSH连接服务,以及如何使用JetBrains Gateway软件进行代码调试。…

leetcode-hot100双指针专题

第一题:移动零 题目链接 283. 移动零 - 力扣(LeetCode) 解题思路 我们创建两个指针i,j,第一次遍历的时候指针j用来记录当前面有多少非0元素。即遍历的时候每遇到一个非0元素就将其往数组左边挪,第一次遍历完后&…

【网站项目】基于SSM的249作业提交与查收系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

企业AI应用开发:定制AI解决方案助力企业智能转型

随着人工智能技术的迅猛发展,越来越多的企业开始意识到人工智能在业务中的价值,并将其应用于实际场景中。而在人工智能应用开发领域,定制AI解决方案成为了企业智能转型的重要一环。 那么,什么是企业AI应用开发呢?简单…

java基础:随机生成几个整数存放到数组里并按顺序输出案例分析

思路分析 具体步骤如下: 创建一个数组,用于存放生成的随机数。 定义最大值和最小值,用于限定随机数的取值范围。 使用循环和Random类中的方法生成随机数,并将其添加到数组中。 使用Arrays类中的sort()方法对数组进行排序&#…

fcpx视频剪辑:Final Cut Pro for Mac 10.7.1中文版

Final Cut Pro是由苹果公司开发的一款专业视频编辑软件,主要用于影片的后期剪辑、调色、特效、音频处理等方面。 以下是Final Cut Pro的特点: 高效的视频编辑功能:Final Cut Pro提供了丰富的视频编辑工具,包括多轨道编辑、剪切、修…