SQLite 3.35版本已发布 在此新版本的数据库管理器中 数学函数加法突出显示, 并支持ALTER TABLE DROP COLUMN表达式从表中删除列,改进的操作等。
对于那些不熟悉SQLite软件包的人 这是一个轻量级的DBMS,设计为插件库。 SQLite代码 作为公共领域分发, 也就是说,它可以不受限制地使用,并且可以免费用于任何目的。
SQLite 3.35的主要新功能
如开头所述,在这个新版本中 内置数学函数 (log2(),cos(),tg(),exp(),ln(),pow()等) 可以在SQL中使用。 要启用内置功能,需要带有“ -DSQLITE_ENABLE_MATH_FUNCTIONS”选项的程序集。
表达 “ ALTER TABLE DROP COLUMN”现在支持从表中删除列 并删除以前存储在此列中的数据。
执行UPSERT操作(添加或修改),如果无法通过“插入”添加数据(例如,记录,则可以执行UPDATE(而不是INSERT)。
在新版本中,允许指定多个块«冲突中«,将按顺序处理。 在最后一个“ ON CONFLICT”块中,不允许指定冲突定义参数以使用“ DO UPDATE”。
行动 DELETE,INSERT和UPDATE支持RETURNING表达式,可以使用 显示已删除,已插入或已修改记录的内容。 例如,“插入...返回ID”将返回添加的行标识符,而“更新...设置价格=价格* 1.10返回价格”将返回更新价格的值。
对于允许使用时间命名结果集的通用表表达式(通用表表达式,CTE),使用WITH运算符,允许选择模式“ MATERIALIZED”和“ NOT MATERIALIZED”。
- “ MATERIALIZED”表示将视图中指定的查询缓存在单独的物理表中,随后从该表中检索数据。
- 并使用“未进行材料化”,每次访问视图时都将执行重复查询。 最初,SQLite默认使用“ NOT MATERIALIZED”,但由于多次使用的CTE,现在已更改为“ MATERIALIZED”。
其他变化 从这个新版本中脱颖而出:
- 对于包含TEXT或BLOB类型的非常大的值的数据库执行VACUUM操作时,减少了内存消耗。
- 已经完成了提高优化器和查询调度程序性能的工作。
- 在将min和max函数与表达式“ IN”一起使用时,添加了优化。
- EXISTS语句的执行已加快。
- 实现了JOIN中使用的UNION ALL表达式的子查询的扩展。
- 用于IS NOT NULL表达式的索引。
- 为带有“ NOT NULL”标志的列提供了“ x IS NULL”和“ x IS NOT NULL”到FALSE或TRUE的转换。
- 如果操作未更改与外键关联的列,则跳过UPDATE中的外键检查。
- 如果将WHERE子句的各个部分限制为使用常量和窗口函数中使用的“ PARTITION BY”子句表达式的副本,则允许将这些部分移动到包含窗口函数的子查询中。
更改为命令行界面:
- 添加了“ .filectrl data_version”命令。
- “ .once”和“ .output”命令增加了对使用未命名管道(“ |”)将输出传递到调用的控制器的支持。
- “ .stats”命令添加了“ stmt”和“ vmstep”参数,以显示有关虚拟机计数器和表达式的统计信息。
最后 如果您有兴趣了解更多有关它的信息 关于此新版本的SQLite,您可以查看详细信息 通过转到以下链接。