SQL 窗口

概述

进入 OceanBase 开发者中心(OceanBase Developer Center,ODC)的数据库管理页面后,在顶部导航栏单击 工作台 标签,在弹出下拉菜单中单击 SQL 窗口 以完成新建。

SQL 窗口中提供可编辑脚本的 SQL 编辑区域,显示运行结果的执行记录页签与结果页签,同时 SQL 窗口也支持运行 PL 语句。

Image 461

SQL 编辑区域

在 SQL 窗口的编辑区域可体验更多细节:

操作

说明

提供输入自动提示功能

在 SQL 编辑区编写脚本时提供输入自动提示功能以提升编辑 SQL 语句效率。

例如:权限账户进行 SQL 语句编辑时,支持自动补全表名功能(跨库查询支持补全表名)

标识关键字和智能识别代码

窗口中会对数据库的关键字进行不同颜色的标识并可智能识别代码。

右键单击编辑区 SELECT 语句中的表、视图和函数名称

右键单击编辑区 SELECT 语句中的表、视图和函数名称时将提供常见操作键,同时将鼠标放置在表的名称上会显示字段信息。

拖拽对象列表至 SQL 编辑区

在对象列表中可将目标对象直接拖放至 SQL 编辑区中,以方便在语句中填充对象名。

  • 如为表 / 视图对象,拖放对象名 SQL 编辑区时,在 快速生成 弹窗中,可选择快速生成的 SQL 语句(在登录账号的 个人设置 > 对象拖放生成语句类型 中,可设置拖放表 / 视图对象时默认生成的语句类型)。

  • 除表/视图外的其它对象,拖拽对象名直接将对象名拖拽至 SQL/PL 窗口。

    SQL 窗口-拖拽表对象快速生成不同类型

支持共享/独立 Session

ODC SQL 窗口支持 共享 Session独立 Session 模式。

  • 共享 Session:支持在同一个连接内打开多个窗口,但不允许多窗口并行执行 SQL 。

  • 独立 Session:支持在同一个连接内打开多个窗口,允许并行执行 SQL。

在 SQL 窗口标签右侧单击 +,即可打开多个 SQL 窗口。SQL 窗口默认为共享 Session 模式,可以在顶部导航栏的右上角登录账号的 个人设置 中设置为立 Session 模式。

SQL 窗口-SQL 编辑区域2

支持特殊符号异常识别

SQL 窗口的编辑区支持特殊符号异常识别,异常符号会被黄色波浪下划线进行标识。

查看执行状态

鼠标悬停在 SQL 窗口标签上,会显示窗口名称和执行状态。

SQL 窗口-SQL 编辑区域1
说明
  • Oracle 模式下 ODC 自动提交默认设置为关,如需手动提交事务,可在 SQL 窗口中的设置 > 设置会话变量 或在顶部导航栏中的 会话 > 会话属性 页面修改变量 autocommit 的值进行设置,但 SQL 窗口中的 设置 操作仅对当前 SQL 窗口有效。详情请参见 会话管理

  • 事务手动提交模式下,需设置变量 ob_trx_idle_timeout 大于等于设置的 SQL 查询超时时间,否则一个事务内两个 SQL 之间的执行间隔超过 ob_trx_idle_timeout 设置的时间,连接会终止。同时需注意 ob_trx_idle_timeout 设置过大会导致该会话占用内存无法及时释放,需谨慎设置。

用户指南-SQL 窗口-SQL 编辑区域

除编辑 SQL 语句时可体验上述细节,编辑区的工具栏中同时提供以下功能键:

功能

说明

运行

单击该按钮运行当前 SQL 窗口中所有的 SQL 语句。连接中有多个窗口且其他窗口中的语句在正在运行时,该按钮不可用。

运行当前语句

单击该按钮运行当前您选中的所有 SQL 语句或当前光标所在行的 SQL 语句。连接中有多个窗口且其他窗口中的语句在正在运行时,该按钮不可用。

终止

单击该按钮终止正在运行的语句。

执行计划

查看选中的或当前光标所在的 SQL 语句在执行前系统预估的执行计划(EXPLAINPLAN操作的结果),展示的执行数据可能与实际执行语句后的数据略有不同,您可以使用该功能评估 SQL 语句。

单击 执行计划 按钮,在 计划详情 页签中,单击 查看格式化信息 切换至格式化展示页面。

查找/替换

在查找框内输入内容以对脚本进行检索,查找后可在替换框内输入内容以对查找内容进行替换。

撤销

将脚本回退到上一步操作执行的结果。

重做

执行 撤销 操作后,对脚本重新执行撤销前的操作。

格式化

单击该按钮对选中的 SQL 语句或当前 SQL 窗口中的所有 SQL 语句进行统一的格式化(缩进、换行和高亮关键字等操作)。

IN 值转化

批量复制转化工具,适用于查询数据时对复制的行或列结果进行格式转化。

将批量数据粘贴在 SQL 编辑区后,选择复制的数据,单击 IN 值转化 按钮,即可转化成 in('A','B')格式。

  • 列值分隔符号为换行符。

  • 行值分隔符为空格或 TAB 值。

大小写

提供 全部大写全部小写 首字母大写 三种效果,将您在脚本中选中的语句转换为对应形式。

缩进

提供 添加缩进删除缩进 两种效果,为您在脚本中选中的语句添加或删除包含的缩进。

注释

提供 添加注释删除注释 两种效果,将您在脚本中选中的语句转换为注释或转换为 SQL 语句。

保存脚本

单击该按钮保存当前窗口中的脚本。之后您再次进入工作台可以直接打开保存好的脚本。每个用户只能看到自己保存的 SQL 脚本,且脚本名不允许重复。打开已保存的脚本后,您可以继续对该脚本进行编辑。

设置

  • Delimiter:在下拉列表中选择您想要的符号以完成界定符的设置。目前支持设置 ;///$$$ 等 5 种形式的界定符。

  • 查询结果限制:设置查询结果返回的条数,默认值为 1000 行。

  • 会话变量:可编辑、刷新和搜索变量。

代码片段

提供内置语法片段和自定义语法片段供您查看和引用。详情请查看 代码片段

提交

  • Oracle 模式下自动提交(autocommit)默认设置为关(OFF),因此需单击该按钮以手动提交当前事务。单击提交时会提示当前连接采用共享 Session,提交操作会对所有窗口生效,单击 确认 后提交生效。

  • MySQL 模式下自动提交(autocommit)默认设置为开(ON)将不展示该按钮。连接中有多个窗口且其他窗口中的语句在正在运行时,该按钮不可用。

    说明

    可通过 SQL 窗口中的设置 > 会话变量 或顶部导航栏中的 工具 > 会话属性,修改自动提交(autocommit)属性。

回滚

  • Oracle 模式下,会话变量 中的自动提交(autocommit)为关(OFF)时,单击该按钮以回滚当前事务。单击时会提示您当前连接采用共享 Session,回滚操作会对所有窗口生效,单击 确认 后回滚生效。

  • MySQL 模式下,会话变量 中的自动提交(autocommit)为开(ON)将不展示该按钮。连接中有多个窗口且其他窗口中的语句在正在运行时,该按钮不可用。

运行 PL 语句

SQL 窗口中支持编辑 PL 语句,在编辑区中编写 PL 语句完毕后使用选择的界定符作为结尾。

ODC 目前支持通过以下方式完成界定符的设置:

  • 在 SQL 编辑区的工具栏中单击 设置 按钮,在弹窗中的 Delimiter 选择框中选择所需设定的界定符。

  • 个人设置 页面中的 界定符设置 选择框中选择所需的界定符。

  • 显示 PL 行号和错误位置的编译错误信息。

  • 在左侧导航栏中鼠标右键单击 PL 对象并选择 运行,支持设置参数值为 DEFAULT、NULL 或空字符串。

    重要
    • 自 ODC V2.4.1 之后版本,可在编辑区中使用 DELIMITER 语句直接定义界定符,设置 中的 Delimiter 项会回显所设置的界定符。

    • 可直接使用 / 分隔 PL 语句。

在 SQL 中运行 PL 语句后,结果页签支持 DBMS 输出。

Image 693

执行记录页签

用户指南-SQL 窗口-执行结果页签

在执行记录页签中您可以查看当前连接进程中每次执行 SQL 语句的记录,包括 状态时间SQL 语句结果TRACE ID耗时 执行详情(即执行计划)等信息。

功能

说明

复选框

勾选列表前的复选框复选框后单击 删除,可批量选中并清理多条执行记录。

TRACE ID

执行记录 ID。

重要

如 TRACE ID 为空,请确保该语句运行时 enable_sql_audit 系统参数及 ob_enable_trace_log 变量值均为 ON。具体步骤:

  1. 单击 会话 > 会话属性 > 会话变量,分别搜索 enable_sql_audit 和 ob_enable_trace_log 参数;

  2. 单击 会话变量 页签中的 编辑 图标,在弹出的 编辑变量 中,将 OFF 值改为 ON 后确定。

  3. 打开系统参数:

    obclient> alter system set enable_sql_audit='True';
    Query OK, 0 rows affected (0.06 sec)

DB 耗时

可将鼠标箭头放置在 DB 耗时 信息后的提示图标上,弹出的提示信息中可查看对 SQL 执行的全链路耗时信息,以验证各个阶段的耗时与实际是否相符。

执行详情

默认展示文本计划。

执行详情 项下,单击 查看,可在 执行详情 页面查看 基本信息耗时统计I/O 统计、执行的 SQL 语句计划统计和大纲

日志页签

在该页签可查看当前 SQL 窗口的执行记录。

SQL 窗口-日志页签

结果页签

SQL 窗口-结果页签

在该页签可查看当前 SQL 语句的执行结果。结果页签中显示的结果集支持进行以下交互操作以方便日常开发工作:

操作

说明

鼠标选中目标范围

返回的结果集支持通过鼠标选中目标范围后直接通过快捷键复制至外部文件,可单击字段名称或行号直接选中整行或整列。

亦可通过工具栏中的 导出 工具将结果集中的数据导出到本地文件。

选择多行/多列

  • 按 Shift 键,可选择连续多行/多列;

  • 按 Ctrl/Command 键,可选择不连续的多行/多列。

右键单击单元格

提供 复制/输出到剪切板 功能键以直接将数据复制到外部文件中。

右键单击行序号

提供 复制行/冻结此行/解除全部冻结行 功能。

  • 复制行:复制选中的行;

  • 冻结此行:将选中行置顶并冻结,冻结行和表头固定下方内容可垂直滚动;支持冻结多行;

  • 解除全部冻结行:将所有冻结行恢复。

放大图标

当单元格中的数据过长导致无法全部显示时,可通过放大图标查看单元格中的全部数据:

  1. 将鼠标箭头放置在目标单元格上;

  2. 单击单元格右侧出现的放大图标放大按钮,在弹出的大字段展示弹窗中可查看单元格中的全部数据。

    说明

    如为大字段,默认按文本展示大字段内容,可切换至十六进制查看同时支持下载打字段内容至本地。

BLOB 大对象

结果页签中:

  • Oracle 模式下,CLOB,BLOB,RAW 支持直接编辑文本内容、编辑十六进制数据和上传文件(限制在 200 KB 内)。

  • Mysql 模式下,BLOB,MEDIUMBLOB,TINYBLOB 等 XLOB 支持直接编辑文本内容、编辑十六进制数据和上传文件。

右键单击结果页签的标签名(如 结果1

在弹出的列表中单击 固定 可使当前结果页签保持展示状态,当执行一条新的查询时当前结果不会被覆盖而是生成一个新的结果展示页签,以方便对比不同的查询结果。

单击 解除固定 以取消目标结果页签的固定状态。

筛选、排序和搜索按钮

结果集中每个字段名称后提供筛选、排序和搜索按钮,可对单列的数据直接进行筛选、排序和搜索。

拖动列名

支持在结果集中直接拖动列名以调整各字段的顺序。

调整列宽

支持拖动调整列宽。

同时,结果页签的导航栏中提供以下工具:

Image 697

工具

说明

列模式

以表格的形式展示一行选中的数据。在 列模式 页面可以进行上一行、下一行的切换展示,对于列数量比较多场景,列模式 比较方便行数据的查看。参考步骤如下:

  1. 选中需查看的数据后,单击 列模式列模式按钮按钮;

  2. 在弹出的 列模式 页面中,可单击左右按钮查看上下行列值;

  3. 鼠标移动至某值字段,单击 放大按钮放大按钮,可查看该列字段详情;

  4. 列模式 列表中,可通过 备注 查看表中对应的列注释信息。修改备注信息步骤如下:

    1. 在左侧导航栏的表列表中,右键单击目标表,选择 查看表结构,进入表属性管理页签;

    2. 在属性页签的左导航栏中单击 标签;

    3. 选择字段名,单击编辑图标,弹出 编辑字段 弹窗;

    4. 字段注释 中,填写字段注释后,单击 确定

    5. SQL 确认 弹窗,单击 执行,完成修改备注信息;

    6. 列模式 中即会显示修改的备注信息。

列管理

筛选在页面中展示的列。

回到开始

跳转至第 1 页。

上一页

向上翻页。

下一页

向下翻页。

跳至底部

跳转至最后一页。

搜索

在搜索框中输入关键字查询所需结果。

编辑

单击 编辑 按钮开启对当前展示的结果集的编辑状态,编辑态中提供 添加一行删除复制当前行取消确认修改(当自动提交设置为开时,单击该按钮事务被自动提交) 和 修改并提交(自动提交设置为关时显示该按钮) 等编辑操作。同时可在编辑态下双击目标数据直接进行修改,或是通过上述操作按钮进行快捷操作。

在编辑态中右键单元格,弹出的菜单中提供 复制设置为 Null 两个操作键。

说明

通过结果集是否支持编辑预判断功能,在 SQL 执行时获取到 ResultMetaData 信息,可在 SQL 执行结果出来时同步判断结果集是否可编辑:

  • 如当前结果集不支持编辑,编辑按钮隐藏,且提示当前结果集不可编辑。

  • 如当前结果集支持编辑,编辑按钮呈可点击态,可点击进入结果集编辑页面(支持编辑场景:单表/单视图查询)。

  • 目前不支持包含 SET 类型和 ENUM 类型的结果集编辑。

下载数据

将查询结果导出为 CSV、SQL 或 Excel 文件:

  • 导出 SQL 文件:编辑 查询 SQL 语句,选择导出的 查询结果条数限制文件名称文件格式(SQL)文件编码数据脱敏 SQL 文件设置表名);

  • 导出 CSV 文件:编辑 查询 SQL 语句,选择导出的 查询结果条数限制文件名称文件格式文件编码数据脱敏 CSV 设置包含列头空字符串转为空值字段分隔符文本识别符换行符号);

  • 导出 Excel 文件:编辑 查询 SQL 语句,选择导出的 查询结果条数限制文件名称文件格式文件编码数据脱敏Excel 文件设置包含列头导出 SQL 到另一个 Sheet)。

    说明
    • 支持对导出数据进行脱敏处理。

    • 导出数据条数不再受查询窗口的条数限制,可自定义导出条数。

    • 导出 CSV 格式时,默认导出的是 CSV 文件可以直接用 EXCEL 软件打开。

    • 导出 EXCEL 格式时可自定义是否包含列头,可选择是否导出查询的 SQL 语句。

    SQL 窗口-结果页签-下载数据

计划

查看当前 SQL 语句执行后的实际资源消耗及执行计划,可快速判断 SQL 语句的优劣。

阿里云首页 云数据库 OceanBase 相关技术圈