数据库基础——JSON

数据库基础——JSON,第1张

存储JSON文档所需的空间与LONGBLOB或LONGTEXT大致相同;存储在JSON列中的任何JSON文档的大小都限制为max_allowed_packet系统变量的值。可以使用JSON_STORAGE_SIZE( )函数获取存储JSON文档所需的空间量。

["ade", 12, null, true, false]

{"k1": "value", "k2": 2}

[99, [78, "e"], {"k1": 1, "k2": "a"}, "de"]

{"k1": 1, "k2": [10, "s"]}

使用JSON路径表达式选择JSON文档中的值。

1、假如json字符串的最大长度不会超过1024字节,那么我们可以定义表结构varchar(1024)。如下图,我们定义一个表t_save_json,有一个自增的id字段以及json字段保存json字符串。

2、如果json字符串中字符是双引号标记的,如{"name":"Q花荣","age":18,"a":"第一条信息"}。那么我们写sql语句保存到数据库时直接用引号括起来就行。如:insert into t_save_json set json = '{"name":"Q花荣","age":18,"a":"第一条信息"}'

3、如果json字符串中字符是单引号标记的,如{'name':'Q花荣','age':18,'a':'第二条信息'}。那么通常的做法需要对单引号进行转义,写sql语句时连续两个''表示单引号。如:insert into t_save_json set json = '{''name'':''Q花荣'',''age'':18,''a'':''第二条信息''}'

但笔者发现mysql中,sql中用双引号来标记json字符串也可以,一般比较少用,笔者也学习了。如:insert into t_save_json set json = "{'name':'Q花荣','age':18,'a':'第三条信息'}"

4、如果json字符串长度太大,那么我们建表时还是应该选择TEXT类型。TEXT采用字符存储,专门为存储大数据而设计。如下图,我们定义表t_save_json_2,json字段类型为TEXT,保存大字符串。

5、使用相同的sql语句,保存json字符串到表t_save_json_2中。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10709397.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存