文章目录
- 前言
- 一、json格式
- 二、开始使用
- 1.创建表
- 2.插入数据
- 3.展示
- 总结
前言
上一篇讲了下mysql8中的自带的递归函数,这次简单说下mysql8中的新支持的数据json格式使用;
一、json格式
没错,就是平时开发中的通用数据格式json ,其中在字段类型上,新增了一个,就是json
二、开始使用
1.创建表
建表语句 :
CREATE TABLE `orders` (
`order_id` int NOT NULL,
`customer_name` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL,
`order_date` date DEFAULT NULL,
`order_items` json DEFAULT NULL,
PRIMARY KEY (`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
2.插入数据
插入语句:
INSERT INTO `orders` VALUES (1, 'John', '2021-01-01', '{\"item1\": \"book\", \"item2\": \"pen\", \"item3\": \"pencil\"}');
INSERT INTO `orders` VALUES (2, 'Norn', '2021-01-01', '{\"item1\": {\"item1\": \"book2\", \"item2\": \"pe2n\", \"item3\": \"pencil2\"}, \"item2\": \"pe2n\", \"item3\": \"pencil2\"}');
3.展示
select * from orders where order_items ->>'$.item2' ='pen'
select * from orders where order_items ->>'$.item1.item2' ='pe2n'
也就是只要是json内容,里面的key可以继续作为查询条件, 继续点 调用就行了: $.item1.item2
总结
其实这个新增的类型json我们比较熟悉,如果熟悉java 其实用法也没有很稀奇;
如果你之前有了解过mongodb,那么你会觉得这是在模仿吧? 哈哈 $ …这些调用,简直就跟复制功能一样~~
- 如果用json,其实可以解决一些常见的,就例如订单–订单详细之类的,就不用连表查询了,而且订单明细,基本不会再变动,类似这种数据,的确可以使用json格式优化;