写点什么

SQLite 3.9 支持 JSON、表达式索引及更多特性

  • 2015-10-28
  • 本文字数:892 字

    阅读完需:约 3 分钟

最近发布的 SQLite 3.9 提供了一些新特性和增强功能,包括支持 JSON 编解码、全文检索版本 5、表达式索引、同名虚表等等。

根据采用最新语义版本标准,SQLite 3.9 是一个通过引入新特性而打破兼容性同时又向下兼容旧版本的版本。SQLite 3.9 引入的新特性包括:

  • 支持 JSON,通过 json1扩展,实现了一套方法来验证 JSON 字符串、构建 JSON 数组和对象、操作 JSON 字符串(通过更新、插入和替换值)等。另外,有两个表值方法可以通过将每个 JSON 元素映射成行来将 JSON 字符串转换成虚表。
  • 索引表达式,补充了引用表列的传统索引,允许使用涉及多个列的表达式创建索引。这个特性将使得查询更有效率,例如,需要列出给定账户金额总数超过给定数目的所有操作:

CREATE INDEX account_change_magnitude ON account_change(acct_no, abs(amt)); SELECT * FROM account_change WHERE acct_no=$xyz AND abs(amt)>=10000;5. 同名虚表,它是可以用于通过简单地参照其模型名称的虚表,即,不需要运行 CREATE VIRTUAL TABLE。 它的一个例子是 dbstat 虚表,它提供了一个数据库文件中的 B 树和溢出页的低级别信息。
6. 全文检索版本 5 (FTS5),是一个虚表组件,它允许创建一个可以之后全文检索的虚表。以下是如何通过 FTS5 填充一个虚表:
CREATE VIRTUAL TABLE email USING fts5(sender, title, body);一旦你拥有一个 FTS5 虚表,你可以通过三种方式来在其中查询一个词:

SELECT * FROM email WHERE email MATCH 'fts5'; SELECT * FROM email WHERE email = 'fts5'; SELECT * FROM email('fts5');这个功能依然在实验状态。

值得一提的其它变化是当使用 CREATE VIEW 时增加了列名的可选列表,当创建一个视图,并让他们在查询时检查的时候引用未定义表的可能性。

更多信息,阅读 SQLite 3.9.0 3.9.1 release notes

查看英文原文: SQLite 3.9 Supports JSON, Indexes on Expressions and More


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-10-28 19:008535
用户头像

发布了 32 篇内容, 共 21.0 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

Docker小白的福音:50条Docker命令清单,干就完了!

wljslmz

Docker Linux Docker 镜像 7月月更

架构实战营模块7作业

挖了蘑菇哩斯

架构实战营

树莓派3B搭建Flink集群

程序员欣宸

Java flink 树莓派 7月月更

Web3流量聚合平台Starfish OS,给玩家元宇宙新范式体验

股市老人

正则什么的,你让我写,我会难受,你让我用,真香!

掘金安东尼

前端 正则 7月月更

java零基础入门-java8新特性(中篇)

喵手

Java 7月月更

王者荣耀商城异地多活部署设计

Geek_e8bfe4

mysql进阶(十四) 批量更新与批量更新多条记录的不同值实现方法

No Silver Bullet

MySQL 数据库 7月月更 批量更新

如何分析并设计性能测试场景

老张

性能测试 需求分析

Java中关于多线程的知识点

Java学术趴

7月日更

王者荣耀商城异地多活架构设计

Geek_7a789a

C#入门系列(二十六) -- 程序集和命名空间

陈言必行

7月月更

从日常小事看如何工作

耳东@Erdong

7月月更

Okaleido tiger NFT即将登录Binance NFT平台,NFT权益时代即将开启

鳄鱼视界

iOS中内存管理(Autoreleasepool)

NewBoy

ios 前端 移动端 iOS 知识体系 7月月更

LeetCode-94. 二叉树的中序遍历(java)

bug菌

Leet Code 7月月更

关于Web响应式设计

程序员海军

Web 7月月更 响应式设计

Okaleido tiger NFT即将登录Binance NFT平台,你期待吗?

股市老人

云原生(九) | Devops篇之Jenkins安装与实战

Lansonli

云原生 7月月更

Qt | Qt的项目文件.pro文件详解

YOLO.

qt 7月月更

Java RMI

沃德

Java 程序员 7月月更

前端网络之跨域请求

Jason199

跨域 7月月更

架构师成长:关于我在 ArchSummit 大会收获了什么

宇宙之一粟

架构 个人感悟 ArchSummit 7月月更

一年时间过去了,LiveData真的被Flow代替了吗? LiveData会被废弃吗?

编程的平行世界

android android jetpack

git clone出错--必看贴

坚果

git Mac git 学习 7月月更

【MySql 实战】以 sql 的方式多表联动更新数据

安逸的咸鱼

MySQL 实战 7月月更

TableWidget 排序的多种方式

小肉球

qt 7月月更

STM32+ENC28J60+UIP协议栈实现WEB服务器示例

DS小龙哥

7月月更

SQLite 3.9支持JSON、表达式索引及更多特性_语言 & 开发_Sergio De Simone_InfoQ精选文章