PostgreSQL和Sqlserver对json数据的支持
2018-02-01 10:54
465 查看
首先说几点数据库存json格式数据的好处(经验尚浅,望大牛们不吝赐教):(1)将对象转成json格式存入数据库中,避免了主外键的设置和多表联合查询(2)想增加或减少字段时,不必频繁地去修改数据库,尤其 是使用三层框架,改一个字段要改好多内容的。接下来就我接触到的对json格式支持比较好的数据库进行一些分享。1.PostgreSQLPostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES,现在已经更名为PostgreSQL,版本 4.2为基础的对象关系型数据库管理系统(ORDBMS)。PostgreSQL支持大部分 SQL标准并且提供了许多其他现代特性:复杂查询、外键、触发器、视图、事务完整性、MVCC。同样,PostgreSQL 可以用许多方法扩展,比如, 通过增加新的数据类型、函数、操作符、聚集函数、索引。它包括了可以说是目前世界上最丰富的数据类型的支持,其中有些数据类型可以说连商业数据库都不具备, 比如 IP 类型和几何类型等;其次,PostgreSQL 是全功能的自由软件数据库,很长时间以来,PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统(MVCC)、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统。 Inprise 的 InterBase 以及SAP等厂商将其原先专有软件开放为自由软件之后才打破了这个唯一。最后,PostgreSQL拥有一支非常活跃的开发队伍,而且在许多黑客的努力下,PostgreSQL 的质量日益提高。psql对json格式数据有很好的读写支持。首先对于写没有什么过多可说了,就是一个字段,存储了一个json格式的字符串。通常会把对象里的子对象转成json存入对象的表中,避免了主外键设置和联合查询,并且增加或减少子对象的字段,其他地方几乎不怎么需要重写。主要想对psql对于json格式数据的查询详细介绍一下。更多的场景是我们往往需要对json格式数据中的某一个属性进行查询匹配,psql给了我们十分便利的方式来解决这一问题,首先看一段sql语句:select money from aa.count whereperson::json->>'age' > '30';不考虑实际情况,我们认为这是一个银行账户的表,把每个人的个人信息转成的json格式存在的一个字段中,现在我们想查出年龄在30岁以上的人的存款金额,便可以使用如上格式进行查询。是不是很方便呢。2.SqlServerSQL Server 2005开始支持XML数据类型,提供原生的XML数据类型、XML索引及各种管理或输出XML格式的函数。随着JSON的流行,SQL Server2016开始支持JSON数据类型,不仅可以直接输出JSON格式的结果集,还能读取JSON格式的数据。对于有用到JSON格式的应用程式来说,这无疑是一利器,因为不再需要使用JSON.Net这类工具进行分析和处理JSON数据,直接利用SQL Server内置函数就可以处理,轻松将查询结果输出为JSON格式,或者搜索JSON文件内容。下面通过实例的方式,展现SQL Server 2016这一新功能。同样详细介绍sqlserver数据库对于json格式数据的查询或者说是解析json格式的数据库内置函数。主要有三个:*openjson() *JSON_VALUE() 从JSON字符串中提取标量值。*JSON_QUERY() 从JSON字符串中提取对象或数组。如果直接对JSON进行标量查询,可以使用JSON_VALUE函数。该函数使用一种类似JavaScript的符号定位JSON对象中的值。它使用$符号表示object的根,点号表示属性,方括号表示数组索引。它与PostgreSQL中的json_extract_path_text函数等效。JSON数据可以直接索引,但开发者可以毫不费力地在标量数据上实现同样的效果。只需要使用JSON_VALUE函数创建一个计算列,然后在这个列上创建索引。下面还是上面那个例子我们来写一下查询年龄在30岁以上人的存款金额,我们可以使用JSON_VALUE来处理:select money from aa.count where JSON_VALUE(person,'$.age') > '30';
相关文章推荐
- postgresql 数据支持 jsonb/json中 array或int 类型进行的交集比较
- PostgreSQL json jsonb 支持的value数据类型,如何构造一个jsonb
- JAVAWEB开发之SpringMVC详解(二)——高级开发、数据回显、参数绑定集合、图片上传、json交互、validation校验、异常处理、RESTful支持、拦截器
- 基于MVC5和Bootstrap的jQuery TreeView树形控件(二)之数据支持json字符串、list集合
- EZDML支持在ORACLE和SQLServer异构数据库之间导出备份和导入恢复数据
- AJAX Unit02: JSON 、 使用JSON实现数据交换 、 jQuery对AJAX的支持
- JSON传数据,JSONP跨域(外域JS调用本地回调函数):需外域服务端支持
- 发布NBearLite v1.0.0 beta - 全面支持SqlServer,Oracle,MySql,PostgreSql数据库存储过程调用代码生成(C#/VB.NET)
- Mysql5.7支持Json数据类型
- 通过使用cJSON使得C语言支持JSON数据
- Jersey对返回Json数据格式的支持
- 高性能数据序列化库,可序列化为binary,也可序列化为json,支持C++ java python php objectc 语言,兼容json数据格试,可以互相转换,跨语言交换数据,网络传输,远程调
- postgresql 9.5 版本中JSONB数据类型新增的一些函数与功能
- HGDB默认支持xml数据类型;Postgresql如若使用xml需在编译时指定
- 介绍PostgreSQL中的jsonb数据类型
- 【SqlServer系列】JSON数据
- 数据管理工具Navicat PostgreSQL新增跨平台支持
- PostgreSQL JSON ARRAY 数据类型
- IE支持直接查看Json数据注册表代码
- 支持XML和JSON数据的图表控件FusionCharts XT