首页  

MySQL8 JSON 使用     所属分类 mysql 浏览量 29
MySQL8.0 增强了对 JSON 数据类型的支持,
提供了类似 NoSQL 数据库的功能,同时保持了传统关系型数据库的优势。
处理结构化数据和半结构化数据

主要 JSON 功能
JSON 数据类型:
专门用于存储 JSON 文档
提供自动验证,确保存储的是有效的 JSON

JSON 函数:
创建:JSON_ARRAY(), JSON_OBJECT()
查询:JSON_EXTRACT() 或 -> 操作符
修改:JSON_SET(), JSON_INSERT(), JSON_REPLACE()
删除:JSON_REMOVE()
其他:JSON_CONTAINS(), JSON_KEYS() 等

JSON 路径表达式:
使用类似 $.user.address.city 的路径访问嵌套数据

使用示例

-- 创建带JSON列的表
CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100),
    profile JSON
);

-- 插入JSON数据
INSERT INTO users (name, profile) VALUES (
    'John Doe',
    JSON_OBJECT(
        'age', 30,
        'email', 'john@example.com',
        'address', JSON_OBJECT(
            'street', '123 Main St',
            'city', 'New York'
        ),
        'hobbies', JSON_ARRAY('reading', 'hiking')
    )
);

-- 查询JSON字段
SELECT name, profile->'$.address.city' AS city FROM users;

-- 更新JSON字段
UPDATE users 
SET profile = JSON_SET(profile, '$.age', 31, '$.address.city', 'Boston')
WHERE id = 1;

-- 使用JSON路径创建索引
ALTER TABLE users ADD INDEX idx_city ((CAST(profile->'$.address.city' AS CHAR(50))));


优势
灵活的数据模型:可以混合关系型和文档型数据
高性能:优化的JSON存储和索引

完整的事务支持

丰富的查询能力:结合SQL和JSON查询

上一篇     下一篇
spring线程池 ThreadPoolTaskExecutor 配置

Apache Bench (ab) 性能测试

《财富与周期:宏观经济第一课》笔记

国际局势常用术语

《财富与周期:宏观经济第一课》 精华

五月花号(Mayflower)与 美国历史的开端