MySQL是一個非常流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它支持多種數(shù)據(jù)存儲類型。其中,JSON存儲類型是一種非常實用的存儲類型,它可以保存復(fù)雜的數(shù)據(jù)結(jié)構(gòu),而且查詢起來非常方便。
CREATE TABLE `students` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, `info` json DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
上面的代碼是創(chuàng)建一個students表,其中info列使用了json存儲類型。下面我們來看一下如何使用json類型存儲、查詢、更新和刪除數(shù)據(jù)。
存儲數(shù)據(jù)
INSERT INTO `students` (`name`, `info`) VALUES ('張三', '{"age": 18, "gender": "男", "hobby": ["看電影", "打游戲"]}');
上面的代碼向students表中插入了一條數(shù)據(jù),其中info列使用json格式保存了該學(xué)生的年齡、性別和愛好。
查詢數(shù)據(jù)
SELECT * FROM `students` WHERE JSON_EXTRACT(`info`, '$.gender') = '男';
上面的代碼使用JSON_EXTRACT函數(shù)從students表中查詢出所有性別為男的學(xué)生信息。
更新數(shù)據(jù)
UPDATE `students` SET `info` = JSON_SET(`info`, '$.age', 19) WHERE `name` = '張三';
上面的代碼使用JSON_SET函數(shù)更新了張三的年齡信息。
刪除數(shù)據(jù)
DELETE FROM `students` WHERE JSON_EXTRACT(`info`, '$.gender') = '女';
上面的代碼使用JSON_EXTRACT函數(shù)刪除了所有性別為女的學(xué)生信息。
綜上所述,MySQL的json存儲類型具有操作簡便、查詢方便、結(jié)構(gòu)靈活等特點,非常適合存儲復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。