GBase 8s GDCA 认证课后练习题大全(题库)

大家好,这里是公众号 DBA学习之路,分享一些学习国产数据库路上的知识和经验。

前言

近期,南大通用 GBase 8s 数据库新一期的 GDCA 认证开启火热报名:培训预告 | 2024十月GBase 8s认证培训班开始报名啦~,到今天为止,培训课程已经学习完成,我总结了每节课的课后练习题,一共 98 题,分享出来供大家一起查阅。

当然,配合 GBase 8s 数据库实操练习,效果更佳,GBase 8s 安装部署可以参考:南大通用 GBASE 8s V8.8 最全安装指南(一网打尽)

单选题

1、GBase 8s的数据库架构是?

  • A 单进程、单线程架构
  • B 多进程、单线程架构
  • C 单进程、多线程架构
  • D 多进程、多线程架构

正确答案: D

解析: GBase 8s 的数据库是基于虚拟处理器的多进程/多线程架构。不依赖于操作系统的线程库,更高效的资源利用,高并发场景下更稳定的性能表现。

2、GBase 8s的停止数据库实例的命令是哪个?

  • A shutdown
  • B kill
  • C onmode
  • D oninit

正确答案: C

解析: GBase 8s 的命令多以 on 开头,启动命令为 oninit,停止命令为 onmode

3、查看实例的当前运行模式的命令是哪个?

  • A onstat
  • B dbstat
  • C showmode
  • D showstat

正确答案: A

解析: GBase 8s 的命令多以 on 开头,使用 onstat 命令可以查看数据库当前的运行模式。

4、GBase 8s 的客户端工具是什么?

  • A gbase
  • B gbasesql
  • C dbaccess
  • D dbsql

正确答案: C

解析: GBase 8s 的客户端工具为 dbaccess。

5、GBase 8s 的安装命令是什么?

  • A setup
  • B install
  • C ids_setup
  • D ids_install

正确答案: D

解析: GBase 8s 的安装命令是 ids_install

6、GBase 8s 的主进程名称有哪些?

  • A dbaccess
  • B oninit
  • C gbased
  • D gbasedb

正确答案: B

解析: 目前版本的 GBase 8s 主进程为 oninit。在 GBase 8s 中,主要的可执行程序多以 on 开头命名。

7、GBase 8s 超级管理员是什么?

  • A gbase8s
  • B gbase
  • C gbasedbt
  • D gbaseadmin

正确答案: C

解析: 在安装过程中,需要创建一个 gbasedbt 用户,这个用户会作为 GBase 8s 的超级管理员。

8、GBase 8s 的客户端工具是哪个?

  • A sqlplus
  • B DIsql
  • C dbaccess
  • D isql

正确答案: C

解析: sqlplus 是 Oracle 的客户端工具,isql 是金仓数据库的客户端工具,disql 是达梦数据库的客户端工具,dbaccess 是 GBase 8s 的客户端工具。

9、如何严格控制在 dbaccess 中执行 SQL 时查询结果中小数点的位数?

  • A 不需要控制,dbaccess 自动根据录入时的小数点后数字,并自动进行显示。
  • B 通过设置启动 dbaccess 时的环境变量 DBFLTMASK 为一个整数,对小数点进行精确控制。
  • C 通过设置启动 dbaccess 时的环境变量 DBDIGITNUM 为一个整数,对小数点进行精确控制。
  • D 以上答案都不对。

正确答案: D

解析: 默认情况下,dbaccess 会尽可能的显示浮点数的小数位数。通过设置环境变量 DBFLTMASK,控制 dbaccess 在输出小数信息时,尽量只显示指定位数的小数。当需要显示的数据超过 dbaccess 的最大显示宽度时,会优先保障整数部分的数字,再尽可能的控制小数部分的输出。

10、如何在 dbaccess 中查看 SQL 的执行时间?

  • A dbaccess 在执行 SQL 后,默认会自动显示出该查询的执行时间,在查询结果后直接查看即可。
  • B dbaccess 不支持显示 SQL 的执行时间。
  • C dbaccess 默认不支持显示 SQL 的执行时间,但可通过设置环境变量 GL_SHOWTIME 来支持。
  • D dbaccess 默认不支持显示 SQL 的执行时间,但可通过设置环境变量 DBACCESS_SHOW_TIME 来支持。

正确答案: D

解析: 早期的 dbaccess 不支持显示 SQL 的执行时间,目前的版本支持设置环境变量 DBACCESS_SHOW_TIME=1 来显示 SQL 的执行时间。

11、select len('ABC') from dual; 执行结果为()

  • A 6
  • B 5
  • C 4
  • D 3

正确答案: D

解析: len 函数计算字节长度不包含字符串尾部空格,字符串中间的空格会计算。

12、select Replace(content,'reading','writing') from (select 'I like reading' as content from dual) t; 执行结果为()

  • A I like reading
  • B I like writing
  • C writing
  • D reading

正确答案: B

解析: replace 语法 replace(被操作字符串, 被替换子字串, 替换为的子字串)

13、删除字符串两边的"*"号,正确的语句是()

  • A select Trim('*Hello world**','*') from dual;
  • B select Trim(both'*' from'*Hello world**') from dual;
  • C select LTrim(both'*' from'*Hello world**') from dual;
  • D select RTrim(both'*' from'*Hello world**') from dual;

正确答案: B

解析: 删除字符串两边字符的语法 trim(both 'char' from column_name)

14、数据库字符集 utf8, select len('汉字') from dual; 执行结果为()

  • A 2
  • B 4
  • C 6
  • D 8

正确答案: C

解析: len(length) 返回字节数,对于 utf8 字符集,每个字符占用 3 个字节。

15、select round(-5.5) from dual; 执行结果()

  • A -6
  • B -6.0
  • B -5
  • B -5.5

正确答案: A

解析: round 函数返回参数四舍五入后的整数,默认不保留小数点后位数。

16、select char_length('汉字') from dual; 执行结果为()

  • A 2
  • B 3
  • C 4
  • D 8

正确答案: A

解析: char_length 函数返回字符串中的字符数。

17、DBINFO('version','full') 函数可以得到()

  • A 操作系统版本
  • B JDK版本
  • C GBase Server Version 12.10.FC4G1TL
  • D Python版本

正确答案: C

解析: DBINFO('version','full') 函数输出 GBase8s 数据库详细版本信息。

18、select substr('abcdefg', 2, 3) as f_substr from dual; 执行结果()

  • A cde
  • B c
  • C d
  • D bcd

正确答案: D

解析: 语法 substr(字符串, start, len),第一个字符的索引是 1。

19、select floor(-5.2) as num2 from dual; 返回结果为()

  • A -5
  • B -5.0
  • C -6
  • D -6.0

正确答案: C

解析: 地板取整,返回小于参数的整数。

20、select ceil(-5.5) as num2 from dual; 返回结果为()

  • A -6
  • B -5
  • C -5.0
  • D -6.0

正确答案: B

解析: 天花板取整,返回大于参数的整数。

21、select regexp_replace(f_content,'\d{11}','13002231730') from (select '我的电话号码是13920656789' as f_content from dual) t; 执行结果为()

  • A 我的电话号码是13920656789
  • B 我的电话号码是13002231730
  • C 我的电话号码是

正确答案: B

解析: 正则替换函数语法 regexp_replace(被操作字符串, 要匹配的正则表达式, 替换为的子串)

22、GBase8s SPL变量赋值使用()关键字

  • A var
  • B let
  • C declare
  • D 变量前不用任何关键字

正确答案: B

解析: 例如 let iScore=100

23、GBase8s SPL 异常捕获语句 ON EXCEPTION IN(-206,-217)

  • A 存储过程内任何语句发生的错误代码
  • B 异常捕获代码块中的语句发生的错误代码
  • C 自定义函数内任何语句发生的错误代码
  • D RAISE EXCEPTION抛出的错误代码

正确答案: B

解析: 异常捕获基本语法 ON EXCEPTION[IN(ErrorCode1,ErrorCode2,...)] SET sql_err_num[,isam_err_num]... END EXCEPTION[WITH RESUME]

24、GBase 8s 数据库中哪个命令导出的数据,不是文本数据?

  • A unload
  • B onexport
  • C onunload
  • D dbexport

正确答案: C

解析: onunload 导出的数据是二进制格式,可以通过 onload 导入到 GBase 8s 中。

25、关于 unload 命令的描述,以下哪项是正确的?

  • A unload 可以导出查询中的数据到外部文本文件。当数据中包含换行符时,会将换行符转义为 \n
  • B unload 可以导出查询中的数据到外部文本文件。当数据中包含换行符时,会将数据导出成多行,这样的数据无法再次导入,因此在导出数据前需要替换数据中的换行符。
  • C unload 可以导出查询中的数据到外部文本文件。当数据中包含换行符时,会将数据导出成多行,在因数据内换行符而产生换行的行尾,自动加上一个 \,表示这一行没有结束。
  • D unload 可以导出查询中的数据到外部文本文件。当数据中包含换行符时,会自动删除数据中的换行符,无需用户处理。

正确答案: C

解析: GBase 8s 在使用 unload 命令导出数据时,会自动在数据中因包含换行符而导致的行尾追加一个 \,表示这一行还没有结束,下一行还是这行数据的继续。load 工具可以识别这样的数据,并将数据再次加载到数据库中。当原始数据中有 \ 时,会对 \ 进行转义,以区别 \ 的含义。

26、GBase 8s 数据库中哪个命令导出的数据,不是文本数据?

  • A select * from tab_name into out_file
  • B onunload
  • C dbexport
  • D unload

正确答案: D

解析: unload 是一个 SQL 命令,可以导出一个表或查询的数据,select * from tab_name into out_file 不是 GBase 8s 支持的导出数据到文件的语法,onunload 和 dbexport 是命令行工具,不是 SQL 方式。

27、unload 默认的列分隔符是什么?

  • A 空格
  • B \t
  • C ,
  • D |

正确答案: D

解析: GBase 8s 默认的分隔符中管道符 |

28、GBase 8s 中如何查看有哪些数据库?

  • A 使用 show databases 命令
  • B 连接系统数据库,执行 select * from db;
  • C 连接系统数据库,执行 select * from databases;
  • D 连接系统数据库,执行 select * from sysdatabases;

正确答案: D

解析: GBase 8s 的数据库信息保存在系统数据库 systemaster 的 sysdatabases 表中,可以使用 select 语句进行查询。show databases 可以查询 mysql 中的数据库信息。

29、如何查看表 mytab 有哪些索引?

  • A show indexes;
  • B show indexes for mytab;
  • C select \* from sysindexes where tabname='mytab';
  • D select \* from sysindexes where tabid in(select tabid from systables where tabname='mytab');

正确答案: D

解析: 表的索引信息保存在 sysindexes 表中,需要使用 tabid 进行检索。

30、如何查看 mydb 数据库中有哪些视图?

  • A 在 mydb 数据库中执行 show views;
  • B 在 mydb 数据库中执行 info views;
  • C 在 systemaster 数据库中执行 select * from sysviews where dbname='mydb';
  • D 在 mydb 数据库中执行 select * from systables where tabid>= 100 and tabtype='V';

正确答案: D

解析: GBase 8s 中的表和视图都保存在当前数据库的 systables 表中,以 tabtype 进行区分。

31、GBase 8s 由在线模式切换为离线模式的命令是哪个?

  • A oninit -k
  • B onmode -k
  • C onstat -k
  • D shutdown now

正确答案: B

解析: GBase 8s 可使用 onmode -k 命令,将数据库由在线模式,单用户模式或静态模式,切换为离线模式。

32、如何将 GBase 8s 从离线模式切换为静态模式?

  • A oninit
  • B oninit -s
  • C oninit -u
  • D oninit -j

正确答案: B

解析: oninit 是从离线模式切换为在线模式,oninit -j 是离线模式切换为单用户模式,oninit -s 是从离线切换为静态模式,oninit 没有 -u 参数。

33、create table employee(id serial, name varchar(50)), id 列已有数值 1,2,5 则再执行 insert into employee(id,name)values(5,'gbase')

  • A 系统提示重复序号
  • B 数据 (3,'gbase') 成功插入
  • C 数据 (6,'gbase') 成功插入
  • D 数据 (5,'gbase') 成功插入

正确答案: D

解析: 可以插入 serial 列存在的数值。

34、create table employee(id serial, name varchar(50)),id 列已有数值 1,2,5 则再执行 insert into employee(id,name) values(3,'gbase')。则()

  • A 语法错误
  • B 数据 (3,'gbase') 成功插入
  • C 数据 (6,'gbase') 成功插入
  • D 覆盖最大序号的数据

正确答案: B

解析: 在提供 Serial 字段数值情况下,新插入记录的 Serial 字段使用提供的数值,不再自动生成新值。

35、create table employee(id serial, name varchar(50)),id 列已有数值 1, 2, 5 则再执行 insert into employee(name) values('gbase')。id 值为()

  • A 3
  • B 4
  • C 6
  • D 报错

正确答案: C

解析: serial 是自增类型,数值自增是最大数累加 1。

36、create database 'CourseWare' 产生的数据库名称()

  • A 不敏感
  • B 敏感
  • C 需要明确使用 nlscasesensitive 或 nlscase insensitive 参数

正确答案: A

解析: create database <db_name> 产生的数据库名称不敏感。

37、正确的创建视图 SQL 语句是()

  • A create view vTest as select * from student;
  • B create view vTest select * from student;
  • C create view vTest (select * from student);
  • D create table vTest as (select * from student);

正确答案: A

解析: 创建视图的语法 create view[if not exists] <view_name> as <query_define>;

38、如何查看 GBase 8s 数据库用户线程?

  • A show threads;
  • B onstat -t
  • C onstat -u
  • D onstat -s

正确答案: C

解析: onstat -u 可以打印用户线程信息。onstat -x 打印事务信息。

39、如何查看 GBase 8s 数据库 Chunk 文件使用信息?

  • A onstat -c
  • B onstat -C
  • C onstat -d
  • D onstat --chunk

正确答案: C

解析: onstat -d 可以查看数据库空间和 Chunk 文件使用信息。

40、如何查看 GBase 8s 数据库当前运行模式?

  • A show status
  • B oninit --status
  • C onstat -
  • D onmode -s

正确答案: C

解析: onstat - 可以查看当前的数据库运行模式。

41、GBase 8s 中如何强制执行一次检查点?

  • A oninit -c
  • B onstat -c
  • C onmode -c
  • D chkpt force。

正确答案: C

解析: onmode -c 可以强制执行一次检查点操作。

42、如何查看 GBase 8s 数据库系统当前运行状态统计?

  • A onstat -s
  • B onstat -p
  • C onstat -r
  • D show status

正确答案: B

解析: onstat -p 显示数据库运行时的一些重要统计信息。

43、如何查看 GBase 8s 数据库逻辑日志使用状态?

  • A onmode -I
  • B onmode -L
  • C onstat -l
  • D onstat -L

正确答案: C

解析: onstat -l 可以查看数据库物理日志和逻辑日志使用状态。

44、如何查看 GBase 8s 数据库共享内存段的统计信息?

  • A onstat -s
  • B onstat -g seg
  • C onstat -g shm
  • D onstat -m

正确答案: B

解析: onstat -g seg 打印共享内存段的统计信息。

45、如何查看 GBase 8s 数据库与 SQL 有关的会话信息?

  • A onstat -g seq
  • B onstat -g sql
  • C onstat -g seg
  • D onstat -s

正确答案: B

解析: onstat -g sql 打印与 SQL 有关的会话信息。

46、GBase 8s 中如何切换逻辑日志?

  • A oninit -l
  • B onmode -l
  • C onstat -l
  • D switch log

正确答案: B

解析: onmode -l 可以将逻辑日志切换到下一个。

47、如何终止数据库服务器连接会话 12315?

  • A kill 12315
  • B kill -9 12315
  • C onmode -z 12315
  • D onmode -k 12315

正确答案: C

解析: kill 是终止操作系统进程的命令,onmode -z 可以终止一个 GBase 8s 的 Session。

48、如何查看 GBase 8s 数据库服务器信息?

  • A show serverinfo
  • B onstat -g dis
  • C onstat -s
  • D onstat -i

正确答案: B

解析: onstat -g dis 打印数据库服务器信息。

49、如何查看 GBase 8s 数据库归档状态?

  • A onstat -c
  • B onstat -g arc
  • C archive list
  • D show archive

正确答案: B

解析: onstat -g arc 打印归档状态。

50、GBase 8s 中如何添加 5 个 CPU 虚拟处理器?

  • A oninit -p +5 cpu
  • B onmode -p +5 cpu
  • C onstat -p +5 cpu
  • D oninit add 5 cpu

正确答案: B

解析: GBase 8s 中使用 onmode -p 可以增加和减少虚拟处理器,命令格式为 onmode -p <+|->num <vp_class>

多选题

1、GBase 8s共享内存由以下哪些部分组成?

  • A 常驻段
  • B 虚拟段
  • C 消息段
  • D SGA段

正确答案: ABC

解析: 共享内存包括4个部分:常驻内存段、缓冲池段、虚拟内存段、消息段,没有SGA段。

2、在国内被称为国产数据库四朵金花的厂商有几个?

  • A 达梦
  • B 金仓
  • C 南大通用
  • D 华为

正确答案: ABC

解析: 国内最早做数据库的厂家有武汉达梦,人大金仓,南大通用和神舟通用,被称为国内数据库的四朵金花。华为的高斯数据库也非常不错,但相比前面四家,时间上相对晚一些。

3、使用脚本 GBaselnit_gbasedbt.sh 初始化实例时,哪些 dbspace 可以创建多个?

  • A plogdbs
  • B llogdbs
  • C datadbs
  • D tempdbs

正确答案: CD

解析: 在 GBase 8s 中,物理日志和逻辑日志通常只使用一个数据库空间。虽然逻辑日志要求使用多个,但这些逻辑日志会保存到一个逻辑日志空间中。对于保存临时数据的数据库空间和保存业务数据的数据库空间,通常需要多个。

4、GBase 8s 的客户端工具 dbaccess 有哪些工作模式?

  • A 静态模式
  • B 菜单交互模式
  • C 管道模式
  • D 指令交互模式

正确答案: BCD

解析: dbaccess 可以运行在菜单交互模式下,通过菜单选择相应的命令并执行。它也可以使用类似 MySQL 等客户端的指令交互模式,用户输入命令后,回车执行并等待命令的执行结果。用户也可以通过 echo 等操作系统命令将要执行的语句输出到标准输出设备,通过管理作为 dbaccess 的输入,来执行 SQL。静态模式不是 dbaccess 的模式,是数据库的运行模式。

5、如何进入 dbaccess 的指令交互模式?

  • A dbaccess
  • B dbaccess db_name
  • C dbaccess -
  • D dbaccess db_name -

正确答案: CD

解析: 要进入 dbaccess 的指令交互模式,通常需要为 dbaccess 提供两个参数,且第二个参数为 -,表示输入为 STDIN。

6、GBase 8s 的运行模式有哪些?

  • A 在线模式
  • B 离线模式
  • C 静态模式
  • D 单用户模式

正确答案: ABCD

解析: GBase 8s 有四种运行模式,分别为离线模式,在线模式,单用户模式(又称为管理员模式)和静态模式(有的文档中也称为静默模式)。

7、获取当前系统日期,可以使用()

  • A date(SYSDATE)
  • B date(CURRENT)
  • C TODAY
  • D date(NOW)

正确答案: ABC

解析: SYSDATE、CURRENT、TODAY 三个函数类似。

8、GBase8s 标量函数包括()

  • A 数学函数
  • B 字符串函数
  • C 日期时间函数
  • D 聚合函数

正确答案: ABC

解析: 标量函数输入若干参数返回一个确定类型的标量值,包括数学函数、字符串函数、日期时间函数等。

9、以下格式化日期时间语句正确的是()

  • A select to_char(sysdate,'YYYY/MM/DD hh24:mi:ss') from dual;
  • B select to_char(sysdate,'yyyy/mm/dd hh24:mi:ss') from dual;
  • C select to_char(sysdate,'yyyy/mm/dd hh12:mi:ss') from dual;
  • D select to_char(sysdate,'yy/mm/dd hh24:mi:ss') from dual;

正确答案: ABCD

解析: 在 SQL 中,to_char 函数用于将日期时间格式化为字符串。选项 A、B、C 和 D 中的格式化字符串都是正确的,它们分别表示不同的日期时间格式。其中:

  • YYYY 表示四位数的年份。
  • MM 表示月份。
  • DD 表示天。
  • hh24 表示 24 小时制的小时。
  • mi 表示分钟。
  • ss 表示秒。
  • yyyy 是小写的年份格式,与 YYYY 等效。
  • hh12 表示 12 小时制的小时。
  • yy 表示两位数的年份。

因此,所有选项都能正确格式化日期时间。

10、常用的聚合函数有()

  • A COUNT
  • B SUM
  • C MAX/MIN
  • D WM_CONCAT

正确答案: ABCD

解析: WM_CONCAT 是特殊的聚合函数,可以实现某列的字串拼接。

11、GBase8s SPL中变量赋值正确的是()。

  • A let dbName=‘8s’;
  • B let name= functionGetName(1);
  • C let eID,eName=(select id,name from employee where id=1); --id是主键
  • D let db1,db2=‘8a’,‘8s’;

正确答案: ABCD

解析: GBase8s SPL 变量赋值有四种形式:单变量赋值、多变量系列赋值、接收自定义函数返回值、接收字段。

12、GBase8s SPL例程根据是否需要返回值,分为()

  • A 存储程序
  • B 内置函数
  • C 存储过程
  • D 自定义函数

正确答案: C D

解析: GBase8s SPL 例程根据是否需要返回值,分为存储过程和函数。

13、GBase8s 存储过程和自定义函数由()组成。

  • A 开始语句
  • B 循环体
  • C 语句块
  • D 结束语句

正确答案: ACD

解析: GBase8s SPL(存储过程和自定义函数)由开始语句、语句块、结束语句组成。

14、GBase8s SPL 容易发生死循环的循环语句是()

  • A WHILE
  • B LOOP
  • C FOR/FOREACH
  • D GOTO

正确答案: AB

解析: LOOP…END LOOP、WHILE…END WHILE块中必须有合理的退出循环的条件,否则会出现死循环。

15、GBase8s SPL退出LOOP循环正确的语句是()。

  • A if var > 10 then exit;
  • B if var > 10 then break;
  • C exit when var > 10;
  • D break when var > 10;

正确答案: AC

解析: GBase8s SPL 退出 LOOP 循环,可以用 if 表达式 then exit 或 exit when 表达式。

16、GBase8s SPL 循环关键字有()

  • A GOTO
  • B LOOP
  • C FOR
  • D FOREACH
  • E WHILE

正确答案: ABCDE

解析: GBase8s SPL循环关键字有 GOTO、LOOP、FOR、FOREACH、WHILE。

17、数据迁移时需要考虑哪些问题?

  • A 数据中包含行分隔符问题。
  • B 数据中包含列分隔符问题。
  • C 汉字乱码问题。
  • D 日期时间格式问题

正确答案: ABCD

解析: 当数据中包含行分隔符和列分隔符时,导出文本数据可能无法再次加载到数据库中。当文本数据包含汉字时,由于不同的字符集设置,可能导致汉字无法正常显示。不同地区对日期的格式定义不同,需要约定好日期格式。

18、GBase 8s 进行整库数据迁移时,应使用哪种方式?

  • A 使用unload/load进行整库数据迁移
  • B 使用onload/onunload进行整库数据迁移
  • C 使用dbexport/dbimport进行整库数据迁移
  • D 以上方式都可以

正确答案: BC

解析: unload/load 只能进行单表的迁移,onload/onunload 可以实现二进制数据的整库数据迁移,dbexport/dbimport 可以实现文本数据的整库数据迁移。

19、下面关于外部表,说法正确的是?

  • A 使用外部表,只能从 GBase 8s 中导入数据,不能导出数据到外部表。
  • B 外部表是数据迁移时,性能最好的数据迁移方式。
  • C 外部表只能实现单表的数据迁移。
  • D 外部表只能使用一个外部文件,不能同时使用多个文件。

正确答案: B C

解析: 外部表创建后,可以从表中查询数据,并插入到其它表中,也可以将其它表中的数据插入外部表。当从其它表中向外部表插入数据时,外部表原来的数据将被清除。外部表方式是数据迁移性能最好的方式,相比其它方式,性能可提升数倍或数十倍。外部表是一个表,所以一次只能进行一个表的数据迁移。创建外部表时,可以同时指定多个格式相同的文件,做为外部表的数据源。

20、GBase 8s 中使用 ontape 备份时,需要设置哪个参数?

  • A BAR_MAX_BACKUP
  • B BAR_BSALIB_PATH
  • C TAPEDEV
  • D LTAPEDEV

正确答案: C D

解析: 使用 ontape 备份时,需要设置 TAPEDEV 来指定物理备份的保存位置,设置 LTAPEDEV 来指定逻辑日志的保存位置。

21、GBase 8s 的备份恢复,可以使用哪些工具实现?

  • A onbackup
  • B ontape
  • C onlog
  • D onbar

正确答案: BD

解析: ontape 和 onbar 可以实现 GBase 8s 的备份与恢复。两个工具都可以实现备份的完全恢复,onbar 可以实现基于时间点的不完全恢复。

22、GBase 8s 中支持哪几个级别的备份与恢复?

  • A 0级
  • B 1级
  • C 2级
  • D 3级

正确答案: ABC

解析: GBase 8s 支持 L0/L1/L2 共 3 个级别的备份与恢复。L0 是全量备份,L1 和 L2 是增量备份。

23、如何查看 mydb 数据库中 mytab 表有哪些列?

  • A 在mydb数据库中执行 select colname from syscolumns where tabname='mytab';
  • B 在mydb数据库中执行 select colname from syscolumns where tabid in(select tabid from systables where tabname='mytab');
  • C 在systemaster数据库中执行 select colname from syscolumns where dbname='mydb' and tabname='mytab';
  • D 在mydb数据库中执行 info columns for mytab;

正确答案: BD

解析: 用户数据库的 syscolumns 表中,保存了用户表的列信息,可以通过 select * from syscolumns 查询需要的列信息。info columns for <tab_name> 是一个命令,可以查看表的列信息,其内部实现为查询 syscolumns 的一个 SQL 语句。

24、关于 GBase 8s 的存储,以下属于物理存储的是()

  • A 数据页page
  • B 数据块Chunk
  • C 表空间Tablespace
  • D 数据段Extent

正确答案: ABD

解析: 表空间 Tablespace 是逻辑存储概念,表空间包含分配到给定表或表分区、已分配给关联索引的所有磁盘空间。

25、关于 GBase 8s 描述正确的是

  • A GBase 8s 是一款事务型数据库,主要应用于一些高并发的业务场景。
  • B GBase 8s 是一款获得等保四级安全认证的事务型数据库。
  • C GBase 8s 是一款标准的分析型数据库集群,主要用于 OLAP 的数据挖掘场景。
  • D GBase 8s 是一款图数据库,主要用于图数据分析。

正确答案: AB

解析: GBase 8s 是一款事务型数据库,支持严格的 ACID,达到等保四级,是一个标准的安全数据库。虽然 GBase 8s 支持并行处理,可用于一些 OLAP 分析场景,但并不算是一个标准的OLAP数据库集群。GBase 8a 是一个 MPP 集群,用于 OLAP 场景。

26、如何将 GBase 8s 从在线模式切换为静态模式?

  • A onmode -j
  • B onmode -s
  • C onmode -u
  • D onmode -k

正确答案: B C

解析: onmode -j 是切换为单用户模式,onmode -k 是切换为离线模式,onmode -s 是优雅地切换到静态模式,onmode -u 是立即切换到静态模式。

27、GBase 8s 的过渡模式有哪些?

  • A 初始化(Initialization)。
  • B 快速恢复(Fast Recovery)。
  • C 离线 (Off Line)。
  • D 关闭(Shutting Down)。

正确答案: A B D

解析: GBase 8s 有三种过渡模式,分别为初始化(Initialization)、快速恢复(Fast Recovery)和关闭(Shutting Down)。

28、关于 BIGSERIAL 叙述正确的是()

  • A 存储二进制数据
  • B 占用 8 个字节
  • C 不能存储零
  • D 数值自增

正确答案: BCD

解析: BIGSERIAL 存储 8 个字节的非零整数,具有自动增一的功能。

29、GBase 8s 小数数据类型包括()

  • A SMALLFLOAT
  • B DECIMAL
  • C MONEY
  • D FLOAT

正确答案: ABCD

解析: 这四种数据类型数值都有小数点。

30、GBase 8s 数据类型的两大类别有()

  • A 复杂数据类型
  • B 内置数据类型
  • C 用户自定义数据类型
  • D 扩展数据类型

正确答案: BD

解析: GBase 8s 两大数据类型内置和扩展数据类型。

31、GBase 8s rename database 失败的原因有()

  • A database closed
  • B database不存在
  • C 当前正在操作的database
  • D 被更名的database处于打开状态。

正确答案: BCD

解析: 无法删除或重命名当前数据库或任何已打开的数据库。

32、删除数据库正确的 SQL 语句是()

  • A delete database courseware;
  • B delete databases courseware;
  • C drop database if exists courseware;
  • D drop database if exist courseware;

正确答案: C

解析: 删除数据库的语法 drop database[if exists]<db_name>;

33、重命名表中存在列正确的 SQL 语句是()

  • A rename student.age to age1;
  • B rename column student.age to age1;
  • C rename column'student.age' to'age1';
  • D rename column"student.age" to"age1";

正确答案: B

解析: 重命名表中存在列语法 rename column <tableName>.<oldColumnName> to <newColumnName>;

34、以下正确的 Insert(进阶语法)SQL 语句是()

  • A insert into t_user2(userid, username) select * from t_user1;
  • B insert into t_user2 select * from t_user1;
  • C insert into t_user2(userid, username) select userid, username from t_user1;
  • D select userid, username into t_user2 from t_user1;

正确答案: ABC

解析: Insert 进阶语法 insert into <table_name| view_name|synonym_name> [column_name1, column_name2,...] select col_name1, col_name2,...;

35、正确的 Delete SQL 语句是()

  • A select * from t_user where f_userid = 1;
  • B delete * from t_user where f_userid = 1;
  • C delete from t_user where f_userid = 1;
  • D delete t_user where f_userid = 1;

正确答案: CD

解析: Delete 语法 delete from <table_name| view_name|synonym_name> [where condition]; from 可以省略

36、正确的 Alter Table 添加列的 SQL 语句是()

  • A alter table student add (Sex smallint);
  • B alter table student add (age int before Sex);
  • C alter table student add column (score int);
  • D alter table student column add (score int);

正确答案: AB

解析: 新增列语法 alter table <tableName| synonymName> add (newColumnName1 data_type1[, newColumnName2 data_type2, ...]) [before oldColumnName];

37、正确的创建表 SQL 语句是()

  • A create table if not exists student(id int, name varchar(20));
  • B create table if exists student(id int, name varchar(20));
  • C create table student(id int, name varchar(20));
  • D new table student(id int, name varchar(20));

正确答案: AC

解析: 创建表语法 create[standard| raw] table[if not exists] <table_name>(colname1 data_type1, colname2 data_type2,...);

38、如何查看 GBase 8s 数据库表空间信息?

  • A onstat --tablespaces
  • B onstat -t
  • C show tablespaces
  • D onstat -T

正确答案: BD

解析: onstat -t 显示活动表空间的表空间信息。onstat -T 显示全部表空间的表空间信息。

39、如何查看 GBase 8s 数据库系统在线日志最新信息?

  • A 使用 onstat --log 查看 online 日志文件的最后部分。
  • B 使用 tail 命令查看 online 日志文件的最后部分。
  • C 使用 onstat -l 查看 online 日志文件的最后部分。
  • D 使用 onstat -m 查看 online 日志文件的最后部分。

正确答案: BD

解析: 数据库的日志保存在 online 日志中,可以使用 onstat -m 查看数据库在线日志中的最新内容,也可以直接使用操作系统命令 tail 直接查看日志文件中的内容的最后部分。

40、如何查看 GBase 8s 数据库的 onconfig 文件内容?

  • A 使用 onmode -c
  • B 使用 onstat -c
  • C 使用 oninit -c
  • D 使用 cat 命令查看 onconfig 文件

正确答案: BD

解析: onstat -c 可以直接显示数据库的配置文件内容,也可以进入 GBase 8s 的安装目录中的 etc 目录中,直接查看 onconfig 文件中的内容。GBase 8s 的配置文件保存在一个类似 onconfig.<server_name> 的文本文件中。

41、在存储过程中定义变量正确的语句是()

  • A define x int;
  • B define x, y int
  • C int x
  • D x int

正确答案: AB

解析: 存储过程中定义变量需要有 define 关键字;支持系列定义。

判断题

1、在静态模式下,数据库的数据不会发生变化,数据库管理员可以在静态模式下使用 COUNT 函数精确统计每个表有多少条记录?

  • 正确
  • 错误

正确答案: 错误

解析: 在静态模式下,不能执行 SQL 语句。

2、GBase8s SPL变量支持链式赋值()

  • 正确
  • 错误

正确答案: 正确

解析: 例如 let userid, username = 2021, 'gbasedbt'; 就是属于链式赋值。

3、GBase 8s 提供了两个备份与恢复工具,onbar 可以实现备份数据的完全恢复和基于时间点的恢复,但 ontape 只能进行备份数据的完全恢复,不能进行基于时间点的恢复。

  • 正确
  • 错误

正确答案: 正确

解析: ontape 工具只能进行数据的完全恢复,也可以进行基于备份数据的物理恢复,但不能进行基于时间点的数据恢复。需要实现基于时间点的不完全恢复,只能使用 onbar 实现。、

4、GBase 8s 自带的两个备份工具(onbar 和 ontape)都可以实现备份数据的完全恢复,这两个备份工具备份出来的数据是兼容的。

  • 正确
  • 错误

正确答案: 错误

解析: 两个工具备份的数据不兼容,不能用 onbar 来恢复由 ontape 备份出来的数据。

5、GBase 8s 物理日志记录数据被更改后的数据映像,逻辑日志记录数据库服务器对数据的操作记录。

  • 正确
  • 错误

正确答案: 错误

解析: GBase 8s 物理日志记录数据被更改前的映像,逻辑日志记录数据库服务器对数据的操作记录。

6、只有数据库处于在线模式时,才能对外提供SQL查询功能。

  • 正确
  • 错误

正确答案: 错误

解析: 数据库处于单用户模式时,也可以提供 SQL 查询。

7、数据类型 numeric(p,s) 中的 p 代表整数位长度,s 代表小数位长度()

  • 正确
  • 错误

正确答案: 错误

解析: numeric(p,s) 中的 p 代表整数和小数长度。

写在最后

本文仅记录课后练习题以及对应答案的解析,并非 GDCA 实际考试考题,仅供学习参考。

猜你喜欢

转载自blog.csdn.net/m0_50546016/article/details/143171024