大家好,这里是公众号 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 实际考试考题,仅供学习参考。