赵渝强老师,国产金仓数据库如何为?
摘要:在金仓数据库中,一个数据库是数据库对象的集合。通常每个数据库对象属于并且只属于一个数据库。更准确地说,一个数据库是一个模式的集合,而模式包含表、函数等等各种数据库对象。因此数据库的完整层次应该包含如下组成部分:数据库服务器、数据库、模式、表
在金仓数据库中,一个数据库是数据库对象的集合。通常每个数据库对象属于并且只属于一个数据库。更准确地说,一个数据库是一个模式的集合,而模式包含表、函数等等各种数据库对象。因此数据库的完整层次应该包含如下组成部分:数据库服务器、数据库、模式、表或者某些其他对象类型,如存储过程、存储函数等等。当连接到数据库服务器时,客户端必须在它的连接请求中指定它要连接的数据库名,通过数据库实例来操作数据库中的对象。用户可能是在同一个数据库里,但可能在不同的模式中。视频讲解如下:
点击这里查看视频讲解:【赵渝强老师】国产金仓数据库的数据库
下面的步骤将查看金仓数据库中的数据库信息。
(1)使用ksql连接数据库实例。
$ ksql -U system -d kingbase
用户 system 的口令:
授权类型: 企业版.
输入 "help" 来获取帮助信息.
kingbase=#
(2)查看已经存在的数据库实例。
kingbase=# \l
# 输出的信息如下:
数据库列表
名称 | 拥有者 | 字元编码 | 校对规则 | Ctype | ICU 排序 | 存取权限
-----------+--------+----------+-------------+-------------+----------+-------------------
kingbase | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | |
security | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | |
template0 | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | | =c/system +
| | | | | | system=CTc/system
template1 | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | | =c/system +
| | | | | | system=CTc/system
test | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | |
(5 行记录)
(3)查询现有数据库的集合,也可以查询系统表sys_database。
kingbase=# select datname from sys_database;
# 输出的信息如下:
datname
-----------
test
kingbase
template1
template0
security
scott
(6 行记录)
这里需要注意以下两点:
创建数据库时实际上通过拷贝一个已有数据库进行工作的。在默认情况下,将拷贝名为template1的标准系统数据库。所以该数据库是创建新数据库的“模板”。如果为template1数据库增加对象,这些对象将被拷贝到后续创建的用户数据库中。这种行为允许对数据库中标准对象集合的进行修改。例如,如果把过程语言PL/Perl安装到template1中,那么在创建用户数据库后不需要额外的操作就可以使用该语言。
系统里还有名为template0的第二个标准系统数据库。这个数据库包含和template1初始内容一样的数据,但只包含KingBase版本预定义的标准对象。在数据库集群被初始化之后,不应该对template0做任何修改。在创建数据库时通过指示使用template0取代template1进行拷贝,可以创建一个“纯净的”用户数据库,它不会包含任何template1中的站点本地附加物。
执行下面的语句可以查看当前已存在的数据库信息。
