{{ item.name }}
{{ item.name }}

{{ it.name }}

{{ it.text }}

{{ it.name }}

{{ innerIt.name }}

{{ innerIt.text }}

{{news.time}}
{{news.title}}
MySQL SHELL 是如何操作关系表的?
2022-04-02发布 3,112浏览

MySQL SHELL 对关系型数据库的操作涉及到三个组件:

  1. MySQL:传统 mysql,操作比较简单,除了写法有些差异外,基本上等同于 SQL 操作。

  2. MySQL X:基于 X DEV 协议操作 mysql,其中包含很多类,除了可以操作文档数据,也可以操作关系表。

  3. SHELL:包含了以上两个组件,可以随意切换,重点在于如何选择连接协议。

我们来依次看看各个组件对关系表的常用检索方式。

一、mysql 组件

连接数据库:mysql.get_session 或者 mysql.get_classic_session

可以用如下传统拼串方式连接数据库:

MySQL SHELL

也可以用字典的方式连接数据库:

MySQL SHELL


接下来可以用 ClassicSession 类提供的各种方法对关系表进行相关操作,所有的操作都可以直接用函数 run_sql 来执行:

对表 city 查询:

MySQL SHELL

对表 city 插入:

MySQL SHELL


对表 city 删除:

MySQL SHELL

关闭连接:

MySQL SHELL

二、mysqlx 组件

MySQL X 组件包含了很多类,下面我来举几个常用的例子:

依然是先连接数据库 world:X 协议端口 33060 或者 X SOCKET(用 mysqlx.get_session 方法)。

MySQL SHELL

比如找出人口小于800的城市并且列出对应的国家名字:

MySQL SHELL

2.1 SQLRESULT 类:类似于 mysql 游标用法

MySQL SHELL

获取前两行:默认不带字段名

MySQL SHELL

获取带字段名的记录:

MySQL SHELL

2.2 SqlExecute 类:类似于 prepare 语句用法

比如把之前的人口判断条件替换为绑定变量(?或者变量(:a)),这样可以方便多个条件一起查询。

MySQL SHELL

给定两个不同的人口条件:

MySQL SHELL

2.3 Table 类:获取当前连接数据库下单张表,可以对这张表进行任何 DML 操作。(获取 Table 类之前,得先获取 Schema 类)

MySQL SHELL

2.4 Table 类包含几个子类:TableSelect、TableInsert、TableUpdate、TableDelete。

1)TableSelect:保存查询结果

之前查找人口小于 800 的记录结果即为 TableSelect,可以基于此类来后续操作。


MySQL SHELL

只拿出部分字段:

MySQL SHELL

2)TableInsert:执行插入语句

插入一行:

MySQL SHELL

插入多行:有两种方法。

多 VALUES 形式:

MySQL SHELL

3)TableUpdate:执行更新语句

MySQL SHELL

4)TableDelete:执行删除语句

MySQL SHELL

三、SHELL 组件

SHELL 组件可以在 MySQL 和 MySQL X 间随意切换,并且连接后,包含了一个默认数据库类 “db” ,db 等价于 ytt_cnx1.get_current_schema()


MySQL SHELL

依然还是操作表 city,

MySQL SHELL

之后的操作和之前 mysqlx 的一样。

MySQL SHELL

所以如果用 MySQL SHELL 来操作 mysql 关系表,推荐用 SHELL 组件的方式,非常灵活。

上一篇
基于 PROXYSQL 查找从未使用过的表
400-820-6580 13916131869
marketing@actionsky.com
上海市闵行区万源路2138号泓茂中心2号楼
产品详情
关系型数据库
AI数据库
数据库智能管理平台
数据库生态产品
行业案例
金融行业
新零售行业
制造业
通信行业
更多
公司动态
最新新闻
国产化信息
技术分享
关于我们
公司简介
公司分布
国家专利
资质认证
扫码关注公众号
© Copyright 2017, All rights reserved by: 上海爱可生信息技术股份有限公司 沪ICP备12003970号-1 | 法律声明 | 网站地图
沪公网安备 31010402003331号