⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

MySQL JSON 数据类型操作

学习在MySQL中存储和查询JSON数据,使用JSON函数。 · 难度:入门 · +15XP

MySQL JSON 类型

MySQL从5.7开始原生支持JSON数据类型,提供自动验证和高效的二进制存储。通过JSON函数可以灵活提取和修改数据。

创建JSON列

CREATE TABLE users (
    id INT PRIMARY KEY,
    info JSON
);

插入JSON数据

INSERT INTO users VALUES (1, '{"name":"Alice","age":30,"tags":["admin","user"]}');

常用JSON函数

函数说明
JSON_EXTRACT()提取JSON字段值
JSON_UNQUOTE()去除结果的引号
JSON_CONTAINS()检查是否包含指定值
JSON_ARRAY_APPEND()向数组追加元素
JSON_SET()更新或插入字段

查询示例

-- 提取name字段
SELECT id, JSON_UNQUOTE(JSON_EXTRACT(info, '$.name')) AS name FROM users;

-- 使用简写 ->> SELECT id, info->>'$.name' AS name FROM users;

-- 查询年龄大于25的用户 SELECT * FROM users WHERE CAST(JSON_EXTRACT(info, '$.age') AS UNSIGNED) > 25;

-- 使用JSON_CONTAINS查找tag包含admin的用户 SELECT * FROM users WHERE JSON_CONTAINS(info->'$.tags', '"admin"');

索引JSON列

可以在JSON列的虚拟列上创建索引:

ALTER TABLE users ADD COLUMN age INT GENERATED ALWAYS AS (info->>'$.age') STORED;
CREATE INDEX idx_age ON users(age);

练习提示

创建一个包含JSON列的表,插入复杂嵌套数据,练习提取和更新操作。

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 68 篇
0 完成
🔥 0