mysql的json数据类型

MySQL中JSON类型字段的基本用法实例

在MySQL 5.7及更高版本中,引入了JSON数据类型,用于存储和操作JSON格式的数据,JSON是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成,本文将介绍MySQL中JSON类型字段的基本用法实例。

mysql的json数据类型

1、创建表并添加JSON类型字段

我们需要创建一个包含JSON类型字段的表,以下是一个简单的示例:

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    age INT,
    address JSON
);

在这个示例中,我们创建了一个名为users的表,其中包含一个名为address的JSON类型字段。

2、插入JSON数据

向JSON类型字段插入数据时,可以使用JSON格式的字符串,以下是插入JSON数据的示例:

INSERT INTO users (name, age, address)
VALUES ('张三', 25, '{"city": "北京", "street": "朝阳路"}');

在这个示例中,我们将一个包含城市和街道信息的JSON字符串插入到address字段中。

3、查询JSON数据

查询JSON类型字段时,可以使用内置的JSON函数来提取和操作数据,以下是查询JSON数据的示例:

SELECT id, name, age, address->'$.city' AS city, address->'$.street' AS street
FROM users;

在这个示例中,我们使用->操作符从address字段中提取了citystreet属性的值,注意,我们需要使用$符号来访问JSON对象的属性。

4、更新JSON数据

更新JSON类型字段时,可以直接修改JSON字符串,以下是更新JSON数据的示例:

mysql的json数据类型

UPDATE users
SET address = '{"city": "上海", "street": "南京路"}'
WHERE id = 1;

在这个示例中,我们将address字段中的城市信息更新为上海。

5、删除JSON数据

删除JSON类型字段中的数据时,可以直接将其设置为空字符串,以下是删除JSON数据的示例:

UPDATE users
SET address = ''
WHERE id = 1;

在这个示例中,我们将address字段中的数据删除。

6、其他常用JSON函数

除了上述示例中使用的->操作符外,MySQL还提供了许多其他常用的JSON函数,如:

JSON_EXTRACT(json_doc, path[, path] ...):从JSON文档中提取指定路径的值。

JSON_UNQUOTE(json_val):去除JSON值的引号。

JSON_ARRAY([value[, value] ...]):创建一个JSON数组。

JSON_OBJECT([key, value[, key, value] ...]):创建一个JSON对象。

ISNULL(expression):检查表达式是否为NULL,如果表达式为NULL,则返回1;否则返回0。

mysql的json数据类型

IFNULL(expression1, expression2):如果表达式1为NULL,则返回表达式2的值;否则返回表达式1的值。

JSON_LENGTH(json_val):返回JSON值的长度(以字节为单位)。

JSON_TYPE(json_val):返回JSON值的类型(如'null'、'object'、'array'、'string'、'number'或'boolean')。

JSON_DEPTH(json_val):返回JSON值的深度(即嵌套层级数)。

JSON_SEARCH(json_val, one_or_all, search_str[, escape_char[, path] ...]):在JSON值中搜索指定的字符串,如果找到匹配项,则返回其路径;否则返回NULL。

JSON_CONTAINS(json_val, one_or_all, search_str[, escape_char[, path] ...]):检查JSON值是否包含指定的字符串,如果找到匹配项,则返回1;否则返回0。

JSON_KEYS(json_val[, path]):返回指定路径的JSON对象的键列表,如果没有指定路径,则返回根对象的键列表。

JSON_LENGTH(json_val[, path]):返回指定路径的JSON对象的键数量,如果没有指定路径,则返回根对象的键数量。

JSON_MERGE(json_doc1, json_doc2[, path]):将第二个JSON文档合并到第一个JSON文档中,并覆盖相同的键值对,如果没有指定路径,则将第二个文档合并到根对象中。

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/339686.html

(0)
K-seoK-seoSEO优化员
上一篇 2024年2月29日 10:33
下一篇 2024年2月29日 10:36

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入