MySQL SHELL 是如何操作关系表的?

MySQL SHELL 是如何操作关系表的?

发布时间:2022-04-02 浏览次数:3087

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 组件的方式,非常灵活。

相关推荐

产品试用 产品试用
400-820-6580 免费电话