zoukankan      html  css  js  c++  java
  • MySQL5.7中使用JSON

    一、简介

    因为项目需要,存储字段存储成了JSON格式,MySQL5.7开始就原生支持JSON了。

    二、创建表

    CREATE TABLE `user` (
      `uid` int(11) NOT NULL AUTO_INCREMENT,
      `info` json DEFAULT NULL, #注意desc字段类型为json
      PRIMARY KEY (`uid`)
    ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

    在MySQL5.7后,多了一个字段类型:json

    原生的JSON优势如下:

    1.存储上类似text,可以丰非常大的数据。

    2.JSON有效性检查:插入的数据必须是JSON类型的字符串才行。

    3.相比于传统形式,不需要遍历所有字符串才能找到数据。

    4.支持索引:通过虚拟列的功能可以对JSON中部分的数据进行索引。

    三、使用

    1.插入SQL语句,注意info字段必须要是json类型,否则插入失败

    INSERT  INTO `user`(`uid`,`info`) VALUES (1,'{"mail": "jiangchengyao@gmail.com", "name": "David", "address": "Shangahai"}'),(2,'{"mail": "amy@gmail.com", "name": "Amy"}');

    2.简单查询

    SELECT uid,json_extract(info,'$.mail') AS 'mail',json_extract(info,'$.name') AS 'name' FROM USER;

    结果是:

     四、说明

    对于某一列是json而言,需要使用内置的函数json_extract(列名, '$.key')这个函数有2个参数,第一个参数是json列的列名,第二个参数$.key其中key为json字符串中某一个key。

  • 相关阅读:
    Modbus RTU与Modbus TCP的区别
    《对比Excel,轻松学习Python数据分析》笔记
    字符串 批量删除
    地图服务在线资源
    Java环境变量配置及maven配置
    Android学习路线
    MySQL备份脚本,应该这么写
    Windows中mysql5.6升级5.7
    SQL Server数据分析面试题(202008)
    PYTHON-未知错误
  • 原文地址:https://www.cnblogs.com/mayi0312/p/13649698.html
Copyright © 2011-2022 走看看