MySQL 8.0发布说明
MySQL 8.0源码文档10bet官方网站
在MySQL中,一个表可能包含传统的关系数据、JSON值,或者两者都包含。您可以将传统数据与JSON文档结合起来,方法是将文档存储在具有本机格式的列中JSON
数据类型。
中的city表world_x
模式。
城市表有五列(或字段)。
+---------------+------------+-------+-------+---------+------------------+ | 字段默认零关键| | | | |类型多 | +---------------+------------+-------+-------+---------+------------------+ | | int ID (11) | | PRI零| | auto_increment | | | char(35) |没有名称 | | | | | CountryCode | char(3) |不 | | | | | 区没有| char (20) | | ||||Info | json | YES | | null | | +---------------+------------+-------+-------+---------+------------------+
要将文档插入表的列中,请传递给值()
方法以正确的顺序创建一个格式良好的JSON文档。在下面的示例中,将文档作为要插入Info列的最终值传递。
mysql-py > db.city.insert()。values(None, "San Francisco", "USA", "California", " {"Population":830000} ")
可以使用搜索条件发出查询,该搜索条件计算表达式中的文档值。
mysql-py > db.city。选择([“ID”、“名称”、“CountryCode”,“区”,“信息”)。where("CountryCode =:country and Info->'$. ")人口”> 1000000)。bind(“国家”、“美国 ') +------+----------------+-------------+----------------+-----------------------------+ | ID |名称| CountryCode | |信息 | +------+----------------+-------------+----------------+-----------------------------+ | 纽约美国纽约3793 | | | |{“人口”:美国洛杉矶8008278}| | 3794 | | | |加州{“人口”:3694820}| | 3795 | |美国芝加哥伊利诺斯州| |{“人口”:2896016}| | 3796 | | |美国德克萨斯州休斯顿|{“人口”:1953631}| | 3797 | | | |美国宾夕法尼亚州的费城{“人口”:1517550}| | 3798 | | |美国亚利桑那州凤凰城|{“人口”:美国圣地亚哥1321045}| | 3799 | | | |加州{“人口”:1223400}| | 3800 | | |美国德克萨斯州达拉斯|{“人口”:1188580}| | 3801 | | |美国德州圣安东尼奥|{“人口”:1144646 } | +------+----------------+-------------+----------------+-----------------------------+ 9行集(0.01秒)
看到使用关系表和文档为更多的信息。
看到第11.5节,JSON数据类型有关数据类型的详细描述。