概述在MySQL数据库中,直到5.7版本才开始引入JSON数据类型。在此之前,如果要在表中保存JSON格式的数据,需要依赖于varchar或text等数据类型,如果在5.7版本之前的数据库中使用JSON类型创建表,显然会没有成功。如何使用JSON类型1.创建表在MySQL中创建一个包含JSON数据列的表。其实和数据类型没有太大区别。具体示例如下:CREATETABLEtab_base_info(idBIGINTNOTNULLPRIMARYKEYauto_increment,contentjson);2.在语句中插入一条新数据,注意JSON数据列的内容:INSERTINTTOtab_base_info(content)VALUES('{"author":"HWB","toutiao":"https://www.toutiao.com/a6712764513814315528"}');这里需要提醒的是:JSON列存储的数据要么为NULL,要么必须为JSON格式,否则会报错。JSON数据类型没有默认值(声明时为“DEFAULTNULL”)。JSON数据类型的含义其实在没有JSON数据类型支持的情况下,我们也可以通过varchar类型或者text类型来保存这种格式的数据,但是为什么要增加对这种数据格式的支持呢?必须有更多的varchar或text是存储这种类型的更好的地方。保证对JSON数据类型的强验证。JSON数据列会自动校验该列存储的内容是否符合JSON格式。如果格式不正常,会报错。但是,varchar类型和text类型没有这种机制。MySQL还提供了一组用于操作JSON数据的内置函数。一种更优化的存储格式,JSON列中存储的JSON数据将转换为内部特定的存储格式,从而实现快速读取。可以根据JSON格式的特性支持修改特定的键值。(也就是不需要把全部内容取出来放到程序里遍历然后查找替换再插回去,MySQL自带的函数让你用一条SQL就可以搞定statement)MySQL对JSON的内置函数MySQL对JSON数据格式的操作提供了很多高效的内置函数。我们可以从MySQL官网找到非常详细的介绍和使用说明。下面贴出JSON函数的使用指南:其实从首页的JSON函数介绍也可以看到,这些内置函数支持我们创建、查找、替换、返回值。例如,我们可以使用JSON_REPLACE()函数来替换指定的内容。但是,要通过纯SQL语句实现最终的内容替换,还需要执行UPDATE语句。例如:UPDATEtab_base_infoSETcontent=json_replace(content,'$.author',"xiaoming")WHEREid=1;其中“$.***”表示找到JSON内容中匹配的修改字段。空间有限。这里主要介绍json的一些概念。后面会介绍json类型的具体用法。感兴趣的朋友可以关注一下~
