MariaDB 10.0.X中,动态列支持 JSON 格式来获取数据。

2023-05-16

MariaDB 10.0.X中,动态列(Dynamic Columns),可以支持 JSON 格式来获取数据。


为了兼容传统SQL语法,MariaDB 10和MySQL5.7支持原生JSON格式,即关系型数据库和文档型NoSQL数据库集于一身


使用说明:

###表结构


create table assets (
  item_name varchar(32) primary key, -- A common attribute for all items
  dynamic_cols  blob  -- Dynamic columns will be stored here
);  


###插入JSON格式数据


mysql> INSERT INTO assets VALUES 
    ->   ('MariaDB T-shirt', COLUMN_CREATE('color', 'blue', 'size', 'XL'));
Query OK, 1 row affected (0.02 sec)

mysql> INSERT INTO assets VALUES
    ->   ('Thinkpad Laptop', COLUMN_CREATE('color', 'black', 'price', 500));
Query OK, 1 row affected (0.01 sec)  


###获取Key(键)color的Value(值):


mysql> SELECT item_name, COLUMN_GET(dynamic_cols, 'color' as char) AS color FROM assets;
+-----------------+-------+
| item_name       | color |
+-----------------+-------+
| MariaDB T-shirt | blue  |
| Thinkpad Laptop | black |
+-----------------+-------+
2 rows in set (0.00 sec)  


###获取全部Key(键)


mysql> SELECT item_name, column_list(dynamic_cols) FROM assets;
+-----------------+---------------------------+
| item_name       | column_list(dynamic_cols) |
+-----------------+---------------------------+
| MariaDB T-shirt | `size`,`color`            |
| Thinkpad Laptop | `color`,`price`           |
+-----------------+---------------------------+
2 rows in set (0.00 sec)  


###获取全部Key-Value


mysql> SELECT item_name, COLUMN_JSON(dynamic_cols) FROM assets;
+-----------------+-------------------------------+
| item_name       | COLUMN_JSON(dynamic_cols)     |
+-----------------+-------------------------------+
| MariaDB T-shirt | {"size":"XL","color":"blue"}  |
| Thinkpad Laptop | {"color":"black","price":500} |
+-----------------+-------------------------------+
2 rows in set (0.01 sec)  


###删除一个Key-Value:


mysql> UPDATE assets SET dynamic_cols=COLUMN_DELETE(dynamic_cols, "price") 
    -> WHERE COLUMN_GET(dynamic_cols, 'color' as char)='black';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> SELECT item_name, COLUMN_JSON(dynamic_cols) FROM assets;
+-----------------+------------------------------+
| item_name       | COLUMN_JSON(dynamic_cols)    |
+-----------------+------------------------------+
| MariaDB T-shirt | {"size":"XL","color":"blue"} |
| Thinkpad Laptop | {"color":"black"}            |
+-----------------+------------------------------+
2 rows in set (0.00 sec)  


###增加一个Key-Value:


mysql> UPDATE assets SET dynamic_cols=COLUMN_ADD(dynamic_cols, 'warranty', '3 years')
    -> WHERE item_name='Thinkpad Laptop';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> SELECT item_name, COLUMN_JSON(dynamic_cols) FROM assets;                            
+-----------------+----------------------------------------+
| item_name       | COLUMN_JSON(dynamic_cols)              |
+-----------------+----------------------------------------+
| MariaDB T-shirt | {"size":"XL","color":"blue"}           |
| Thinkpad Laptop | {"color":"black","warranty":"3 years"} |
+-----------------+----------------------------------------+
2 rows in set (0.00 sec)  


###更改一个Key-Value:


mysql> UPDATE assets SET 
dynamic_cols=COLUMN_ADD(dynamic_cols,'color', 'white') WHERE 
COLUMN_GET(dynamic_cols, 'color' as char)='black';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> SELECT item_name, COLUMN_JSON(dynamic_cols) FROM assets;
+-----------------+----------------------------------------+
| item_name       | COLUMN_JSON(dynamic_cols)              |
+-----------------+----------------------------------------+
| MariaDB T-shirt | {"size":"XL","color":"blue"}           |
| Thinkpad Laptop | {"color":"white","warranty":"3 years"} |
+-----------------+----------------------------------------+
2 rows in set (0.00 sec)  



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MariaDB 10.0.X中,动态列支持 JSON 格式来获取数据。 的相关文章

  • Intro to asp.net MVC 简单的小程序(2)

    我们做的很简单 xff0c 就是一个电影的表单 xff0c 显示还有创建 强大的封装真的很好用 xff0c 当我们新建的视图的时候 xff0c 强类型下面都有封装好的 Create List Details 很多 xff0c 我们只要选择一
  • 利用网站上传漏洞使用一句话木马控制服务器

    一句话木马 常用于php asp aspx php lt php echo shell exec GET 39 cmd 39 gt asp lt execute request 34 value 34 gt aspx lt 64 Page
  • 用MotoMidMan给L7批量安装java程序

    在给手机装完驱动后 可以通过MotoMidMan给手机内存安装java程序 需要资源 数据线 MotoMidMan java程序 由一个 jar文件与一个 jad文件组成 操作步骤 1 下载完的是个压缩包 扩展名为 rar 解压完的文件清单
  • 28. Implement strStr()

    public class Solution public int strStr String haystack String needle int next 61 new int needle length generateNextArra
  • Oracle数据库删除了数据如何恢复

    再操作数据库时 xff0c 有时候误删了数据或者更新数据时忘记设置更新条件 xff0c 要是这时候没有提交事务 xff0c 还可以执行回滚操作 要是这时候不小心提交了 xff0c 数据也是可以恢复的 我们只需要执行下面这句sql selec
  • (译)ASP.NET MVC Routing 概述

    ASP NET MVC Routing 概述 在本篇教程中 xff0c 你将会了解到 ASP NET MVC 中一个重要的组件 这个组件叫做 ASP NET Routing xff0c 它负责将客户端请求的路径映射到特定的一个类 Contr
  • eclipse中mysql java驱动的安装

    1 下载mysql connector java x x x zip 2 将压缩包中的mysql connector java x x x bin解压到eclipse中需要导入驱动的工程的根目录下 3 在eclipse中右键该工程选择属性
  • 如何使用gettext, po, mo制作多语言应用程序 (转)

    一 翻译档制作部分 1 制作 po 档 1 生成template文件 xgettext k o ui pref pot ui c pref pot head fuzzy msgid 34 34 msgstr 34 34 34 Project
  • (一) 进程调度

    进程调度算法有FIFO xff0c 优先数调度算法 xff0c 时间片轮转调度算法 xff0c 分级调度算法 xff0c 目前主要是考虑FIFO和优先数调度算法 xff08 静态优先级 xff09 输入 xff1a 进程流文件 xff0c
  • js跳转页面方法(转)

    lt span id 61 34 tiao 34 gt 3 lt span gt lt a href 61 34 javascript countDown 34 gt lt a gt 布丁足迹 秒后自动跳转 lt meta http equ
  • 缓存 ASP.NET 页的某些部分

    生成高性能 可缩放的 Web 应用程序最重要的因素之一是能够在首次请求项时将这些项存储在内存中 xff0c 不管它们是数据对象 页还是页的某些部分 可以将这些项缓存或存储在 Web 服务器上或请求流中的其他软件上 xff0c 如代理服务器或
  • TCP

    RFC 1323 TCP Extensions for High Performance RFC 2488 Enhancing TCP Over Satellite Channels using 传输层端口号定义 https www ian
  • zabbix-proxy安装

    注意 xff0c zabbix proxy的安装和zabbix server的安装不一样 不要混为一谈 xff0c 尤其是数据库的sql结构 rpm ivh http repo zabbix com zabbix 3 0 rhel 6 x8
  • konsole快捷键

    Tab xff1a 自动补全 Ctrl b xff1a 向前移动 xff0c 相当于 lt Left gt Ctrl f xff1a 向后移动 xff0c 相当于 lt Right gt Alt b xff1a 按词向前移动 Alt f x
  • docker中安装了RabbitMQ后无法访问其Web管理页面

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 在官网找了 34 docker run d hostname my rabbit name some rabbit p 8080 15672 rabbitmq 3 mana
  • 网络数据包捕获函数库Libpcap安装与使用(非常强大)

    1 Libpcap简介 Libpcap是Packet Capture Libray的英文缩写 xff0c 即数据包捕获函数库 该库提供的C函数接口用于捕捉经过指定网络接口的数据包 xff0c 该接口应该是被设为混杂模式 这个在原始套接子中有
  • STM32F103控制两个步进电机按照一定转速比运动

    这个暑假没有回家 xff0c 在学校准备九月份的电子设计竞赛 今天想给大家分享一下STM32定时器控制两个步进电机按照一定速度比转动的问题 这次做的05年的电子设计竞赛题目 xff0c 运动悬挂系统 本实验是控制两个步进电机通过一个定滑轮用
  • Android 编程下的 Secret Code

    我们很多人应该都做过这样的操作 xff0c 打开拨号键盘输入 4636 等字符就会弹出一个界面显示手机相关的一些信息 xff0c 这个功能在 Android 中被称为 Android Secret Code xff0c 除了这些系统预置的
  • 用vim格式化代码

    格式化全文 xff1a gg 61 G 自动缩进当前行 xff1a 61 61 这个是原文节选 xff1a 14 6 How do I format indent an entire file You can format indent a
  • C# 之 反射性能优化3

    阅读目录 开始用Delegate优化反射的缺点用Delegate优化反射的优点用CodeDOM优化反射的优点如何用好CodeDOM xff1f 用CodeDOM优化反射的缺点能不能不使用委托 xff1f 根据反射密集程度选择优化方法Code

随机推荐