写点什么

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:008558
用户头像

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

关注

评论

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

接口测试框架实战(二)| 接口请求断言

霍格沃兹测试开发学社

EMQ亮相服贸会:夯实IoT数字底座,加速迈向工业4.0时代

EMQ映云科技

物联网 IoT 工业4.0 服贸会 9月月更

测试需求平台4-Flask实现API服务入门实战

MegaQi

测试平台开发教程 9月月更

跟着卷卷龙一起学Camera--AE

卷卷龙

ISP 9月月更

系统设计 - 高可用思想简介

三叶草

高可用 SLA 高可用设计

亮点抢先看|StarRocks Summit Asia 2022 全议程公布!

StarRocks

数据库

接口测试框架实战 | 流程封装与基于加密接口的测试用例设计

霍格沃兹测试开发学社

DolphinScheduler&RocketMQ 联合 Meetup 即将重磅开启,集中展示任务调度与消息队列能力!

阿里巴巴云原生

阿里云 RocketMQ 云原生 DolphinScheduler

做好企业的内部知识管理的方法

Baklib

挑战30天学完Python:Day2 夯实基础-变量和内置函数

MegaQi

9月月更 挑战30天学完Python

C++学习------csetjmp头文件的源码学习

桑榆

c++ 源码阅读 9月月更

Groq:从头设计一个张量流式处理器架构

OneFlow

人工智能 深度学习 处理器

[MyBatisPlus]标准数据层开发(CRUD、分页)

十八岁讨厌编程

Java 后端开发 9月月更

ChatOps新型运维协作介绍

阿泽🧸

ChatOps 9月月更

Java进阶(十七)ArrayList与LinkedList的区别

No Silver Bullet

Java ArrayList linkedlist 9月月更

【vue3】vue3-组合式API中实现深拷贝

Sam9029

Vue 深拷贝 9月月更

做好产品手册,发现优质顾客

Baklib

编辑FAQ常用问题网页的Tips

Baklib

SpringFramework初识

十八岁讨厌编程

spring 后端 9月月更

走向云原生数据库,告别 Microsoft SQL Server,迎接 Babelfish

亚马逊云科技 (Amazon Web Services)

数据库 云原生

万字长文!教你如何拆解一款 App

产品海豚湾

产品经理 产品设计 竞品分析 B端产品 9月月更

关于CMDB建设思路的一点思考

穿过生命散发芬芳

CMDB 9月月更

【JS】DOM键盘事件--div元素-设置键盘事件--失效的额外处理踩坑

Sam9029

JavaScript DOM 9月月更 键盘事件

接口测试该怎么做?持证上岗的Charles,可以帮你做什么?

霍格沃兹测试开发学社

接口测试项目实战与经典面试题解析,挑战 BAT 大厂必会!

霍格沃兹测试开发学社

快速安全的将 Azure SQL 迁移到云原生数据库 Amazon Aurora

亚马逊云科技 (Amazon Web Services)

数据库 云原生

数字化转型-数据资产管理

小鲸数据

数据资产 数字化 数据价值 数据管理 数据资产管理

[SpringBoot系列]基础过渡与夯实(基础配置)

十八岁讨厌编程

Java 后端开发 9月月更

接口测试框架实战(一) | Requests 与接口请求构造

霍格沃兹测试开发学社

接口管理工具YApi怎么用?颜值高、易管理、超好用

霍格沃兹测试开发学社

【从零开始学爬虫】采集谷歌网页列表数据

前嗅大数据

大数据 数据采集 爬虫软件 爬虫教程 互联网+

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