SQL:2016標(biāo)準(zhǔn)之新特性

作者: 不剪發(fā)的Tony老師
畢業(yè)于北京航空航天大學(xué),十多年數(shù)據(jù)庫管理與開發(fā)經(jīng)驗,目前在一家全球性的金融公司從事數(shù)據(jù)庫架構(gòu)設(shè)計。CSDN學(xué)院簽約講師以及GitChat專欄作者。csdn上的博客收藏于以下地址:https://tonydong.blog.csdn.net


文章目錄

        行模式識別
        支持JSON對象
        多態(tài)表函數(shù)
        額外的分析功能

我在 CSDN 學(xué)院發(fā)布的 SQL 入門視頻教程。

2016年12月14日,ISO/IEC發(fā)布了最新版本的數(shù)據(jù)庫語言SQL標(biāo)準(zhǔn)(ISO/IEC 9075:2016)。從此,它替代了之前的ISO/IEC 9075:2011版本。

最新的標(biāo)準(zhǔn)分為9個部分:

    ISO/IEC 9075-1 信息技術(shù) – 數(shù)據(jù)庫語言 – SQL – 第1部分:框架(SQL/框架)
    ISO/IEC 9075-2 信息技術(shù) – 數(shù)據(jù)庫語言 – SQL – 第2部分:基本原則(SQL/基本原則)
    ISO/IEC 9075-3 信息技術(shù) – 數(shù)據(jù)庫語言 – SQL – 第3部分:調(diào)用級接口(SQL/CLI)
    ISO/IEC 9075-4 信息技術(shù) – 數(shù)據(jù)庫語言 – SQL – 第4部分:持久存儲模塊(SQL/PSM)
    ISO/IEC 9075-9 信息技術(shù) – 數(shù)據(jù)庫語言 – SQL – 第9部分:外部數(shù)據(jù)管理(SQL/MED)
    ISO/IEC 9075-10 信息技術(shù) – 數(shù)據(jù)庫語言 – SQL – 第10部分:對象語言綁定(SQL/OLB)
    ISO/IEC 9075-11 信息技術(shù) – 數(shù)據(jù)庫語言 – SQL – 第11部分:信息與定義概要(SQL/Schemata)
    ISO/IEC 9075-13 信息技術(shù) – 數(shù)據(jù)庫語言 – SQL – 第13部分:使用Java編程語言的SQL程序與類型(SQL/JRT)
    ISO/IEC 9075-14 信息技術(shù) – 數(shù)據(jù)庫語言 – SQL – 第14部分:XML相關(guān)規(guī)范(SQL/XML)

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

    行模式識別
    支持JSON對象
    多態(tài)表函數(shù)
    額外的分析功能

行模式識別

行模式識別(row pattern recognition)使用MATCH_RECOGNIZE子句指定一個匹配多行的模式(正則表達(dá)式),可以對這些匹配的行組進(jìn)行過濾、分組和聚合操作。MATCH_RECOGNIZE支持兩種形式:ONE ROW PER MATCH和ALL ROWS PER MATCH。

ONE ROW PER MATCH對于每次匹配返回單行摘要,而ALL ROWS PER MATCH對于每次匹配中的每一行數(shù)據(jù)返回一行輸出。

行模式匹配可以用于分析時間序列數(shù)據(jù),例如股票行情收錄器日志或事件日志。
支持JSON對象

JSON對象由標(biāo)簽和數(shù)據(jù)組成。它為一些應(yīng)用提供了極大的靈活性。SQL:2016提供了以下功能:

    JSON對象的存儲與檢索
    將JSON對象表示成SQL數(shù)據(jù)
    將SQL數(shù)據(jù)表示成JSON對象

添加JSON對象的SQL支持允許將JSON數(shù)據(jù)與已有的應(yīng)用進(jìn)行集成。這樣可以提高安全性,集成數(shù)據(jù)庫事務(wù),并提高開發(fā)者效率。
多態(tài)表函數(shù)

表函數(shù)是指返回結(jié)果為一個表的函數(shù),多態(tài)表函數(shù)(Polymorphic Table Functions, PTF)是一種用戶定義的函數(shù),可以在FROM子句中使用。它們可以處理在定義時沒有聲明行的類型的表,也可以生成一個在定義時聲明了或者沒有聲明行的類型的結(jié)果表。多態(tài)表函數(shù)允許開發(fā)人員利用動態(tài)SQL創(chuàng)建強(qiáng)大而復(fù)雜的自定義函數(shù)。
額外的分析功能

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

這些分析函數(shù)支持在已有的SQL應(yīng)用中進(jìn)行復(fù)雜的計算,同時可以為以后的多維數(shù)組提供支持。