• 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 ./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 扩展插件。
  • 相关阅读:
    QT快捷键
    旅游寄递自助化教程
    this理解不到位,导致十一点半还在改bug
    计算机毕业设计php_thinkphp_vue的约课管理系统-课程预约
    一键整理电脑桌面、文件夹—只需要20行Python代码
    Redis篇---第十四篇
    【RocketMQ】MQ消息发送总结
    centos Hadoop伪分布模式安装-ssh免密登录
    Java回顾-IO流的体系结构/File文件类的使用
    Word 插入的 Visio 图片显示为{EMBED Visio.Drawing.11} 解决方案
  • 原文地址:https://blog.csdn.net/horses/article/details/139827487