SQL:2016标准之新特性

作者: 不剪发的Tony老师
毕业于北京航空航天大学,十多年数据库管理与开发经验,目前在一家全球性的金融公司从事数据库架构设计。CSDN学院签约讲师以及GitChat专栏作者。csdn上的博客收藏于以下地址:https://tonydong.blog.csdn.net


文章目录

        行模式识别
        支持JSON对象
        多态表函数
        额外的分析功能

我在 CSDN 学院发布的 SQL 入门视频教程。

2016年12月14日,ISO/IEC发布了最新版本的数据库语言SQL标准(ISO/IEC 9075:2016)。从此,它替代了之前的ISO/IEC 9075:2011版本。

最新的标准分为9个部分:

    ISO/IEC 9075-1 信息技术 – 数据库语言 – SQL – 第1部分:框架(SQL/框架)
    ISO/IEC 9075-2 信息技术 – 数据库语言 – SQL – 第2部分:基本原则(SQL/基本原则)
    ISO/IEC 9075-3 信息技术 – 数据库语言 – SQL – 第3部分:调用级接口(SQL/CLI)
    ISO/IEC 9075-4 信息技术 – 数据库语言 – SQL – 第4部分:持久存储模块(SQL/PSM)
    ISO/IEC 9075-9 信息技术 – 数据库语言 – SQL – 第9部分:外部数据管理(SQL/MED)
    ISO/IEC 9075-10 信息技术 – 数据库语言 – SQL – 第10部分:对象语言绑定(SQL/OLB)
    ISO/IEC 9075-11 信息技术 – 数据库语言 – SQL – 第11部分:信息与定义概要(SQL/Schemata)
    ISO/IEC 9075-13 信息技术 – 数据库语言 – SQL – 第13部分:使用Java编程语言的SQL程序与类型(SQL/JRT)
    ISO/IEC 9075-14 信息技术 – 数据库语言 – SQL – 第14部分:XML相关规范(SQL/XML)

SQL:2016中主要的新特性包括:

    行模式识别
    支持JSON对象
    多态表函数
    额外的分析功能

行模式识别

行模式识别(row pattern recognition)使用MATCH_RECOGNIZE子句指定一个匹配多行的模式(正则表达式),可以对这些匹配的行组进行过滤、分组和聚合操作。MATCH_RECOGNIZE支持两种形式:ONE ROW PER MATCH和ALL ROWS PER MATCH。

ONE ROW PER MATCH对于每次匹配返回单行摘要,而ALL ROWS PER MATCH对于每次匹配中的每一行数据返回一行输出。

行模式匹配可以用于分析时间序列数据,例如股票行情收录器日志或事件日志。
支持JSON对象

JSON对象由标签和数据组成。它为一些应用提供了极大的灵活性。SQL:2016提供了以下功能:

    JSON对象的存储与检索
    将JSON对象表示成SQL数据
    将SQL数据表示成JSON对象

添加JSON对象的SQL支持允许将JSON数据与已有的应用进行集成。这样可以提高安全性,集成数据库事务,并提高开发者效率。
多态表函数

表函数是指返回结果为一个表的函数,多态表函数(Polymorphic Table Functions, PTF)是一种用户定义的函数,可以在FROM子句中使用。它们可以处理在定义时没有声明行的类型的表,也可以生成一个在定义时声明了或者没有声明行的类型的结果表。多态表函数允许开发人员利用动态SQL创建强大而复杂的自定义函数。
额外的分析功能

SQL:2016增加了额外的分析功能,包括三角函数和对数函数。增加的三角函数包括sin、cos、tan、sinh、cosh、tanh、asin、acos以及atan。对数函数包括一般对数函数(log(<base>, <value>))、常用对数函数(log10(<value>))和自然对数函数(ln(<value>))。

这些分析函数支持在已有的SQL应用中进行复杂的计算,同时可以为以后的多维数组提供支持。