目录
3.1. 数据库连接管理 ¶
KStudio提供了一个向导,可指导您完成创建连接的步骤。单击应用程序工具栏或数据库导航器视图工具栏中的“ 新建连接” 按钮:
-
单击菜单栏中的“ 数据库” -> “新建连接” 。
-
点击工具栏的“ 连接 ”按钮。
3.1.1. 连接的创建,编辑 ¶
在“连接设置”界面的 “ 常规 ”选项卡上,设置所有主要连接设置。对于大多数驱动程序所需的设置包括:
-
主机IP
-
端口
-
数据库名称
-
用户名和密码
测试连接是否成功,请单击“ 测试链接 ”。
点击“ 完成 ”,连接出现在数据库导航器的连接树中,KStudio 实际连接到数据库。
3.1.2. SSL链接配置 ¶
为保证数据的完整性和安全性,您可以选择开启数字证书,并选择对应的Root证书(根证书/.crt文件)、客户端证书(.crt文件)、客户端证书密钥(.pk8文件)。
测试连接是否成功,请单击“ 测试链接 ”。
3.1.3. 驱动属性 ¶
如您有驱动需求请在“ 创建新连接 ”向导中为新连接选择驱动属性:单击选中合适的数据库类型的名称,单击 “下一步” (要快速找到所需的驱动程序,您可以在驱动程序列表上方的文本字段中键入提示。如果您找不到适合您的数据库的驱动程序,那么可能没有合适的驱动程序,您需要点击左下角图标创建一个)。
具体驱动属性详情参考 8.2 。
3.1.4. 参数中的变量 ¶
您可以在所有连接参数和驱动程序属性中使用变量。变量是系统环境变量或参考 8.3 。
3.1.5. 连接、断开连接与重新连接 ¶
-
连接
为了能够处理数据库的内容和结构,您需要连接到它。创建到数据库的新连接时,KStudio 会自动连接到新数据库,请参阅创建连接。
要使用现有连接,连接到数据库,请在数据库导航视图或Projects视图中,双击该连接。您也可以单击选中该连接,然后单击主菜单上的 “数据库”->“连接” 。
您还可以在连接上右键单击,然后单击上下文菜单上的 “连接” 。
有数据库连接但 KStudio 未连接到数据库,则该连接会显示其原始图标。当 KStudio 连接到数据库时,图标会更改以表示连接状态。
如果 KStudio 无法连接到数据库,连接将出现一个错误标志。如果您尝试连接到这样的数据库,KStudio 会显示一条错误消息,描述错误的原因。
-
断开连接
断开与数据库的连接以释放资源或关闭事务。要断开与数据库的连接,请单击选中 数据库导航 视图或 项目 视图中的数据库连接,然后单击菜单栏上的 “数据库”-> “断开连接”。
也可以在该数据库连接上右键单击,然后单击上下文菜单上的 “断开连接” 。
注:断开连接按钮和菜单项仅适用于那些已激活的数据库连接。
-
重新连接
在与服务器的连接暂时丢失等情况下,您可能需要使数据库连接无效,然后重新连接到它:请单击选中 数据库导航器 中的数据库然后双击连接或 项目 视图中 Connections 下的数据库双击连接,然后单击主菜单上的 “数据库”->“断开/重新连接” 。您也可以在该数据库连接上右键单击,然后单击上下文菜单上的 “断开/重新连接” 。
3.2. 导航树 ¶
3.2.1. 对象的过滤 ¶
对象的过滤有两种方法:
第一种,直接在导航树上方的输入框中,输入要过滤显示的部分或全部对象名称,即可动态的在导航树中显示匹配的对象,此外,右侧的过滤选择按钮,可以设置过滤的范围。
第二种过滤的方法为在选择具体的数据库对象,例如下图中的表,点击鼠标右键选择过滤器,可以向过滤器中添加隐藏或显示对应的对象。选择配置过滤器,可以进一步对过滤器进行配置。过滤规则支持模糊匹配以及正则匹配。
3.2.2. 对象的分页 ¶
导航树上支持对对象的分页,当某一数据库对象数量比较多时,比如数据表。导航树会跟据配置加载对象数目,超出数量的部分可以点击More...依次加载,防止一次加载过多导致性能下降,影响使用体验。默认获取对象的数量为100,可以在首选项中的导航器中设置数量大小。
3.3. 数据库对象管理 ¶
3.3.1. 数据库对象的创建和编辑 ¶
对象管理工具能够管理表、视图、物化视图、触发器、存储过程、函数、序列、外部表、程序包、同义词等数据库对象。
支持指定约束的启用/禁用及validate/novalidate。
-
DISABLE NOVALIDATE :禁用约束,不验证Table中现有的数据
-
DISABLE VALIDATE :禁用约束,验证Table中现有的数据
-
ENABLE NOVALIDATE:启用用约束,不验证Table中现有的数据,但验证新insert的数据
-
ENABLE VALIDATE:启用用约束,验证Table中现有的数据,验证新insert的数据
3.3.1.1. 数据库 ¶
您可通过KStdio对已有连接创建数据库,创建过程为两种方式:
第一种为右键点击“ 数据库 ”文件夹->“ 新建 数据库 ”。
第二种为点击工具栏的“ 数据库 ”图标。
点击后显示新建数据库选项卡。
新建数据库选项卡中含有 基本属性 、 权限 、 DDL 。
基本属性 中输入需要创建的数据库名称,属主以及编码。
注:属主中含有KingBase数据库默认创建的system(数据库管理员)、sso(安全管理员)、sao(审计管理员)以及您的自定义用户(详情参考 用户管理 )。
权限 中可以对此数据库的权限进行限制,设置您需要的权限范围(详情参考 用户管理 )。
DDL 中显示创建此数据库的SQL语句。
设置完成后点击右下角“ 确定 ”按钮完成新建。
3.3.1.2. 模式 ¶
新建模式有两种方式。
第一种为选择您要使用的数据库,右键点击“ 模式 ”文件夹->“ 新建 模式 ”。
第二种为选中需要新建模式的数据库,点击工具栏的“ 模式 ”。
点击后显示新建模式选项卡。
新建模式 选项卡含有 基本属性 、 权限 、 DDL 。
基本属性 中输入需要创建的模式名称以及选择对应属主。
注:属主中含有KingBase数据库默认创建的system(数据库管理员)、sso(安全管理员)、sao(审计管理员)以及您的自定义用户。(详情参考 2.6 )
权限 中给用户和角色分配权限。(详情参考 2.6 )
DDL 中显示创建模式的SQL语句。
点击右下角“ 确定 ”完成新建模式。
3.3.1.3. 表 ¶
表(table)是数据库中最重要的数据库对象,是数据库中数据存储的基本单位。表中的数据按行、列存储。每个表具有一个表名和一组列。
新建表界面中包含表的 基本属性 、 分区 、 约束 、 外键 、 索引 、 触发器 、 权限 、 DDL 等标签页。
在已有数据库的对应模式下创建您所需要的表有两种方式:
第一种为右键点击“ 表 ”文件夹->“ 新建 表 ”
第二种为选中对应模式的文件夹点击工具栏的“ 表 ”图标。
点击后显示新建表选项卡。
基本属性 中含有新建表的名称、表空间、注释。在字段中添加所需的列,定义名称和数据类型、精度(浮点型的精确小数点后位数)、标度(字符所占位数范围)、是否为空、默认值、注释。
约束 中可新建约束,填写约束名称、选择约束类型以及约束列、选择启用和验证。
在完成对新建表的字段添加和设置后点击右下角“ 确定 ”按钮完成新建。
-
基本属性 :用于新建表名,填写及修改表空间、表注释、列名及列类型等表的基本信息的标签页。
隐含列:
隐含列为表中各个列的一个特殊的属性,可以在建表过程中指定,也可以在编辑表的时候变更某一列的隐含属性
如果一个列被标记为隐含列之后,所有非指定该列的DML 行为,例如SELECT * 、COPY、 bulkload 等等,都会忽略该列。而所有指定该列的语句,都会命中该列
自增列:
自增列为表中各个列的一个特殊的属性,需要服务器数据库版本兼容此功能,可以在建表过程中指定。
-
分区 :用于在新建表时创建分区表的标签页。分区表目前支持范围分区、列表分区、哈希分区。
-
范围分区:对数据表中的某个值的范围进行分区,根据某个值的范围,决定将该数据存储在哪个分区上。
-
列表分区:明确指定了根据某字段的某个具体值进行分区,而不是像范围分区那样根据字段的值范围来划分的(该分区的特点是某列的值只有几个)。
-
哈希分区(散列分区):根据字段的hash值进行均匀分布,尽可能的实现各分区所散列的数据相等。
支持对分区表解绑,绑定和交换操作:
-
解绑:解绑分区就是把分区子表从分区主表上分离出来,如果该分区子表也有子表的话,解绑会使该分区子表带着子表分离出来,这样当前分区子表就会成为分区表
-
绑定:绑定就是与解绑相反的操作了,而且绑定只能绑定表属性相同的。可以使普通标变为该表的分区表
-
交换:交换分区中涉及的两个表必须具有相同的列,有主键的话主键要相同,并且除非引用的表为空,否则任何经过验证的外键都不能引用这两个表中的任何一个。交换的时候会有选择校验数据,这个如果数据冲突且不勾选的话也可以交换,如果勾选就不能交换
使用简介:
-
在分区表页面点击新增按钮,增加一个分区类型,选择想要添加的分区类型,例如范围分区。选择分区键,如果是oracle模式且分区类型为范围分区,可以填写间隔表达式。
-
选中刚才新增的分区类型,点击新增,可添加一个分区表。每添加一个分区表需要提前选中要在哪个分区类型下新增分区表。一个分区类型下可新增多个分区表
-
选中刚新增的分区表,根据分区类型,可以添加或更改分区表的名称,表达式,最小边界值,最大边界值。当对应值如果无法编辑或者填入,表示当前分区类型不支持编辑
-
选中自分区表后,点击新增按钮,可以添加自分区表的分区类型,最多支持2层分区
-
约束 :用于增加表的约束的标签页。
约束包含主键、唯一键、检查约束。
-
主键:用于唯一地标识表中的每一条记录可以定义一列或多列为主键,主键列上没有任何两行具有相同值(即重复值),主键列上也不能为空值。
-
唯一性约束:唯一性约束用来限制不受主键约束的列上的数据的唯一性,即表中任意两行在 指定列上都不允许有相同的值。一个表上可以放置多个唯一性约束。
-
检查约束:检查约束用来指定某列的可取值的范围。它通过限制输入到列中的值来强制域的完整性。
-
外键 :用于增加表外键的标签页。
删除时:
-
无动作:在约束被检察时如果有任何引用行存在,则会抛出一个错误。
-
保持:阻止删除一个被引用的行。
-
级联:引用表会跟随被引用表的数据删除而删除。
-
设为空:被引用表的数据删除后,引用行中的引用列被置为空值或它们的默认值。
更新时:
-
无动作:当被引用表中更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许更新。当引用表中更新记录时,首先检查该记录对应外键的更新值在被引用表中是否出现,如果没有则不允许更新。
-
保持:当被引用表中更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许更新。当引用表中更新记录时,首先检查该记录对应外键的更新值在被引用表中是否出现,如果没有则不允许更新。
-
级联:引用表外键会跟随被引用表的数据更新而更新。
-
设为空:被引用表的数据更新后,引用行中的引用列被置为空值或它们的默认值。
-
索引 :用于增加表的索引的标签页。
类型:
-
B-tree索引:可以在可排序数据上的处理等值和范围查询,也可以用于检索排序数据。
-
Hash索引:只能处理简单等值比较。
-
GiST索引:不是一种单独的索引,而是可以用于实现很多不同索引策略的基础设施。相应地,可以使用一个GiST索引的特定操作符根据索引策略( 操作符类 )而变化。
-
SP-GiST索引:为支持多种搜索提供了一种基础结构。允许实现众多不同的非平衡的基于磁盘的数据结构,例如四叉树、k-d树和radix树。
-
GIN索引:是“倒排索引”,它适合于包含多个组成值的数据值,例如数组。倒排索引中为每一个组成值都包含一个单独的项,它可以高效地处理测试指定组成值是否存在的查询。可以支持多种不同的用户定义的索引策略,并且可以与一个 GIN 索引配合使用的特定操作符取决于索引策略。
全局索引:
-
全局索引包括全局非分区索引(Global Nonpartitioned Indexes)和全局分区索引(Global Partitioned Indexes),是指与分区表有不同分区方式的索引,它是在分区表的所有分区数据基础上创建的索引。本地索引(本地分区索引,Local Partitioned Indexes),是指在每个表分区上单独创建的索引,是一种局部索引,也是一种分区索引,某一个索引分区只能索引到一个表分区。
-
当创建全局索引时,首先尝试创建本地索引,当不满足本地索引的条件(唯一索引的索引列不包括全部分区列或者分区条件为表达式)时会创建全局索引。全局索引支持条件索引,不支持全局分区索引。全局索引不支持排他约束。注意,启用分区表上的主键/唯一约束时,先尝试创建本地索引,不满足时则创建全局唯一索引。
-
触发器 :用于增加表的触发器的标签页。(详情参考 5.6 )
-
继承 :可以通过inherit或者like的方式快速建表的标签页
inherit可以是单表继承,也可以是多表继承;
Like方式建表只能选其中一个,而且只可以在新建表的时候使用。在更新表的时候会自动隐藏
字段列表仅做展示,参考关联的表有哪些字段,不可修改。需注意的是,虽然inherit和Like可以同时使用,但是如果关联的表中有同名但是不同类型的字段,在创建的时候会提示报错。自定义的字段也不能和继承的表重名但是类型不同
-
权限 :用于指定用户及角色对于表的权限的标签页。(详情参考 2.6 )
-
DDL :用于显示表的创建语句的标签页。
表右键上下文菜单:
-
查看表 :打开编辑表选项卡。
-
过滤器 :隐藏或显示指定表、配置“表”过滤器
-
快速加载 :管理工具通过调用sys_bulkload命令行工具,将一定格式的文本数据简单、快速的加载到KingbaseES数据库中,或将KingbaseES数据库中的数据快速导出到CSV文件中。
-
编辑数据 :打开结果选项卡,默认显示全部表数据,可编辑但无法修改xml类型数据,服务器暂不支持。
-
在SQL控制台中读数据 :自动创建查询窗口并执行当前表查询SQL,同时打开结果选项卡。
-
比较 :详情参考 13.2 。
-
导出数据 :打开“数据转化”,配置数据传输目标类型和格式->设置表导出文件->配置导出输出参数->检查结果,点击开始,自动打开导出文件所在文件目录。注:导出数据为excel时,参数设置中的行高和列宽与实际excel中行高和列宽的比例分别为1:20和1:300。
-
导入数据 :打开“数据转化”,确认转化数据来源和格式->选择导入的数据库->匹配表和列->设置表导入数据库->检查结果,点击开始,自动打开被导入数据的表的结果选项卡。
-
生成SQL :对选中的表生成DML语句和DDL语句,可进行参考使用。
-
工具 :同样是生成对应操作的SQL语句。
“ 分析(ANALYZE) ”命令收集表的内容的统计(可用记录、不可用记录)。
“ 回收(VACUUM) ”命令:
-
恢复或重用被已更新或已删除行所占用的磁盘空间。
-
更新被KingBaseES查询规划器使用的数据统计信息。
-
更新可见性映射,它可以加速只用索引的扫描。
-
保护老旧数据不会由于 事务ID回卷或多事务ID回卷 而丢失。
选项中含有:
1) Full:选择“完全”清理,它可以收回更多空间,并且需要更长时间和表上的排他锁。这种方法还需要额外的磁盘空间,因为它会创建该表的一个新拷贝,并且在操作完成之前都不会释放旧的拷贝。通常这种方法只用于需要从表中收回数量庞大的空间时。 vacuum_freeze_min_age 和 vacuum_freeze_table_age 设置为0的 VACUUM。当表被重写时总是会执行激进的冻结,
因此指定FULL时这个选项是多余的。
-
Analyze:更新优化器用以决定最有效执行一个查询的方法的统计信息。
-
Disable page skipping:这个选项禁用所有的跳过页面的行为,其意图是只在可见性映射内容被怀疑时使用,这种情况只有在硬件或者软件问题导致数据库损坏时才会发生。
“ 清空(TRUNCATE) ” 可以从一组表中快速地移除所有行。 它具有和在每个表上执行无条件DELETE相同的 效果,不过它会更快,因为它没有实际扫描表。此外,它会立刻回收磁盘空间, 而不是要求一个后续的VACUUM操作。在大表上它最有用。
-
ONLY:如果在表名前指定了 ONLY,则只会截断该表。如果没有指定ONLY,该表及其所有后代表(如果有)都会被截断。
-
RESTART IDENTITY:自动重新开始被截断表的列所拥有的序列。
-
CONTINUE IDENTITY:不更改序列值,这是默认值。
-
CASCADE:自动截断所有对任一所提及表有外键引用的表以及任何由于 CASCADE被加入到组中的表。
-
RESTRICT:如果任一表上具有来自命令中没有列出的表的外键引用,则拒绝截断。这是默认值。
3.3.1.4. 视图 ¶
视图是从一个或多个表导出的虚拟表,内容由查询定义。具有普通表的结构,但是不实现数据存储。单表视图一般用于查询和修改,会改变基本表的数据。多表视图一般用于查询,不会改变基本表的数据。
对视图的使用是成就一个好的SQL数据库设计的关键方面。视图允许用户通过始终如一的接口封装表的结构细节,这样可以避免表结构随着应用的进化而改变。
点击“***确定* ”完成新建视图。
触发器( 详情参考 5.6 )。
权限 (详情参考 2.6 )。
3.3.1.5. 物化视图 ¶
物化视图是一种特殊的物理表,“物化”是相对普通视图而言的。
物化视图是关系型数据库中很重要的一个功能,不同于一般视图,物化视图会将视图内容物理保存在数据库中。
建立后的物化视图不会实时更新数据与基表同步,但可以使用语句“REFRESH MATERIALIZED VIEW view_name”更新统计信息。
-
新建物化视图
权限 (详情参考 2.6 )
点击“ 确定 ”完成新建物化视图。
3.3.1.6. 存储过程 ¶
存储过程主要包括存储过程、用户自定义函数和匿名块,可以通过PL/SQL语言创建存储过程模块。存储过程或函数有输入、输出参数和返回值,它们与表和视图等数据库对象一样被存储在数据库中,供用户随时调用。存储过程和用户自定义函数在功能上相当于客户端的一段SQL批处理程序。
存储过程的右键上下文菜单 :
-
查看存储过程 :即编辑存储过程,包括基本属性、权限(详情参考 2.6 )、DDL。
-
过滤器 :隐藏或显示指定存储过程、配置“存储过程”过滤器。
-
调试 : 打开调试面板(详情参考 5 ),如需退出调试并显示工具栏请点击右上角“ Kingbase ”按钮,或重新开启调试请点击右上角“ 金仓调试 ”按钮。
-
执行存储过程 :
点击执行SQL脚本(ALT+X)。
3.3.1.7. 函数 ¶
函数看成一个处理某些数据的功能,因有返回值,则在代码使用中,需要一个处理过的数据。可直接调用函数处理数据,返回数据给代码使用。
KingbaseES数据库系统提供一部分函数方便用户使用,称之为系统函数。同时支持用户自定义函数。
-
新建函数
新建函数有两种方式:
第一种方式为右键点击“ 函数 ”文件夹->点击“ 新建函数 ”。
第二种为选中“ 函数 ”文件夹,点击工具栏的“ 函数 ”。
返回值类型 :选择您需要的函数返回值类型。
类型 :选择对应的变量类型。
参数模式 :
-
IN:您可以将IN参数传递给函数,但无法从返回结果里再获取到。
-
OUT:OUT参数经常用于一个函数需要返回多个值,所以不需要RETURN语句
-
INOUT:INOUT 参数是 IN 和 OUT 参数的组合。这意味着调用者可以将值传递给函数,然后函数改变参数并且将该值作为结果的一部分传递回去。
OUT/INOUT参数不能设置默认值。
权限 (详情参考 2.6 )
DDL 为创建函数的SQL语句。
支持创建 PIPELINED函数
在函数创建时指定 PIPELINED 子句用于创建一个 PIPELINED 函数。在函数的声明和定义中,该子句必须保持一致。使用 PIPELINED 关键字时,必须在其函数体内使用 PIPE ROW 语句,用于从函数体内返回集合的单个元素
函数的右键上下文菜单 :
-
查看函数 :即编辑函数,包括基本属性、权限、DDL。
-
过滤器 :隐藏或显示指定函数、配置“函数”过滤器。
-
调试 :打开调试面板(详情参考 5 ),如需退出调试并显示工具栏请点击右上角“ Kingbase ”按钮,或重新开启调试请点击右上角 “金仓调试” 按钮
-
执行函数 :运行此函数。
-
点击执行SQL脚本(ALT+X)。
3.3.1.8. 触发器 ¶
触发器是提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的 存储过程 ,它的执行不是由程序调用,也不是手工启动,而是由事件来触发, 比如 当对一个表进行操作(insert,delete,update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。
-
新建触发器 :新建触发器时,触发器类型是“ 基于表” ,可以指定触发器状态。“ 基于视图” ,不支持指定触发器状态,但可以设定触发时机为“INSTEAD OF”。
触发时机:
-
BEFORE:语句级触发器在语句开始做任何事情之前被触发,行级触发器在每一个行被操作之前被触发。
-
AFTER:语句级触发器在语句做完所有事情之后被触发,行级触发器在语句结束之后被触发(但在任何语句级AFTER触发器之前)。
-
INSTEAD OF:只能被定义在视图上,并且只能定义在行级,当视图中的每一行被标识为需要被操作时,它们会立即触发。
3.3.1.9. 序列 ¶
序列作为一种独立的模式对象存在,它的功能与自增长数据类型相同。可以在表数据的默认值中利用序列操作函数对序列进行使用。
-
新建序列
参数详情 :
-
起始值:
-
增量:指定为了创建新值会把哪个值加到当前序列值上。一个正值将会创造一个上升序列,负值会创造一个下降序列。默认值是 1。
-
最小值:决定一个序列能产生的最小值。
-
最大值:决定该序列的最大值。
-
缓存:指定要预分配多少个序列数并且把它们放在内存中以便快速访问。最小值为1(一次只生成一个值,即没有缓存),默认值也是1。
-
循环:勾选此选项时,允许序列在分别达到最大值和最小值时回卷。如果达到该限制,下一个产生的数字将分别是最大值和最小值。不勾选此选项时,当序列到达其最大值 后任何nextval调用将返回一个错误。
3.3.1.10. 外部表 ¶
外部表,是指不存在于数据库中的表。通过向KingbaseES提供描述外部表的元数据,可以把一个操作系统文件当成一个只读的数据库表,就像这些数据存储在一个普通数据库表中一样来进行访问。外部表是对数据库表的延伸。
-
文 件外部表
-
新建外部表
-
-
数据库外部表
-
新建服务;通过“ 检查 ”按钮测试是否连接成功。
-
新建数据库外部表
-
-
新建Mysql外部表
-
新建服务
新建Mysql外部表
目标库是mysql的数据库名目标表是数据库库中的表名,列名要对应表中的列
3.3.1.11. 同义词 ¶
同义词,数据库方案对象的别名,经常用于简化对象访问和提高对象访问的安全性。同义词只有在oracle兼容时才会在对象树上显示。
3.3.1.12. 数据类型 ¶
KingbaseES有着丰富的本地数据类型可用。用户也可以使用 ` CREATE TYPE 命令为 KingbaseES增加新的数据类型
类型:
-
对象或组合类型
组合类型:组合类型由一个属性名和数据类型的列表指定。如果属性的数据类型是可 排序的,也可以指定该属性的排序规则。组合类型本质上和表的行类型相 同,但是如果只想定义一种类型,使用 CREATE TYPE避免了创建一个实际的表。单 独的组合类型也是很有用的,例如可以作为函数的参数或者返回类型
对象类型:对象类型和组合类型在定义和使用上都有很多相似性,可以认为对象类型是组合类型的增强。不同于组合类型的是,对象类型除了支持组合类型的行记录结构外,还支持声明和定义一些内部方法,并在创建相应的对象后在具体的对象上使用这些方法。
-
枚举类型:枚举类型需要 一个带引号的标签构成的列表,每一个标签长度必须不超过 NAMEDATALEN字节(在标准的 KingbaseES编译中是 64 字节)。 可以创建具有零个标签的枚举类型,但是在使用 ALTER TYPE 添加至少一个标签之前,不能使用这种类型来保存值。
-
范围类型:范围类型的子类型可以 是任何带有一个相关的 B 树操作符类(用来决定该范围类型值的顺序)的类型。
-
嵌套表类型:
嵌套表适用于以下几种情况:
-
元素数不确定;
-
索引值可能出现不连续的情况;
-
必须单独删除或更新某些元素的情况;
-
嵌套表可以看做是index为int的关联数组。
-
可变数组类型:与嵌套表不同,可变数组在定义的时候需要指定最大元素个数,使用中不能超过该限制
嵌套表适用于以下几种情况:
-
元素数有最大限制;
-
索引值必须是连续的情况;
-
Shell类型:shell 类型仅仅是一种用于后面要定义的类型的占位符
3.3.1.13. 外部链接 ¶
外部链接,在此数据库中建立一个数据库连接,使得您可以在此数据库中操作另一个数据库。
-
新建外部链接 :
驱动名称(ODBC):为KingBaseES的ODBC驱动名称。
3.3.2. 表空间 ¶
表空间允许在文件系统里定义那些代表数据库对象(例如表和索引)的数据文件存放的位置。 一旦创建了表空间,那么就可以在创建数据库对象的时候引用它。一个数据库可以有一个或多个表空间,创建数据库时自动创建系统表空间,并为缺省的默认表空间。一个表空间只隶属于一个数据库,只有在创建了数据库之后才能创建属于它的表空间。
隶属于一个数据库的表空间用于存储该数据库的数据库对象。在创建数据库对象时可以使用TABLESPACE子句指明该对象所使用的表空间;没有给出 TABLESPACE 子句,则这些对象使用缺省表空间。
-
新建表空间 :新建表空间支持透明加密,用户可以通过基本属性中选项勾选或者“create tablespace... with(ENCRYPTION = true);”语法来指定。
路径:表空间路径为绝对路径。
已使用大小:显示表空间目录下已存数据文件大小。
3.3.3. 管理 ¶
3.3.3.1. 系统参数 ¶
KingbaseES的系统参数列表可视化及修改功能,包括:
-
文件位置 :文件的路径。
-
连接认证 :验证设置、安全选项、语句行为、默认语言、动态加载、其他默认。
-
资源使用 :内存、磁盘、内核资源、回收延迟、后台写、异步行为、自动回收、锁管理。
-
事务日志 :设置、检查点、归档。
-
数据复制 :复制、发送服务器、主服务器、备服务器。
-
查询优化 :方法配置、Cost、常规选项、其它选项。
-
运行日志 :路径、时机、内容。
-
统计信息 :监控、查询和索引。
-
兼容相关 :SQL兼容选项、向前兼容、其他兼容。
-
其他选项 :错误处理、预设选项、开发选项、进程名。
3.3.3.2. 会话管理器 ¶
列表展示当前数据库服务器存在的所有连接会话及会话的详细信息,可通过点击“ 断开” 按钮中断被选中的连接。
3.4. 锁管理器 ¶
列表展示当前数据库服务器存在的所有锁。
3.4.1. 备份 ¶
3.4.2. 逻辑备份 ¶
逻辑备份可以将数据库对象的结构和数据导出到二进制文件或sql文件,方便数据库在不同机器上的迁移,备份入口分两种,一种选择树形结构节点如表,点击工具栏中备份按钮,可以备份当前模式下的所有树形结构。
另一种直接备份数据库,双击树形结构备份管理,根据所需的备份内容勾选下方复选框。
3.4.3. 逻辑还原 ¶
逻辑还原可以将指定备份文件的任意数据库对象导入到指定数据库里,根据所需的还原要求勾选下方复选框。
3.5. 计划任务 ¶
计划任务(DBMS_SCHEDULER)提供调度和管理计划任务的功能。基于后台进程来实现自动作业功能。通过kdb_schedule插件提供了DBMS_JOB和DBMS_SCHEDULER包,其中定义了自动作业功能的相关函数
3.5.1. 程序 ¶
新建程序
填写程序的名称,选择程序的类型,程序的动作,比如创建一张表,数据库连接串,格式:user=system dbname=test port=54321 password=123;数据库名称,以及是否可用
3.5.2. 计划 ¶
新建计划:
填写计划名称,开始时间,开始时间可以是函数比如now(),或者具体时间例如2022-3-25 12:58:30 ,时间间隔参考如下
参数
描述
FREQ
重复时间的类型。 这里有yearly、monthly、weekly、daily、hourly、minutely
INTERVAL
重复的频率,默认值是1。
BYMONTH
指定月份。
BYMONTHDAY
指定一月中的某一天。
BYHOUR
指定一天中的某一个小时。
BYBYMINTUE
指定一个小时中的某一分。
BYSECOND
指定一分钟内的某一秒。
结束时间格式同开始时间
3.5.3. 任务 ¶
新建任务:
填写任务名称,程序名称选择之前新建的程序,计划名称选择之前新建的计划,选择任务的类型和是否启用
编辑任务:可以改变任务是否启用
执行任务:在任务上点击鼠标右键,可以立即执行选择的任务。
3.6. 用户管理 ¶
3.6.1. 用户创建和编辑 ¶
KingbaseES每个数据库服务器都包含一个数据库用户的集合。这些用户是和那些在同一个服务器上运行的操作系统的用户相独立的。用户拥有数据库对象(比如说,表)以及可以把这些对象的权限赋予其它用户,这样就能控制谁可以访问哪些对象。用户也可以拥有系统权限。
数据库用户从概念上与操作系统用户是完全无关的。在实际使用中把它们对应起来可能比较方便,但不是必须的。数据库用户名在整个数据库集群中是全局的(而不是每个数据库不同)。创建一个用户,使用 SQL 命令 CREATE USER。
更多数据库用户和权限的相关信息,请查看用户。
-
新建用户 :可以为数据库新创建一个用户,并为其分配系统权限及对象权限。
-
新建用户有两种方式:
-
第一种为右键点击“ 用户 ”文件夹->选择“ 新建用户 ”。
第二种为选中“ 用户 ”文件夹->点击工具栏的“ 用户 ”。
设置时间、过期时间:可勾选设置时间,以自定义用户过期时间。
连接数限制:可根据您的需要自定义连接数,-1为无限制。
系统权限 :
-
SUPERUSER:“超级用户”,它可以越过数据库内的所有访问限制。“超级用户”状态很危险并且之应该在确实需要时才用。要创建一个新“超级用户”,您必须自己是一个超级用户。
-
CREATEDB:指定该用户是否被允许创建新的数据库。
-
CREATEROLE:指定该用户是否被允许创建新的角色,同时可以修改和删除角色。
-
LOGIN:是否被允许登录,也就是在客户端连接期间该角色是否能被给定为初始会话认证名称。
-
REPLICATION:这些子句决定一个角色是否为复制角色。角色必须具有这个属性(或者成为一个超级用户)才能以复制模式(物理复制或者逻辑复制)连接到服务器以及创建或者删除复制槽。一个具有REPLICATION属性的角色是一个具有非常高特权的角色,并且只应被用于确实需要复制的角色上。
对象权限 :
-
ALL:授予对象类型的所有可用权限。
-
CREATE:对于数据库,允许在数据库中创建新的模式和发布。
对于模式,允许在模式中创建新对象。要重命名一个现有的对象,您必须拥有对象和对包含的模式有这个特权。
-
TEMPORARY:允许在使用数据库时创建临时表。
-
TEMP:允许在使用数据库时创建临时表。
-
CONNECT:允许连接到此数据库。
-
USAGE:对于模式,允许访问模式中包含的对象。本质上,这允许被授予者在模式中“查找”对象。没有这个权限,仍然可以看到对象名,例如通过查询系统目录。此外,在撤销此权限之后,现有会话可能具有先前执行此查找的语句,因此这不是防止对象访问的完全安全的方法。
对于序列,允许使用currval和nextval函数。
-
SELECT:允许进行查询操作。
-
INSERT:允许进行插入操作。
-
UPDATE:允许进行更新操作。
-
TRUNCATE:允许进行删除操作。
-
REFERENCES:允许建立外键关联操作。
-
TRIGGER:允许创建触发器。
3.6.2. 角色创建和编辑 ¶
角色是一组权限的集合,使用角色是让权限管理的工作更加简单有效。数据库管理员可以将角色授予用户或者其它角色,有创建角色(CREATE ROLE)的系统权限的用户可以将自己创建的角色授予给用户和其它角色。
-
新建角色 :可以为数据库新创建一个角色,并为其分配系统权限及对象权限。
3.7. 数据管理 ¶
3.7.1. 结果集的编辑 ¶
您可以进行内联编辑(请参阅下面的 内联编辑 部分)以及在单独的编辑器中打开单元格的内容(请参阅下面的 单元格编辑器 部分)。
当您使用本节中描述的步骤对数据进行任何更改并保存它们时,这些更改将应用于数据库本身。在保存更改之前,您可以预览系统发送到数据库以在那里应用更改的 SQL 脚本。要查看 SQL 脚本,请在进行更改之后保存或放弃它们之前,单击底部工具栏中的“ Script” 按钮。预览更改窗口打开,您只能在其中查看 SQL 脚本并在必要时复制它:
-
内联编辑
内联编辑是在单元格中修改内容。要内联编辑单元格,请在表格中执行以下操作之一:
-
双击单元格。
-
单击单元格设置焦点,然后按Enter。
-
该单元格现在可编辑,您可以直接选中更改其值。
要将单元格值设置为 NULL,请右键单击该单元格,然后单击上下文菜单上的“ 编辑 ”->“ 设为空(NULL)” 。
要保存更改,请单击顶部工具栏中的 “保存” 按钮。要放弃更改,请单击顶部工具栏中的 “取消” 按钮。
注意:只有当您在单元格中进行更改时, “保存” 和 “取消” 按钮才可编辑。
-
单元格编辑器
要使用单独的编辑器编辑单元格中的数据,请执行以下操作之一:
-
单击单元格将焦点设置到它,然后按下“Shift+Enter”
-
单击顶部工具栏中的“在单独的对话框/编辑器中编辑单元格”按钮。
对于 CLOB/BLOB 数据格式的单元格,此操作将在新选项卡中打开单元格的内容:新选项卡中分Text、Binary、JSON、XML不同tab,可根据需求选择相应tab进行编辑,然后“Ctrl+S”跳转回原编辑器,点击 “保存” 进行保存。
对于除 CLOB/BLOB 之外的所有其他格式,此操作会打开单元格的属性窗口:该窗口在“ Column Info” 部分显示列的属性,并提供“ 值” 部分,您可以在其中修改单元格的值。根据需要编辑值,然后单击“ 保存” 。要将值设置为 NULL,请单击“ 设置为 NULL” 。
注意:KStudio 完全支持 CLOB/BLOB 数据类型。您可以查看值、编辑它们并将它们保存回数据库。您可以在单独的编辑器中打开 CLOB/BLOB 值(按下“Shift+Enter”选定的单元格)。您可以在常规文件中保存/加载 LOB 值。KStudio 可以识别某些 BLOB 列保留图像(gif、png、jpeg、bmp)。在这种情况下,KStudio 将 LOB 内容显示为图像。按F7打开 数据查看器 浏览图像很方便。
-
添加、复制和删除行
您可以在焦点行下方添加一个空行。要添加空行,请单击顶部工具栏上的“ 添加新行” 按钮 。使用“ 内联编辑或在单独的编辑器 ”中打开单元格值以使用数据填充它们(请参阅上面的部分)。
您可以复制当前处于焦点的任何行或多行。要复制行,请突出显示一行或多行,然后单击顶部工具栏中的“ 复制当前行” 按钮。重复行出现在焦点行下方。
要删除一行或多行,请将焦点设置在行上,然后单击顶部工具栏中的“ 删除行” 按钮。这些行是红色的,这意味着它们被标记为删除,并且在您点击 “保存” 后将被删除。
要保存任何此类更改,请单击顶部工具栏上的 “保存” 按钮。要放弃更改,请单击顶部工具栏上的 “取消” 按钮。
-
复制/粘贴单元格
要将一个或多个单元格的内容以制表符分隔的格式复制到剪贴板,请按“Ctrl+C”或右键单击单元格或单元格选择,然后单击上下文菜单上的 “复制” 。然后您可以将复制的选择粘贴到电子表格编辑器(类似于 Excel)中。
KStudio提供了高级复制选项,允许配置额外的复制设置(复制列名/行号、配置分隔符和选择值格式)。要复制具有其他设置的单元格,请按“Ctrl+Shift+C”或右键单击单元格->选择上下文菜单上的“ 高级复制” 。
按下“Ctrl+V”单元格会将复制的内容粘贴到单元格中,应用适当的数据类型转换。粘贴多个单元格,可以选中粘贴位置,然后按“Ctrl+Shift+V”快捷键,或者右键打开上下文菜单,选择“ 高级粘贴” 。
3.7.2. 结果集的再过滤 ¶
您可以将自定义过滤器应用于表内容或查询结果。您可以通过多种方式过滤表中的数据。
一种方法是使用顶部工具栏旁边表格上方的过滤器字段。要过滤数据,请在字段中输入 SQL 表达式,然后单击字段旁边的应用过滤条件按钮或按Enter。
第二种方法,您可以通过上下文菜单应用现成的 SQL 表达式或 SQL 表达式模板。要选择现成的 SQL 表达式或模板,请按F11或右键单击单元格,然后单击上下文菜单上的 “过滤” ,然后选择相应的过滤条件。
第三种方法是使用列标题中的过滤器图标按单元格值过滤数据。要以这种方式过滤数据,请单击列标题中的过滤器图标,然后双击按列值过滤对话框中的单元格值:
数据动态更新。要移除过滤器,请单击编辑器顶部工具栏中的“ 移除所有过滤/排序” 按钮。
您可以保存数据库对象的当前过滤器设置,以便下次在编辑器中重新打开它时应用。要保存当前过滤器设置,请单击顶部工具栏中的“ 保存过滤器设置” 按钮。
-
高级过滤器配置:
管理数据表外观的主要工具是“ 自定义过滤” ->打开 结果集的排序/过滤设置 窗口。
结果集的排序/过滤设置窗口提供了以下功能:
-
对列内的数据进行排序
-
管理表格中列的显示
-
管理表中列的顺序
-
使用 SQL 表达式自定义排序/过滤表中的数据
另一个管理数据外观的工具是列标题。在数据表中,每个列标题都包含三个元素,每个元素都有自己的功能:数据(列)类型图标、列名称、过滤器图标和排序图标。
-
只需单击列名称或列类型,该图标就会突出显示整个列。
-
您可以单击列类型图标,然后将该列拖放到表中的不同位置。
-
您可以单击列名称,然后向右或向左拖动光标以突出显示多个列。
-
单击排序图标可让您按升序或降序对列中的数据进行排序。
-
单击过滤器图标可以按单元格值过滤数据
-
对列中的数据进行排序
您可以通过以下方式之一对列中的数据进行排序:
单击列tab中的排序图标。
该图标具有三种状态:
-
单击一次建立升序
-
再次单击会将顺序更改为降序
-
第三次单击将从列中删除排序
要按多列对数据进行排序,请逐列进行,使用“排序”图标设置顺序,需要首先对数据排序的列开始。
单击编辑器顶部工具栏中的“ 自定义过滤... ”按钮打开 结果集的排序/过滤设置 窗口。
a) 在您希望在第一轮中对数据进行排序的列旁边,使用与上述相同的三态原则设置升序或降序。
b) 在其他列中设置要在第二、第三等轮次中对数据进行排序的顺序。注意:数字 ( # ) 列表示列的初始顺序。
c) 要轻松地将排序设置从列移动到列,您可以使用“Move to top”/“Move up”/“Move down”/“Move to bottom”按钮。
要将数据排序重置为其初始状态,请单击同一窗口中的“ Reset” 按钮。
此外,要删除所有排序设置,请单击数据编辑器顶部工具栏中的“ 移除所有过滤/排序” 按钮。
-
管理数据表中列的显示。
要隐藏单个列,请右键单击该列或其中的任何单元格,然后单击上下文菜单上的“ 显示/格式” -> “隐藏列” 。要取消隐藏隐藏的列,单击“ 重置 ”按钮。
要显示或隐藏数据表中的列,请在 结果集顺序/过滤器设置 窗口中:
-
选中要在表格中查看的列旁边的复选框,然后清除要隐藏的列旁边的复选框。
-
使用窗口底部的全部显示和无显示按钮。
-
对数据表中的列进行排序
您可以通过两种方式修改数据表中列的顺序:
-
单击列标题中的图标,然后将该列拖放到新位置。
-
要按字母顺序对列进行排序,请在 结果集的排序/过滤设置 窗口(通过单击编辑器底部工具栏中的“ sort” 按钮
在 结果集的排序/过滤设置 窗口中,在列tab中,选择指定字段,然后使用移动按钮调整排列位置。
3.7.3. 日期,数据类型的显示格式 ¶
KStudio 格式化功能允许您设置数据库区域设置和更改数据源格式设置。此功能非常有用,例如,对于数据库迁移。
要更改数据格式设置,请使用主菜单中的“窗口” -> “首选项”,打开Preferences窗口,选择“Kingbase ”-> “编辑器” -> “结果集” -> “数据格式”。
在打开的 数据格式 窗口的右侧区域中,点击“ 数据源设置” ,对数据源进行选择。
-
数据格式配置文件
要创建数据格式配置文件,请单击“ 管理配置” 按钮。在打开的对话窗口中选择“ 新建配置文件” ,弹出 配置文档名称 窗口,输入文档名称并点击 “确定” 。
要删除数据格式配置文件,在 配置文档名称 窗口选中要删除的配置文件,然后点击“ 删除配置文件” ,并在弹出的 删除配置 窗口点击“ 是(Y)” 。
-
更改数据格式
可以调整以下几组数据格式设置:
区域: 点击下拉箭头,选择可用的语言、国家和变体。
设置:
选中“ 使用原始日期/时间格式” 复选框,将使用数据源最初内置的数据格式。
您可以更改以下数据类型的格式:
格式 ,在“ 类型” 下拉框中选择:
-
日期,此类型默认yyyy-MM-dd格式
-
时间,此类型默认HH:mm:ss格式
-
时间戳, 此类型默认yyyy-MM-dd HH:mm:ss格式
-
数字
设置 中会动态展示所选类型的 名字 和 值 。
示例 中展示所选格式类型的例子。
点击 “恢复默认值” 按钮,可以恢复默认数据格式设置;点击 “应用”, 可以保存 数据格式 窗口中所做的更改。
3.7.4. 结果集导出 ¶
通过鼠标右键打开上下文菜单,选择导出结果集,可以方便的把结果集导出。可以选择多种目标类型和格式保存。
3.8. 审计 ¶
3.8.1. 审计登录 ¶
如果想使用审计功能,那么需要使用sao用户登录。且sao登录后,导航树上的【物化视图】、【触发器】、【外部表】、【程序包】、【同义词】、【数据类型】默认不显示,以及一些右键菜单会发生变化。
3.8.2. 审计设置 ¶
Sao登陆后,可在对象节点右键 ->“设置审计” ,打开下图。审计设置需要预先加载sys_audit扩展,并且设置sysaudit.enable为on。审计分为对象级审计和语句级审计,审计类型为Table、view、MATERIALIZED VIEW、function、procedure、index、sequence的归为对象级审计,其余的则为语句级审计。当设置审计后,再次打开设置审计界面,会显示已经设置的审计。
-
设置模式审计
在模式对象节点右键->“ 设置审计 ”。
-
设置表审计
在表对象节点右键->“ 设置审计 ”。
-
设置视图审计
在视图对象节点右键->“ 设置审计 ”。
-
设置函数视图审计
在函数对象节点右键->“ 设置审计 ”。
-
设置存储过程审计
在存储过程对象节点右键->“ 设置审计 ”。
-
设置序列审计
在序列对象节点右键->“ 设置审计 ”。
-
设置用户审计
在用户节点右键->“ 设置审计 ”。
3.8.3. 查看审计记录 ¶
设置完审计后,右键 ->“查看审计记录” ,打开审计记录界面。审计记录包含了会话ID、审计类型、用户ID、用户名、IP地址、数据库ID、数据库名、模式ID、模式名、对象ID、对象名、操作类型名、SQL文本、操作参数、操作时间、错误信息、执行结果、客户端类型、服务端类型等元素。可通过用户名、审计类型以及操作时间筛选审计记录。
3.9. 任务 ¶
3.9.1. 任务特性 ¶
-
数据导入
-
数据导出
-
执行sql脚本
-
备份
-
还原
3.9.2. 创建任务 ¶
在主菜单栏中点击 “任务”, 弹出 创建任务 窗口:
3.9.2.1. 数据导出 ¶
-
新任务属性:
在任务创建界面输入任务名称并选择“ 数据导出 ”任务选项,点击“ 下一步 ”,如果没有输入名称或者未选择任务类型,“ 下一步 ”按钮置灰状态。
-
Data export:
添加要导出的对象,可通过选择对象节点或者输入查询sql确定要导出的对象。可同时设置多个导出对象,仅支持表、视图、物化视图、序列的导出。
-
数据传输目标类型和格式: 选择导出的文件格式或者方式。
-
设置(表to文件,xxx类型)
-
输出
-
确认: 检查结果无误后,点击“ 开始 ”,自动打开导出文件夹。
3.9.2.2. 数据导入 ¶
-
新任务属性: 同数据导出。
-
配置导入设置: 同数据导出,但不支持输入查询sql。
-
数据传输目标类型和格式: 同数据导出,但仅支持表到表和csv导入。
-
选择源: 选择源表或者csv文件。
-
对象映射
可点击 目标容器 后面的文件夹按钮重新指定目标对象所属模式,也可点击 “浏览...” 重新选择目标对象或者点击 “新建...” 选择新建目标对象,如果选择了新建目标对象,可点击 “目标DDL” 查看ddl,并可以点击 “预览数据” 预览结果数据。
-
数据传输设置
-
检查结果
3.9.2.3. 执行sql脚本 ¶
-
新任务属性
同数据导出
-
选择sql脚本并设置执行参数
点击红框中的按钮选择要执行的sql脚本,并在 script settings 中设置执行参数
3.9.2.4. KingbaseES dump ¶
-
新任务属性
同数据导出
-
选择备份数据库和本地sys_dump所在目录
选择要备份的数据库和本地的sys_dump所在目录,点击 <not present> 下拉框,选择浏览,在弹出的界面中点击添加数据库地址,选择Server/bin目录,点击选择的路径后,会显示数据库版本信息,点击“ 确定 ”即可。
-
选择备份对象
选择模式及模式下的对象,通过任务备份的方式只能备份表和视图。
-
备份设置
3.9.2.5. KingbaseES restore ¶
-
新任务属性
同数据导出
-
选择还原的数据库和本地sys_dump所在目录
同KingbaseES dump
-
数据恢复设置
设置数据恢复参数及选择备份文件。
3.9.3. 任务视图 ¶
可通过“数据库” -> “任务” –> “数据库任务”打开任务视图,任务视图的左边显示的是历史创建的任务,包括名称、执行时间、执行结果、任务类型、工程,右边显示任务日志信息。用户可以通过选择某项任务->单击右键操作该项任务,包括运行、编辑、创建新任务、复制、删除、分组、配置字段等,也可通过图片右上角的工具栏操作。选择某项“日志信息”->“右键”,可对该项日志进行操作,包括日志视图、清除日志、删除日志、打开日志目录等。
-
-