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的操作(熟悉) 文章目录 系列文…

kafka的基本模型

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

微信小程序UI组件库合集

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

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

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

【小白专用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…

NGINX_十二 nginx 地址重写 rewrite

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

2024097期传足14场胜负前瞻

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

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

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

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

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

DSP应用市场的大蛋糕,国产厂商能吃下多少?

DSP是数字信号处理器(Digital Signal Processor)的简称,是一种专门用于高速数学运算的微处理器。DSP能够快速且准确地处理数字信号,同时具备可编程和低功耗等特点,如今在各个领域发挥着越来越重要的作用。 &#xff08…

【目标检测】图解 DETR 系统框图

简略版本 Backbone:CNN backbone 学习图像的 2D 特征Positional Encoding:将 2D 特征展平,并对其使用位置编码(positional encoding)Encoder:经过 Transformer 的 encoderDecoder:encoder 的输出…

spring-gateway配置说明

在开发过程中遇到的一些配置问题,记录下来以供参考 spring-gateway版本是2.2.9-release,使用的spring cloud dependence 是 Hoxton.SR12 在依赖eureka 服务发现并自动将发现服务器加入到router中的时候,需要指定对应的服务进行添加,根据文档…

技术分享 | 基于 API 解析的 Python 爬虫

最近各大高校纷纷翻拍 Coincidence 抖肩舞,需要对这种流行现象进行数据分析。数据分析首先需要有数据,本文介绍了爬取 B 站相应视频的评论、弹幕、播放量、点赞数等数据的方法。爬虫有多种实现方法,大型的网络爬虫多基于成熟的爬虫框架&#…

vue 登录

1.创建项目 Set-ExecutionPolicy RemoteSigned npm install -g yarn yarn add axios yarn add element-pluspackage.json {"name": "tom6","version": "0.1.0","private": true,"scripts": {"serve": &…

域内攻击手法——域内用户枚举和密码喷洒

一、域内用户枚举 1、域内用户枚举原理 域内用户枚举可以在无域内有效凭据的情况下,枚举出域内存在的用户名,并对其进行密码喷洒攻击,以此获得域内的有效凭据,在 Kerberos 协议认证的 AS-REQ 阶段,客户端向 AS 发送的…

交易中的特殊存在

在交易的广袤天空中,有一群特殊的存在——他们,是Eagle Trader。 他们以鹰眼般的洞察力,捕捉市场的微妙变化,每一次决策都如同猎食者般精准;他们运用策略,如同雄鹰在风中翱翔,利用风向&#xf…

索尼MXF文件断电变2G恢复方法(PXW-Z280V)

PXM-Z280V算是索尼比较经典的机型,也是使用MXF文件格式的机型之一。近期接到很多例索尼MXF量突然不正常的案例(如变成512字节或者2G),下面来看下这个案例。 故障存储: 128G存储卡 /文件系统:exFAT 故障现象: 客户反…

兴业严选|朝阳、大兴、丰台、等5.9折起总有一套适合你~

近日于上海,出现了一桩令人始料未及之事。一套地处浦东、面积达 245.7 平方米的住宅进行挂网拍卖。 出乎意料的是,此套房子受到众多买家的青睐,历经一番激烈的竞价竞争,最终以 1766 万元的价格成交,折合每平方米 7187…