SQLite扩展插件终极集合

作为一个嵌入式数据库引擎,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 ./sqleansqlite> 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'));
497757A9C5B2EC17DED656170B51C788sqlean> select encode('SQLite', 'base64');
U1FMaXRlsqlean> select decode('U1FMaXRl', 'base64');
SQLite

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

sqlean> select define('sumn', ':n * (:n + 1) / 2');sqlean> select sumn(5);
15sqlean> select undefine('sumn');sqlean> select eval('select ''SQLite''');
SQLite

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

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

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

sqlean> select regexp_like('the year is 2024', '[0-9]+');
1sqlean> 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
20sqlean> select percentile(value, 25) from generate_series(0, 9);
2.25

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

sqlean> select uuid4();
0e4f4203-0221-4623-8890-d962ad84641dsqlean> 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.mzph.cn/web/31491.shtml

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

相关文章

消息队列kafka中间件详解:案例解析(第10天)

系列文章目录 1- 消息队列(熟悉)2- Kafka的基本介绍(掌握架构,其他了解)3- Kafka的相关使用(掌握kafka常用shell命令)4- Kafka的Python API的操作(熟悉) 文章目录 系列文…

java-BigDecimal 的使用

总结 BigDecimal是Java中的一个强大工具,用于处理高精度的数值计算,特别是在财务和科学计算中。它通过提供对精度和舍入行为的精细控制,解决了浮点数运算中的精度问题。以下是对BigDecimal的进一步总结和扩展。 9. BigDecimal的使用示例 9.…

kafka的基本模型

kafka官网 线程和线程之间的数据交互 在jvm里不同的线程有自己的栈内存,但彼此之间交互可以在共享的内存中进行,即堆内存,堆内存会将这些消息放到队列中,具体实现jvm见,栈内存各自维护,堆内存大家共享 进…

微信小程序UI组件库合集

文章目录 前言参考地址推荐组件库1.官方WeUI(建议使用☆☆☆☆)2.ColorUI(广告很多,不建议使用)3.vantUI又名:ZanUI(操作简单,建议使用☆☆☆☆)4.MinUI(比较…

STM32---SPI通信协议(小白入、含源码)

写在前面:在单片机的学习过程中,各种通信协议的学习是必不可少的,在前面我们学习了串口通信、IIC通信,本节我们来认识一下SPI通信协议。包括其SPI基本概念、NORFLASH芯片的介绍以及相关的例程实验。 目录 一、SPI介绍 1.1什么是…

Python 用相对名称来导入包中的子模块

文章目录 需求方案讨论绝对路径缺点 注意事项相对路径导入不能跳出定义包的目录在 Python 中,位于脚本顶层目录的模块(即直接运行的脚本)不能使用相对导入。 需求 我们将代码组织成了一个包,想从其中一个子模块中导入另一个子模块…

【小白专用24.6.18】C# SqlSugar:连接数据库实现简单的,增、删、改、查

【小白专用 已验证24.6.18】C# SqlSugar操作MySQL数据库实现增删改查-CSDN博客 通过NuGet包管理器搜索SqlSugar(MySql还要安装MySql.Data、Newtonsoft.Json)包并安装 SqlSugarClient db new SqlSugarClient(new ConnectionConfig(){ConnectionString …

中国信通院专访镜舟科技:开源商业化走了多远?

据《2023 中国开源发展蓝皮书》显示,随着数字化转型的深入,开源生态在去年快速发展,开源商业化的模式也逐渐成型。镜舟科技作为开源商业化的先行者,也在技术创新和商业拓展中稳步增长。 日前,中国信息通信研究院&…

Python基础教程(二十八):pip模块

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝&#x1f49…

【深度学习】TensorRT模型转换环境

Ubuntu 22.04 LTS、Cuda 12.3、Tensorrt 8.6.1、Python 3.10、A10G GPU 要在 Ubuntu 22.04 LTS 上使用 TensorRT 将模型转换为 TensorRT 格式,您需要安装一些必要的环境和依赖项。以下是详细的步骤: 更新系统: sudo apt update sudo apt upg…

NGINX_十二 nginx 地址重写 rewrite

十二 nginx 地址重写 rewrite 1 什么是Rewrite Rewrite对称URL Rewrite,即URL重写,就是把传入Web的请求重定向到其他URL的过程。URL Rewrite最常见的应用是URL伪静态化,是将动态页面显示为静态页面方式的一种技术。比如 http://www.123.com…

MVVM模式理解(基于Qt分析)

MVVM(Model-View-ViewModel)软件框架可以有效分离用户界面和业务逻辑,提升代码的可维护性和可测试性。下面我们简要的实现一个MVVM框架示例,并说明其特点和优势。 框架结构 Model(模型):负责数…

【Ubuntu开发入门之“悟空派wukongpi/香橙派orangepi H3 linux开发③kernel移植调试“】

Ubuntu开发入门之"悟空派wukongpi/香橙派orangepi H3 linux开发③kernel移植调试 问题描述解决方法获取源码内核适配和编译制作TF卡分区,以备存放各个分区和文件根文件系统拷贝郑重声明:本人原创博文,都是实战,均经过实际项目验证出货的 转载请标明出处:攻城狮2015 Pla…

2024097期传足14场胜负前瞻

2024097期售止时间为6月22日(周六)20点30分,敬请留意: 本期14场由欧洲杯、美洲杯、美职联组成,1.5以下赔率2场,1.5-2.0赔率10场,其他场次是平半盘、平盘。本期14场难度中等。以下为基础盘前瞻&a…

【JavaScript脚本宇宙】驾驭异步:探索六种流行响应式编程库

掌握数据流的艺术:六种响应式编程库全面比较 前言 本文将对几种流行的JavaScript数据流库进行比较,包括RxJS、Bacon.js、Kefir.js、Most.js、xstream和Highland.js。每种库都有独特的特点和优势,适用于不同的场景。通过了解这些库的功能、使…

涉密文件当废品卖,涉密文件如何安全便捷销毁?

前几天,一位大爷在废品收购站买到四本涉及军事的涉密文件登上热搜,此事源于相关工作人员没有按照涉密文件销毁流程,缺乏保密意识,将200余本涉密资料当做废品出售,导致涉密信息在外部曝光。 无论是在企业内部还是在机关…

合并两个可能为空的List 的方法记录

在日常开发中,我们经常需要将两个列表(List)合并成一个新的列表。这个任务看似简单,但如果其中一个或两个列表可能为 null,处理起来就需要注意一些细节。本文将介绍一种使用 Java 8 Stream API 的简洁方法来完成这一任…

【APP移动端性能测试】第三节.性能测试工具GT和常见的性能测试点(上)

文章目录 前言一、性能测试工具GT 1.1 性能测试工具GT的基本介绍 1.2 性能测试工具GT的基本使用二、CPU性能测试 2.1 CPU说明 2.2 CPU测试步骤 2.3 监控结果保存到目录文件三、内存性能测试 3.1 内存知识点介绍 3.2 常见的内存问题和现象 …

docker将容器打包提交为镜像,再打包成tar包

将容器打包成镜像可以通过以下步骤来实现。这里以 Docker 为例,假设你已经安装了 Docker 并且有一个正在运行的容器。 1. 找到正在运行的容器 首先,你需要找到你想要打包成镜像的容器的 ID 或者名字。可以使用以下命令查看所有正在运行的容器&#xff…

【0-1系列】从0-1快速了解搜索引擎是什么以及怎么用(上)

友情链接 社区开发版安装部署与使用教程社区版家族V2024.5版本更新说明 START>>1.快速了解搜索引擎 什么是搜索引擎数据库 搜索引擎数据库是一类专门用于数据内容搜索的NoSQL数据库,是非结构化大数据处理分析领域中重要的基础支撑软件。 伴随互联网、移动…