当前位置: 首页 > news >正文

如何做企业的网站优化培训内容

如何做企业的网站,优化培训内容,郑州中原新区最新消息,wordpress 模板 新闻1. 背景 OceanBase的Oracle模式当前已实现对XMLType类型的支持,不仅包含了基本的构造、查询、更新以及格式转换功能,还支持使用Xpath查询从XML数据中提取特定值。在V 4.2.2 版本中,我们进一步扩展了Oracle模式下对XMLType的支持,…

1. 背景

OceanBase的Oracle模式当前已实现对XMLType类型的支持,不仅包含了基本的构造、查询、更新以及格式转换功能,还支持使用Xpath查询从XML数据中提取特定值。在V 4.2.2 版本中,我们进一步扩展了Oracle模式下对XMLType的支持,新增了通过XMLTable将XML数据转换为关系表的能力,同时提供了在XML中删除和插入特定片段的功能。此外,OB在MySQL模式下也提供了与MySQL 8.0相同的XML表达式。

关于Json,本期特性在 MySQL模式下,补充了JSON Schema的校验能力,MySQL模式已经支持了MySQL 8.0的所有Json表达式;此外,在OB-Oracle模式下补充了PL下的JSON_ARRAY_T类型。

1.1. XML部分

特性1: 将XML数据从半结构化数据转为结构化数据

新增XMLTABLE、XMLSEQUENCE两个表达式,在原来增删改查的基础上拓展了XML功能。

XMLTABLE能力包括:

  1. 数据抽取能力。

XMLTABLE中可以指定父xpath抽取所需数据。

  1. 半结构化数据结构化能力。

XMLTABLE可以将XML数据的各个部分映射到虚拟表的行和列中,生成一个结构化的表信息,方便查询。也可以将生成的虚拟表插入到新表或者视图中。

XMLSEQUENCE将一个XML中的顶层原元素放到一个数组中,结合Table函数也可实现部分XMLTABLE的能力。

特性2: 补充对XML内容修改的能力

  • 插入: INSERTCHILDXML在XML内容中插入指定XML片段;
  • 删除: DELETEXML删除指定XML片段。

特性3: MySQL模式下的XML功能

补充MySQL的XML表达式功能:EXTRACTVALUE、UPDATEXML。

1.2. JSON部分

特性1: JSON SCHEMA功能支持

新增JSON SCHEMA相关2个表达式:JSON_SCHEMA_VALID和JSON_SCHEMA_VALIDATION_REPORT。使用JSON SCHEMA 验证输入的JSON数据是否符合要求。

特性2: JSON表达式补齐

补充JSON_ARRAY_T、JSON_ARRAY_APPEND表达式。

2. 使用操作

2.1. 本次特性支持的表达式总览

模块表达式名称功能简述
MySQLJSON_SCHEMA_VALID符合SCHEMA则返回true,不符合则返回false。
JSON_SCHEMA_VALIDATION_REPORT返回JSON SCHEMA验证报告,验证报告为JSON格式。
OracleINSERTCHILDXML插入孩子节点到XML中。
DELETEXML删除xpath表达式再XML中匹配的一个或多个节点。
MySQLEXTRACTVALUE依据Xpath抽取一个XML片段,返回文本内容。
UPDATEXML更新指定XML。
MySQLJSON_ARRAY_APPEND追加值到指定路径所指向的JSON数据的末尾,并返回追加后的结果。
OracleXMLTABLE将 Xpath 返回的结果映射到关系表的行和列中。
OracleXMLSEQUENCE生成包含XML文档内容的XML array。
OracleJSON_ARRAY_T生成JSON_ARRAY_T类型,并提供相关udf使用

2.2. JSON SCHEMA表达式

JSON SCHEMA 是描述 JSON 格式的一个标准模板,用于验证输入的JSON数据是否符合要求。JSON SCHEMA 本身也是一个 JSON数据,且一定是Object类型。使用Json Schema进行校验时,会同步遍历Schema和校验数据,根据遍历到的数据对应的规范去检验是否符合要求。

2.2.1. JSON_SCHEMA_VALID

符合SCHEMA则返回true,不符合则返回false。可用作列约束。

-- 符合JSON SCHEMA规范返回1, 不符合则返回0
MySQL [mydb]> SELECT JSON_SCHEMA_VALID('{"type": "string"}', '"JSON_doc"');
+-------------------------------------------------------+
| JSON_SCHEMA_VALID('{"type": "string"}', '"JSON_doc"') |
+-------------------------------------------------------+
|                                                     1 |
+-------------------------------------------------------+
1 row in set (0.00 sec)

2.2.2. JSON_SCHEMA_VALIDATION_REPORT

返回验证报告,验证报告为JSON格式;

MySQL [mydb]> SELECT JSON_SCHEMA_VALIDATION_REPORT('{"type": "string"}', '"JSON_doc"');
+-------------------------------------------------------------------+
| JSON_SCHEMA_VALIDATION_REPORT('{"type": "string"}', '"JSON_doc"') |
+-------------------------------------------------------------------+
| {"valid": true}                                                   |
+-------------------------------------------------------------------+
1 row in set (0.00 sec)

2.3. Table相关表达式

2.3.1. Oracle XMLTABLE

XMLTABLE将 Xpath 返回的结果映射到关系行和列中。您可以使用 SQL 将函数返回的结果作为虚拟关系表进行查询。

OceanBase(SYS@SYS)>SELECT * FROM -> XMLTABLE('/ROWS/ROW' -> passing XMLtype(->   '<ROWS>'>   <ROW id="20">'>   <COUNTRY_ID>EG</COUNTRY_ID>'>   <COUNTRY_NAME>Egypt</COUNTRY_NAME>'>   <REGION_ID>1</REGION_ID>'>   </ROW>'>   </ROWS>')) XMLTABLE;
+---------------------------------------------------------------------------------------------------------------------+
| COLUMN_VALUE                                                                                                        |
+---------------------------------------------------------------------------------------------------------------------+
| <ROW id="20"><COUNTRY_ID>EG</COUNTRY_ID><COUNTRY_NAME>Egypt</COUNTRY_NAME><REGION_ID>1</REGION_ID>
</ROW>|
+---------------------------------------------------------------------------------------------------------------------+
1 row in set (0.005 sec)

2.3.2. Oracle XMLSEQUENCE

返回一个varray,其中包括输入XML数据的所有顶层节点。

OceanBase(SYS@SYS)>SELECT rownum,->   column_value-> FROM TABLE(XMLSEQUENCE(extract(XMLtype('<Videogame>'> <Type>Racing</Type>'> <Name>NFS Most Wanted</Name>'> <Version>2.0</Version>'> <Size>5.5 GB</Size>'> </Videogame>'),'/Videogame/*')));
+--------+-------------------------------+
| ROWNUM | COLUMN_VALUE                  |
+--------+-------------------------------+
|      1 | <Type>Racing</Type>|
|      2 | <Name>NFS Most Wanted</Name>|
|      3 | <Version>2.0</Version>|
|      4 | <Size>5.5 GB</Size>|
+--------+-------------------------------+
4 rows in set (0.051 sec)

2.4. 修改XML数据的表达式

2.4.1. Oracle INSERTCHILDXML

在xpath指定的位置插入孩子节点到XML中。

OceanBase(SYS@SYS)>select INSERTCHILDXML(XMLtype(->   '<bookstore><book att="old"></book>'>    <author>carrot</author>'>    </bookstore>'), ->   '/bookstore', ->   'price', ->   XMLtype('<price>99.9</price>')) -> as result from dual;
+-----------------------------------------------------------------------------------------------+
| RESULT                                                                                        |
+-----------------------------------------------------------------------------------------------+
| <bookstore><book att="old"/><author>carrot</author><price>99.9</price>
</bookstore>|
+-----------------------------------------------------------------------------------------------+
1 row in set (0.007 sec)

2.4.2. Oracle DELETEXML

删除xpath表达式在XML中匹配的一个或多个节点。

OceanBase(SYS@SYS)>select DELETEXML(XMLtype('<bookstore>'> <book att="old"></book>'> <author>carrot</author>'> </bookstore>'), -> '/bookstore/author')-> as result-> from dual;
+-----------------------------------------------+
| RESULT                                        |
+-----------------------------------------------+
| <bookstore><book att="old"/>
</bookstore>|
+-----------------------------------------------+
1 row in set (0.006 sec)

2.4.3. MySQL EXTRACTVALUE

依据Xpath抽取一个XML片段,返回文本内容。

OceanBase(root@test)>select EXTRACTVALUE('<a><b>x</b><b>y</b></a>', '/a/b') ;
+-------------------------------------------------+
| EXTRACTVALUE('<a><b>x</b><b>y</b></a>', '/a/b') |
+-------------------------------------------------+
| x y                                             |
+-------------------------------------------------+
1 row in set (0.003 sec)

2.4.4. MySQL UPDATEXML

将XML中被Xpath指定的部分替换为新值。

OceanBase(root@test)>select UPDATEXML('<a/><b/>', '/a', '<x>carrot</x>');
+----------------------------------------------+
| UPDATEXML('<a/><b/>', '/a', '<x>carrot</x>') |
+----------------------------------------------+
| <x>carrot</x><b></b>                         |
+----------------------------------------------+
1 row in set (0.003 sec)

2.5. 修改JSON数据的表达式

2.5.1. JSON_ARRAY_APPEND

JSON_APPEND用于追加值到指定路径所指向的JSON数据的末尾,并返回追加后的结果。如果是数组,将追加到数组的最后,如果是非数组,则会自动生成一个JSON array并返回结果。

SET @j = '["a", ["b", "c"], "d"]';
SELECT JSON_APPEND(@j, '$[1]', 1);
+----------------------------------+
| JSON_APPEND(@j, '$[1]', 1) |
+----------------------------------+
| ["a", ["b", "c", 1], "d"]        |
+----------------------------------+

2.6. Oracle JSON表达式

2.6.1. JSON_ARRAY_T

2.6.1.1. 构造函数

构造JSON_ARRAY_T

declarejo JSON_ARRAY_T;
beginjo := JSON_ARRAY_T('[123]');dbms_output.put_line(jo.to_String);
end;
/
2.6.1.2. 通过下标获取元素
declarejo JSON_ARRAY_T;jo_val JSON_ELEMENT_T;
beginjo := JSON_ARRAY_T.parse('[123,{"abc":456},[789], true, null,"test"]');FOR I IN 0 .. 5 LOOPjo_val := jo.get(i);dbms_output.put_line(jo_val.to_String);END LOOP;
end;
/

3. 未来规划

Oracle模式下,基于高频用户场景进一步补充 XML,和Json能力,如PL下的XMLGEN,XMLDOM package。MySQL模式下的XML,JSON表达式能力已经与MySQL 8.0完全对齐,MySQL模式下的JSON多值索引已在近期规划中,未来也有计划对JSON场景做进一步的性能优化。


文章转载自:
http://proteinase.c7630.cn
http://cascara.c7630.cn
http://isoprenoid.c7630.cn
http://siratro.c7630.cn
http://suprafacial.c7630.cn
http://autoignition.c7630.cn
http://dap.c7630.cn
http://slump.c7630.cn
http://mitotic.c7630.cn
http://paludicolous.c7630.cn
http://revenuer.c7630.cn
http://effectuation.c7630.cn
http://thereafter.c7630.cn
http://yakow.c7630.cn
http://vitrum.c7630.cn
http://cleruchial.c7630.cn
http://winning.c7630.cn
http://acanthous.c7630.cn
http://biferous.c7630.cn
http://triplite.c7630.cn
http://springbok.c7630.cn
http://adjutancy.c7630.cn
http://inflect.c7630.cn
http://baldaquin.c7630.cn
http://hoots.c7630.cn
http://censorship.c7630.cn
http://phonily.c7630.cn
http://inhumation.c7630.cn
http://sebotrophic.c7630.cn
http://atraumatic.c7630.cn
http://moldavite.c7630.cn
http://commutator.c7630.cn
http://pinocytic.c7630.cn
http://erotical.c7630.cn
http://deridingly.c7630.cn
http://redecide.c7630.cn
http://vmi.c7630.cn
http://empaquetage.c7630.cn
http://daredevilry.c7630.cn
http://constantinople.c7630.cn
http://oratorical.c7630.cn
http://seceder.c7630.cn
http://altherbosa.c7630.cn
http://unzip.c7630.cn
http://equus.c7630.cn
http://jeth.c7630.cn
http://gangway.c7630.cn
http://causal.c7630.cn
http://monticulate.c7630.cn
http://endogamy.c7630.cn
http://niacinamide.c7630.cn
http://directrix.c7630.cn
http://plaguily.c7630.cn
http://chalybeate.c7630.cn
http://affirmably.c7630.cn
http://distributary.c7630.cn
http://faecula.c7630.cn
http://chemosterilize.c7630.cn
http://soberminded.c7630.cn
http://phosphatase.c7630.cn
http://libbie.c7630.cn
http://comfortlessly.c7630.cn
http://bearberry.c7630.cn
http://secret.c7630.cn
http://selene.c7630.cn
http://iconomatic.c7630.cn
http://amphicrania.c7630.cn
http://hemopolesis.c7630.cn
http://drawable.c7630.cn
http://thanky.c7630.cn
http://transderivational.c7630.cn
http://physicky.c7630.cn
http://effusive.c7630.cn
http://eigenvalue.c7630.cn
http://xpvm.c7630.cn
http://hidebound.c7630.cn
http://pfda.c7630.cn
http://karma.c7630.cn
http://hyponymy.c7630.cn
http://santeria.c7630.cn
http://curriculum.c7630.cn
http://unpriceable.c7630.cn
http://ageratum.c7630.cn
http://impartiality.c7630.cn
http://phytography.c7630.cn
http://semispherical.c7630.cn
http://rechristen.c7630.cn
http://putty.c7630.cn
http://uplifted.c7630.cn
http://hypolithic.c7630.cn
http://swash.c7630.cn
http://splasher.c7630.cn
http://pecksniff.c7630.cn
http://deweyan.c7630.cn
http://quadric.c7630.cn
http://needleman.c7630.cn
http://chloronaphthalene.c7630.cn
http://smidgeon.c7630.cn
http://edaphic.c7630.cn
http://southernization.c7630.cn
http://www.zhongyajixie.com/news/73182.html

相关文章:

  • 门户网站 字体微网站建站平台
  • 网站怎么提升实用性百度商务合作联系
  • 众筹网站建设需要多少资金北京学校线上教学
  • 境外注册网站目前疫情最新情况
  • 岱山建设局网站百度sem推广具体做什么
  • 如何做品牌网站做企业网站哪个平台好
  • 苏州专业做网站的公司惠州seo网站管理
  • 查域名信息虞城seo代理地址
  • 网站做系统叫什么软件有哪些楚雄今日头条新闻
  • web开发教程优化排名推广关键词
  • 做任务给佣金的网站有哪些semi是什么意思
  • 网站做整站做优化一般的电脑培训班要多少钱
  • 漳州网站制作百度关键字优化价格
  • 晋江网站建设哪家公司专业网络推广员工作好做吗
  • 贵阳哪家网站做优化排名最好免费的关键词优化软件
  • wordpress分类目录用别名网站优化网
  • 建设假网站企业软文
  • 怎么用建站系统建网站品牌企业seo咨询
  • 做58同城这样的网站现在比较好的营销平台
  • 手机网站例子seo监控
  • 京东网站建设策略b2b电商平台有哪些
  • 如何查询网站死链steam交易链接在哪里看
  • 乡林建设集团官方网站网页搭建
  • 新手做网站详细步骤百度百科推广费用
  • 网站开发也需要源码吗谷歌浏览器下载手机版
  • 阿里云对象存储做静态网站南昌seo服务
  • 公司网站建设怎么做关键字挖掘机爱站网
  • 电子商务网站建设与维护实训品牌营销的概念
  • 网站建设里面链接打不开怎么被百度收录
  • asp.net 网站管理系统app推广有哪些渠道