x-cmd pkg | sqlite3 - 轻量级的嵌入式关系型数据库
目录
- 简介
- 首次用户
- 技术特点
- 竞品和相关产品
- sqlite 与 x-cmd
- 进一步阅读
简介
sqlite3 是一个轻量级的文件数据库,体积非常小,提供简单优雅而功能强大的 sql 化的数据查询。
通常情况下,sqlite 指的是 SQLite 2.x 版本,而 sqlite3 指的是 SQLite 3.x 版本。相比于 sqlite ,sqlite3 拥有更多功能和改进,是当前广泛使用的版本,也是推荐的版本。
首次用户
-
使用
x sqlite3即可自动下载并使用- 在终端运行
eval "$(curl https://get.x-cmd.com)"即可完成 x 命令安装, 详情参考 x-cmd 官网
- 在终端运行
-
x-cmd 提供1分钟教程,其中包含了 sqlite3 命令常用功能的 demo 示例,可以帮你快速上手 sqlite3 。
-
使用案例:

# 启用 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
技术特点
- 使用简单:
- 无需任何配置和依赖即可直接使用
- 它的数据库文件也非常的简洁直观,所有数据都存储在一个本地的
.db文件中,你可以像对待其他任何文件一样进行拷贝、传输和移动等操作
- 功能强大:
- 支持关系型数据库中的绝大部分通用语法和操作
- 本 sqlite3 的包自带了 JSON 功能,支持使用一些函数和操作符来处理 JSON 值。
- 用户可以开发自定义的函数,可以参考官方文档中的 Extension 这个章节。
- 支持多种系统和多种硬件架构,并在几乎所有主流语言非常成熟的实现和支持
- sqlite3 虽然支持多种文件系统,但是在远程文件系统上,可能会有性能问题,甚至是正确性问题, 详情请参考这篇技术文章。
- sqlite3 同时支持内存数据库模式。
- 当使用
:memory:作为文件名,sqlite3 就会进入内存数据库模式。例如x sqlite3 ":memory:",这个时候,就不会创建任何数据库文件,此时整个数据库都在内存中建立,自然,退出时数据也会全部随着内存回收而销毁。 - 详情可参考官网中关于 Sqlite3 作为内存数据库的介绍
- 当使用
竞品和相关产品
在文件型小型关系型数据库中,sqlite3 可谓一骑绝尘。但是除了众所周知的关系型数据库之外,还有一些小型数据库产品值得大家关注,例如:
- Berkeley DB 是一个风格类似的产品,与之不同是,BDB 不是关系型数据库,提供的是键值对这种数据模型。
- Redis DB 是以效率见长的数据库,虽然其并非关系型数据库,但提供多种特别(从传统数据库角度)但在开发中常用的数据结构,例如 list,set,hash 等。
另外,sqlite 官方基于 Sqlite 提供了一个别具风格的版本管理软件 fossil,sqlite 的源码正是用此来管理。
sqlite 与 x-cmd
- x-cmd 当前主要采用文件方式来管理模块应用的数据,但是对于部分日益复杂的应用,x-cmd 正打算采用 sqlite 来完成部分的数据管理工作。
- x-cmd 的用户可以考虑在复杂的数据管理场景,使用 sqlite 替代基于文件的管理。
- x-cmd 团队认为 sqlite 是一个效率一流(在部分场景,性能和稳定性比文件系统更佳),用户在考虑到数据安全的前提下(例如做好备份),推荐使用。
进一步阅读
- sqlite 官网 提供了非常丰富的使用案例。而且还提供了技术分析文档,不管你是否深度使用 sqlite ,都值得一读。
- 维基百科 - 维基百科页面提供了关于 sqlite 的详细历史和技术细节。
- sqlite3 手册页 - 提供关于 sqlite3 命令行工具的详细信息,包括使用说明、命令选项、示例和其他相关内容。
相关文章:
x-cmd pkg | sqlite3 - 轻量级的嵌入式关系型数据库
目录 简介首次用户 技术特点竞品和相关产品sqlite 与 x-cmd进一步阅读 简介 sqlite3 是一个轻量级的文件数据库,体积非常小,提供简单优雅而功能强大的 sql 化的数据查询。 通常情况下,sqlite 指的是 SQLite 2.x 版本,而 sqlite3 …...
LeetCode —— 43. 字符串相乘
😶🌫️😶🌫️😶🌫️😶🌫️Take your time ! 😶🌫️😶🌫️😶🌫️😶🌫️…...
PalWorld/幻兽帕鲁Ubuntu 22.04 LTS 一键部署脚本
上去就是干! 创建install.sh文件 #!/bin/bashsteam_usersteam log_path/tmp/pal_server.logif getent passwd "$steam_user" >/dev/null 2>&1; thenecho "User $steam_user exists." elseecho "User $steam_user does not exi…...
【Vue】Vue3.0样式隔离
在这里记录一下Vue3.0里面的样式隔离特性,在项目开发过程当中,有时候将样式单独提到了一个文件当中再引入到单组件文件当中,会导致没有样式隔离。 这里阅读Vue官方文档找到了解决办法。 一、scoped 我们了解到的最常见就是scopedÿ…...
Git初识
📙 作者简介 :RO-BERRY 📗 学习方向:致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 📒 日后方向 : 偏向于CPP开发以及大数据方向,欢迎各位关注,谢谢各位的支持 在学习Git之前我们先引入一…...
OpenHarmony隐藏应用(应用不在桌面显示,隐藏应用图标)
注意:此种方式是在OpenHarmony系统中生效 目录 一.找到UnsgnedReleasedProfileTemplate.json文件 二.修改 UnsgnedReleasedProfileTemplate.json文件 三.重新签名 一.找到UnsgnedReleasedProfileTemplate.json文件 什么是U...
2024年新提出的算法:(凤头豪猪优化器)冠豪猪优化算法Crested Porcupine Optimizer(附Matlab代码)
本次介绍一种新的自然启发式元启发式算法——凤头豪猪优化器(Crested Porcupine Optimizer,CPO)。该成果于2024年1月发表在中科院1区SCI top期刊Knowledge-Based Systems(IF 8.8)上。 1、简介 受到凤头豪猪(CP)各种…...
vue3 el-pagination 将组件中英文‘goto’ 修改 为 中文到‘第几’
效果如图: 要求:将英文中Go to 改为到第几 操作如下: <template><div class"paging"><el-config-provider :locale"zhCn"> // 注意:这是重要部分<el-pagination //分页组件根据官…...
【蓝桥杯日记】复盘篇二:分支结构
前言 本篇笔记主要进行复盘的内容是分支结构,通过学习分支结构从而更好巩固之前所学的内容。 目录 前言 目录 🍊1.数的性质 分析: 知识点: 🍅2.闰年判断 说明/提示 分析: 知识点: &am…...
Vulnhub靶机:hackme1
一、介绍 运行环境:Virtualbox(攻击机)和VMware(靶机) 攻击机:kali(192.168.56.106) 靶机:hackme1(192.168.56.107) 目标:获取靶机root权限和flag 靶机下载地址:htt…...
【C/C++ 06】基数排序
基数排序是桶排序的一种,算法思路为: 利用队列进行数据收发创建一个队列数组,数组大小为10,每个元素都是一个队列,存储取模为1~9的数从低位到高位进行数据收发,完成排序适用于数据位不高的情况(…...
Flume1.9基础学习
文章目录 一、Flume 入门概述1、概述2、Flume 基础架构2.1 Agent2.2 Source2.3 Sink2.4 Channel2.5 Event 3、Flume 安装部署3.1 安装地址3.2 安装部署 二、Flume 入门案例1、监控端口数据官方案例1.1 概述1.2 实现步骤 2、实时监控单个追加文件2.1 概述2.2 实现步骤 3、实时监…...
ThinkPHP6的助手函数汇总
原文地址 abort(): 抛出 HTTP 异常 1. /** 2. * 抛出 HTTP 异常 3. * param integer|Response $code 状态码 或者 Response 对象实例 4. * param string $message 错误信息 5. * param array $header 参数 6. */ 7. abort($code, string…...
·备忘录模式
备忘录模式 备忘录模式 备忘录模式 介绍:在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先的状态。 实现:备忘录类,有一个私有状态属性…...
docker-学习-2
docker学习第二天 docker学习第二天1.docker和虚拟机的区别2.docker的底层隔离机制2.1 Namespaces(命名空间)2.1.1 什么是命名空间 2.2 Cgroups2.3 Union file systems2.4 Container format2.5 docker在底层如何做隔离的,如何进行资源限制的? 3. docker命…...
树--二叉树(C语言纯手凹)
目录 目录 1.什么是树?(不深入,仅做了解) 2.树的表示方式 2.1孩子兄弟表示法(左孩子右兄弟) 2.2孩子表示法 2.3双亲表示法 3.什么是二叉树 4.二叉树分类 4.1满二叉树 4.2完全二叉树 4.3二叉搜索树…...
TypeScript(七) 函数
1. TypeScript 函数 1.1. 函数的定义 函数就是包裹在花括号中的代码块,前面使用关键字function。 语法: // An highlighted block function function_name() {// 执行代码 }实例: function test() { // 函数定义console.log("我就是…...
学fpga和还是嵌入式?
具体要选哪个,更多还是看个人喜好还有基础知识结构。 我们先来明白下两者区别在哪? 1、嵌入式:分两部分,第一是嵌入式软件开发,主要与嵌入式操作系统、应用软件等有关。第二是嵌入式硬件开发,需要掌握硬件…...
Day01-变量和数据类型课后练习-参考答案
文章目录 1、输出你最想说的一句话!2、定义所有基本数据类型的变量和字符串变量3、用合适类型的变量存储个人信息并输出4、定义圆周率PI5、简答题 1、输出你最想说的一句话! 编写步骤: 定义类 Homework1,例如:Homewo…...
Docker 数据管理、容器互联、网络与资源控制
一、docker数据管理 管理 Docker 容器中数据主要有两种方式:数据卷(Data volumes)和数据卷容器(Datavolumes containers)。 1、数据卷 数据卷是一个供容器使用的特殊目录,位于容器中。可将宿主机的目录挂载到数据卷上,对数据卷的修改操作立…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器
一、原理介绍 传统滑模观测器采用如下结构: 传统SMO中LPF会带来相位延迟和幅值衰减,并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF),可以去除高次谐波,并且不用相位补偿就可以获得一个误差较小的转子位…...
MyBatis中关于缓存的理解
MyBatis缓存 MyBatis系统当中默认定义两级缓存:一级缓存、二级缓存 默认情况下,只有一级缓存开启(sqlSession级别的缓存)二级缓存需要手动开启配置,需要局域namespace级别的缓存 一级缓存(本地缓存&#…...
32单片机——基本定时器
STM32F103有众多的定时器,其中包括2个基本定时器(TIM6和TIM7)、4个通用定时器(TIM2~TIM5)、2个高级控制定时器(TIM1和TIM8),这些定时器彼此完全独立,不共享任何资源 1、定…...
Qt的学习(一)
1.什么是Qt Qt特指用来进行桌面应用开发(电脑上写的程序)涉及到的一套技术Qt无法开发网页前端,也不能开发移动应用。 客户端开发的重要任务:编写和用户交互的界面。一般来说和用户交互的界面,有两种典型风格&…...
表单设计器拖拽对象时添加属性
背景:因为项目需要。自写设计器。遇到的坑在此记录 使用的拖拽组件时vuedraggable。下面放上局部示例截图。 坑1。draggable标签在拖拽时可以获取到被拖拽的对象属性定义 要使用 :clone, 而不是clone。我想应该是因为draggable标签比较特。另外在使用**:clone时要将…...
MLP实战二:MLP 实现图像数字多分类
任务 实战(二):MLP 实现图像多分类 基于 mnist 数据集,建立 mlp 模型,实现 0-9 数字的十分类 task: 1、实现 mnist 数据载入,可视化图形数字; 2、完成数据预处理:图像数据维度转换与…...
