SQLite扩展插件终极集合

news2024/10/6 18:28:56

作为一个嵌入式数据库引擎,SQLite 与其他数据库管理系统相比,缺少了一些功能。不过 SQLite 提供了一个扩展机制,因此我们可以在网络上找到大量的 SQLite 插件。

今天我们介绍的这个插件叫做 sqlean,它打包了许多流行的 SQLite 扩展,提供了清晰的 API,并且进行了测试和文档工作,我们可以将它作为一个 SQLite 扩展的标准库。

包含插件

具体来说,sqlean 打包了以下常用的扩展功能:

  • crypto:哈希函数,编码、解码函数。
  • define:SQL 自定义函数以及动态 SQL。
  • fileio:读写操作系统文件。
  • fuzzy:字符串模糊匹配和语音学搜索。
  • ipaddr:IP 地址操作(不支持 Windows 平台)。
  • math:数学运算函数(SQLite 3.35 开始支持内置这些函数)。
  • regexp:正则表达式搜索和替换。
  • stats:统计函数。
  • text:字符串函数。
  • unicode:Unicode 支持。
  • uuid:UUID 函数。
  • vsv:CSV 文件虚拟表功能。

除了以上扩展之外,我们还可以通过 https://sqlpkg.org/ 搜索和下载大量其他的扩展插件。

下载安装

sqlean 的源代码托管在 GitHub,我们可以选择下载预编译的二进制文件。以 Windows 平台为例,预编译文件包含以下 DLL:

在这里插入图片描述
其中,sqlean.dll 文件包含了其他文件中的内容。我们可以在 SQLite 中加载这些扩展,例如:

sqlite> .load ./sqlean

sqlite> select median(value) from generate_series(1, 99);
50.0

另外一种使用方法就是下载打包的 sqlean 命令行工具,它是一个包含了以上扩展的 SQLite 命令行工具。

在这里插入图片描述
对于图形开发工具,可以使用 load_extension 函数加载插件。例如:

select load_extension('C:\file_path\sqlean');

Python、JavaScript、Node.js、Go 等编程语言中的安装方法可以参考说明文档。

如果选择使用源码编译,可以下载源文件和依赖文件:

make prepare-dist
make download-sqlite
make download-external

然后基于不同平台执行以下编译命令:

make compile-linux
make compile-windows
make compile-macos

编译之后的扩展库位于 dist 目录。

使用示例

crypto 扩展提供了哈希函数和编码解码函数,例如:

sqlean> select hex(md5('SQLite'));
497757A9C5B2EC17DED656170B51C788

sqlean> select encode('SQLite', 'base64');
U1FMaXRl

sqlean> select decode('U1FMaXRl', 'base64');
SQLite

define 扩展支持自定义的 SQL 函数以及动态 SQL 语句,例如:

sqlean> select define('sumn', ':n * (:n + 1) / 2');

sqlean> select sumn(5);
15

sqlean> select undefine('sumn');

sqlean> select eval('select ''SQLite''');
SQLite

fileio 扩展提供了读写文件的功能,例如:

sqlean> select fileio_write('hello.txt', 'hello world');
11

sqlean> select fileio_read('hello.txt');
hello world

sqlean> select fileio_read('hello.txt', 6);
world

regexp 扩展支持正则表达式搜索和替换,例如:

sqlean> select regexp_like('the year is 2024', '[0-9]+');
1

sqlean> select regexp_replace('the year is 2021', '[0-9]+', '2024');
the year is 2024

stats 扩展提供了一些统计函数,例如:

sqlean> select * from generate_series(5, 20, 5);
5
10
15
20

sqlean> select percentile(value, 25) from generate_series(0, 9);
2.25

uuid 扩展提供了最新版本的 UUID 实现,例如:

sqlean> select uuid4();
0e4f4203-0221-4623-8890-d962ad84641d

sqlean> select uuid7();
01903895-4266-73b1-a5bf-9081a6b45d96

详细的扩展说明可以参考说明文档。

相关项目

  • sqlpkg.org:搜索和下载 SQLite 扩展插件。
  • sqlime.org:一个在线 SQLite 运行环境。
  • sqlpkg:SQLite 扩展包管理器。
  • sqlean.py:Python sqlite3 替代模块,包含了 sqlean 扩展插件。
  • sqlean.js:JavaSricpt sqlite3 替代包,包含了 sqlean 扩展插件。
  • shell:SQLite 命令行工具,包含了 sqlean 扩展插件。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Go微服务: redis分布式锁保证数据原子操作的一致性

概述 随着云计算和大数据技术的飞速发展,分布式系统已经成为现代IT架构的重要组成部分在分布式系统中,数据的一致性是一个至关重要的挑战,特别是在并发访问和修改共享资源的场景下分布式锁是一种跨进程、跨机器节点的互斥锁,用于…

Python web 开发 flask 实践

1、前言 前文已经介绍了很多关于 python 的算法和脚本的写法,在本文将开启python的 web 的开发,和java 类似的,对于 web 开发也需要引入框架,对于 python 的 web 开发来说常见的有 flask 和 django 两种,在本文中将要…

Comparison method violates its general contract! 神奇的报错

发生情况 定位到问题代码如下&#xff08;脱敏处理过后&#xff09;&#xff0c;意思是集合排序&#xff0c;如果第一个元素大于第二个元素&#xff0c;比较结果返回1&#xff0c;否则返回-1&#xff0c;这里粗略的认为小于和等于是一样的结果 List<Integer> list Arr…

【Android14 ShellTransitions】(六)SyncGroup完成

这一节的内容在WMCore中&#xff0c;回想我们的场景&#xff0c;是在Launcher启动某一个App&#xff0c;那么参与动画的就是该App对应Task&#xff08;OPEN&#xff09;&#xff0c;以及Launcher App对应的Task&#xff08;TO_BACK&#xff09;。在确定了动画的参与者后&#x…

C#.net6.0语言+B/S架构+前后端分离 手术麻醉信息管理系统源码

C#.net6.0语言&#xff0b;B/S架构前后端分离 手术麻醉信息管理系统源码 什么是手术麻醉信息管理系统 满足医院等级评级需求 满足电子病历评级需求 满足科室需求 术前 1、患者术前评估/诊断 2、术前讨论制定手术方案 3、手术准备 4、术前准备 术中 1、送手术室 2、麻…

openlayers 轨迹回放(历史轨迹),实时轨迹

本篇介绍一下使用openlayers轨迹回放&#xff08;历史轨迹&#xff09;&#xff0c;实时轨迹 1 需求 轨迹回放&#xff08;历史轨迹&#xff09;实时轨迹 2 分析 主要是利用定时器&#xff0c;不断添加feature 轨迹回放&#xff08;历史轨迹&#xff09;&#xff0c;一般是…

Ubuntu安装qemu-guest-agent

系列文章目录 Ubuntu-24.04-live-server-amd64安装界面中文版 Ubuntu-24.04-live-server-amd64启用ssh Ubuntu乌班图安装VIM文本编辑器工具 文章目录 系列文章目录前言一、安装二、启用服务三、效果总结 前言 QEMU Guest Agent&#xff08;简称QEMU GA或QGA&#xff09;在虚拟…

什么是NLP-自然语言处理

什么是NLP-自然语言处理 什么是NLP开通NLP新建项目创建模型 什么是NLP NPL是面向算法小白用户的行业自适应标注、训练和服务平台。该产品支持文本实体抽取、文本分类、关键短语抽取、情感分析、关系抽取、短文本匹配、商品评价解析等 NLP 定制化算法能力&#xff0c;用户无需拥…

御龙掘宝挂机零撸修仙类游戏定制开发源码部署

随着移动游戏的普及&#xff0c;御龙掘宝挂机零撸修仙类游戏定制开发源码部署应运而生。这款游戏结合了传统的修仙元素、挂机游戏的核心玩法以及零撸掘金的商业模式&#xff0c;为玩家提供了一个全新的游戏体验。本文将探讨御龙掘宝挂机零撸修仙类游戏定制开发源码部署的核心技…

linux 安装sftp及使用sftp工具类上传和下载

一、centos7 安装sftp 1.安装 OpenSSH 服务&#xff1a; sudo yum install openssh-server2.启动 SSH 服务&#xff0c;并设置为开机启动&#xff1a; sudo systemctl start sshd sudo systemctl enable sshd3.创建一个新用户&#xff0c;用于SFTP连接&#xff08;替换your_…

Linux:多线程中的互斥与同步

多线程 线程互斥互斥锁互斥锁实现的原理封装原生线程库封装互斥锁 死锁避免死锁的四种方法 线程同步条件变量 线程互斥 在多线程中&#xff0c;如果存在有一个全局变量&#xff0c;那么这个全局变量会被所有执行流所共享。但是&#xff0c;资源共享就会存在一种问题&#xff1…

Ilya出走记:SSI的超级安全革命

图片&#xff5c;OpenAI官网 ©自象限原创 作者丨罗辑、程心 和OpenAI分道扬镳以后&#xff0c;Ilya“神秘而伟大”的事业终于揭开了面纱。 6月20日&#xff0c;前OpenAI核心创始人 Ilya Stuskever&#xff0c;在官宣离职一个月后&#xff0c;Ilya在社交媒体平台公开了…

opencascade AIS_InteractiveContext源码学习2

AIS_InteractiveContext 前言 交互上下文&#xff08;Interactive Context&#xff09;允许您在一个或多个视图器中管理交互对象的图形行为和选择。类方法使这一操作非常透明。需要记住的是&#xff0c;对于已经被交互上下文识别的交互对象&#xff0c;必须使用上下文方法进行…

神经网络学习5-非线性激活

非线性激活&#xff0c;即 这是最常用的 inplaceTrue 原位操作 改变变量本身的值&#xff0c;就是是否输入时若原本有值&#xff0c;是否更换 该函数就是表示&#xff1a;输入小于零时输出0&#xff0c;大于零时保持不变 代码如下&#xff1a; import torch from torch imp…

芋道源码 yudao-cloud 、Boot 文档,开发指南 看全部,破解[芋道快速开发平台 Boot + Cloud]

1、文档全部保存本地部署查看&#xff0c;真香 文档已抓取最新版本&#xff0c;2024.06.21。【唯一遗憾&#xff0c;表结构到2024.04月&#xff0c;已被限制放到知识星球】会员中心&#xff0c;支付中心&#xff0c;CRM&#xff0c;ERP&#xff0c;商城&#xff0c;公众号运行…

利氪科技拿下C轮超级融资,国产智能底盘黑马奔向黄金时代

“智能驾驶遗珠&#xff0c;国产替代富矿。” 这是海通证券在最近一期研报中&#xff0c;描述线控底盘产业的用语。它很巧妙地点明了&#xff0c;这个藏在车身之下的部分&#xff0c;拥有何种特征——稳坐技术体系的核心点位&#xff0c;拥有前景广阔的市场。 事实上&#xf…

生成式AI与开发者:威胁还是机遇?

近期&#xff0c;围绕生成式人工智能&#xff08;AI&#xff09;是否能取代程序员的讨论达到了前所未有的高度。百度的创始人李彦宏甚至预言&#xff0c;未来可能不再需要程序员这一职业。这个话题让很多开发者&#xff0c;包括有几年开发经验的我&#xff0c;感到不安。我记得…

【ArcGIS微课1000例】0120:ArcGIS批量修改符号的样式(轮廓)

ArcGIS可以批量修改符号的样式,如样式、填充颜色、轮廓等等。 文章目录 一、加载实验数据二、土地利用符号化三、批量修改符号样式四、注意事项一、加载实验数据 订阅专栏后,从私信查收专栏配套的完整实验数据包,打开0120.rar中的土地利用数据,如下图所示: 查看属性表: …

Python Web实战:Python+Django+MySQL实现基于Web版的增删改查

项目实战 1.创建项目(sms) File->New Project->Django 稍等片刻&#xff0c;项目的目录结构如下图 项目创建后确认是否已安装Django和mysqlclient解释器&#xff0c;如何确认&#xff1f;file->Settings 如果没有请在Terminal终端输入以下命令完成安装 pip instal…

德璞资本:科技股波动解析,三巫日与日元效应下的市场走向

摘要 近期&#xff0c;美国科技股的表现令人担忧&#xff0c;标普500指数在科技股的拖累下出现下跌。亚洲股市也受到影响&#xff0c;特别是日本和韩国股市。随着期权到期日的临近&#xff0c;市场面临更大的波动风险。本文将详细分析科技股失去动能的原因、三巫日的影响及未来…