数据库运维
记录DBA学习成长历程

GBase 8a 练习题

文章目录

第2章:GBase 8a MPP Cluster 核心技术及架构演进

1 GBase 8a集群数据库属于()
A OldSQL事务型数据库
B NewSQL分析型蜒库
C NoSQL互联网类数据库
D 以上都不是
正确答案:B
解析:
南大通用大规模分布式并行数据库是列存数据库,主要用于分析场景,属于NewSQL分析型数据库。

2 GBase 8a集群数据库主要应用于( )
A 交易系统
B 数据仓库系统
C 商业智能系统
D 决策支持系统
正确答案:BCD
解析:
南大通用大规模分布式并行数据库集群系统是为管理超大规模数据量而设计的通用计算平台,具备高性能、高 可用、高扩展特性,广泛应用于各类企事业单位的数据仓库系统、BI系统和决策支持系统。

3 以下针对GBase 8a集群数据库中DC的描述正确的是()?
A DC是基本的I/O单位
B 每个DC自动封装和压缩
C 每个DC包含65535行数据
D DC尾块不压缩
正确答案:ABD
解析:
DC文件依据操作系统的文件大小限制进行分裂和存储。 DC是基本I/O单位,只有查询所涉及到的列才产生I/O。 每个DC包含65536行数据,数据行数不足时以DC尾块形式单独存放。DC尾块不封装、不压缩。

4 以下关于粗粒度智能索引描述正确的是()?
A 免维护,自动建立。
B 每一列数据都会生成一个粗粒度智能索引。
C 索引的建立和维护对资源的消耗可以忽略不计。
D 记录DC内的最大值、最小值、空值、求和值等。
正确答案:ACD
解析:
粗粒度:轻量级索引,索引的建立和维护对系统资源的占用和性能影响几乎为零
透明性:索引自动建立,并且随数据变化自动更新,无 需人工干预
有效性:大大缩小查询和数据物化的范围,迅速定位目标数据集
记录DC内的最大值、最小值、空值、求和值等。

5 8a数据库的压缩支持()
A 按库压缩
B 按表压缩
C 按列压缩
D 按行压缩
正确答案:ABC
解析:
实现库级、表级、列级三级压缩选项。
压缩算法按数据类型和数据分布不同而优化,自动选择最优压缩算法,灵活平衡性能与压缩比的关系。可以对压缩方式进行修改。

6 Coordinator节点可以与data node节点部署于不同IP网段。✔
解析:
调度集群内的所有Coordinator点必须处于同一网段。而对数据节点只要网络可达即可。

7 支持联邦架构和多分片的gbase8a版本是()?
A v83
B v85
C v86
D v95
正确答案:CD
解析:
v83和v85版本8a集群并不是联邦架构概念,且每个节点只能一个分片,不支持多分片。V86版本开始支持多分片,且架构调整为联邦架构。V95版兼容V86版,延续了联邦架构和多分片的技术特点。

8 GBase 8a集群中由数据节点组成的集群叫做( )
A 虚拟集群
B 调度集群
C 镜像集群
D 计算集群
正确答案:D
解析:
由管理节点组成的集群叫调度集群,由数据节点组成的集群叫计算集群。两个集群协同工作形成联邦架构。

9 Coordinator节点需要分别连接数据网络和业务网段。✔
解析:
Coordinator节点,分别连接数据网络(集群内部网络) 和业务网络(集群外部网络),一个用于集群内部通信 (建议万兆带宽),一个用于对外提供数据库服务(建议千兆带亮)。

10 集群中负责各节点实例间共享信息,并在多副本操作中,控制各节点数据一致性状态的组件是()
A gnode
B gcware
C gcluster
D syncserver
正确答案:B
解析:
GCWare用于各节点GCluster实例间共享信息,以及控制多副本数据操作时,提供可操作节点,并在多副本操作中,控制各节点数据一致性状态。

第3章:GBase 8a MPP Cluster V95 安装和卸载及版本升级

1 下列有关SetSysEnv.py脚本描述正确的是()?
A 每个节点安装前都要执行该脚本
B 该脚本由DBA用户操作执行
C cgroup参数是可选项
D 运行产生的日志文件存在/tmp目录下
正确答案:ACD
解析:
SetSysEnv.py脚本用于设置集群各节点的安装环境,会涉及到系统环境的设置,所以需要以操作系统的管理员身份执行。

2 GBase8a集群数据库安装成功后,数据库的初始管理员为 root,密码为空。()

解析:
数据库安装完成后,数据库自动生成管理员账户root,初始密码为空。使用root账户登录数据库后执行初始化数据库操作,数据库才能正常使用。

3 影响license失效的原因有()
A 超过数据库合法使用期限
B 内存大小变动
C 更换网卡
D 删除了license文件
正确答案:ABC
解析:
CPU变更、Memory变更(总内存大小变动等)、Mac地址变更(更换网卡、网卡数量变动等)和license过期都 会造成license失效。另外,license文件导入成功之后删除license文件并不会导致license失效。

4 GBase 8a集群数据库安装前,需要为安装用户开放哪些目录的权限( )
A 集群的安装目录
B /root目录
C /tmp目录
D /home目录
正确答案:AC
解析:
集群各节点的安装目录要允许安装用户远程写入数据库文件。而/tmp目录则会在安装数据库时存放安装过程中的日志文件。所以这两个目录都要开放相应权限。

5 GBase 8a集群需要以root用户身份进行各节点的license注册。( )

解析:
各节点的license注册使用DBA账户完成。

6 下列有关demo.options文件描述正确的是()?
A demo.options是安装集群的配置文件
B 该文件用于指定各集群节点角色
C 扩容操作需要使用该文件
D 在demo.options文件中写明密码即代表所有节点所使用的密码一致
正确答案:ABCD
解析:
8a集群安装时,使用demo.options文件作为集群静默安装的配置文件。该文件标识集群各节点角色、账户信息、密码等。

==================================

1 数据库升级时,新旧版本的集群角色必须一致且集群规模也必须相同。✔
解析:
新旧版本数据库集群架构相同时,直接使用・U参数升级即可。集群架构不同的升级需要对demo.options文件进行重新编辑,保证集群升级前后的集群角色和架构逻辑不变。

2 集群升级前,需要停掉所有节点的集群服务。✔
解析:
集群升级与安装操作基本相同,是在原有数据库的基础 上,进行安装和替换,所以需要停掉所有节点的集群服务。

3 集群升级成功后,执行过DDL、DML、扩容、生成新 distribution或产生数据不一致情况,就无法进行升级回退操作 了。✔
解析:
有升级备份文件还要满足如下条件才能实现回退操作: 升级完成后,没有执行过DDL、DML、扩容、 生产新的distribution操作,没有生成新的 FEVENTLOG。

4 V95版本数据库的兼容模式与V86版本数据库的集群架构一致。✔
解析:
V95版本数据库有兼容模式和多VC模式,其中兼容模式就是用于兼容V86版本,采用单VC架构。

5 升级备份文件用于进行升级回退操作。✔
解析:
有升级备份文件还要满足如下条件才能实现回退操作: 升级完成后,没有执行过DDL、DML、扩容、 生产新的distribution操作,没有生成新的 FEVENTLOG。

6 数据库升级分为架构相同的数据库版本升级和架构不同的数据库版本升级,两者使用的升级命令是一样的。✔
解析:
虽然集群架构相同的升级和集群架构不同的升级命令相同,但两者的执行理念不同。集群架构不同的升级需要对demo.options文件进行重新编辑,保证集群升级前后的集群角色和架构逻辑不变。

7 升级备份文件,默认存储在集群安装目录。✖
解析:
升级备份文件默认存放在DBAUser的home目录下。

第4章:GBase 8a MPP Cluster 数据库客户端

1 运行在非Coordinator节点的命令行客户端,必须使用“-h”参数。✔
解析:
gccii -h参数用于指定通过哪个服务器登录数据库。除非数据库客户端与登录服务器在同一节点,否则需要指定-h参数指明要登录的服务器。

2 集群的coordinator节点内嵌了客户端、服务器和DBMS。✔
解析:
集群的coordinator节点内嵌了客户端gccli,并为客户端提供数据库服务器端连接。数据库管理系统管理各集群节点。

3 企业管理器GBaseDataStudio中的审计管理栏记录哪些日志( )
A 跟踪日志
B 审计日志
c 错误日志
D 加载日志
正确答案:ABC
解析:
审计管理栏包含:审计日志、错误日志、跟踪日志、数 据库启停日志。

4 企业管理器GBaseDataStudio能够实现以下哪些功能()
A 查看集群环境日志
B 创建和删除用户
C 管理多个集群
D 执行SQL脚本
正确答案:ABCD
解析:
企业管理器作为集群的图形化客户端,可以实现各种数据库操作并可视化数据库对象。

5 以下关于企业管理器GBaseDataStudio说法正确的是()
A 通过JDBC连接数据库
B 可以用它执行加载操作
C 它是8a数据库的图形化客户端
D 它只能用在windows系统平台
正确答案:ABC
解析:
企业管理器作为集群的图形化客户端,提供linux版和 windows 版。

第5章:GBase 8a MPP Cluster 集群管理

1 gcadmin能查询的管理日志包括()
A DDLevent
B DMLevent
C DCLevent
D DDLstorageevent
正确答案:AB
解析:
能够查看的日志是:DDLevent、DMLevent和 DMLstorageevent

2 使用gcadmin工具显示集群状态正常的是( )
A ACTIVE
B OPEN
C NORMAL
D 0
正确答案:A

3 当集群管理节点出现数据不一致时,应如何定位问题()?
A gcadmin showddlevent
B gcadmin showdmlevent
C gcadmin showdmlstorageevent
D 查看网络
正确答案:A
解析:
集群管理节点主要维护数据库的元数据,所以出现数据不一致时主要查看ddlevent。

4 gcluster_services all info命令有可能查看到以下哪些进程()
A gcware
B gcluster
C gcrecover
D gcmmonit
正确答案:ABC
[gbase@gbase02 ~]$ gcluster_services all info
gcware is running
gcluster is running
gcrecover is running
gbase is running
syncserver is running

5 监控集群模组工作状态的工具是()
A nmon
B gcmmonitor
C gcmonitor
D gcluster_services all info
正确答案:C
解析:
gcmonitor监控以下进程:gcluster、gcware、gcrecover、gcmmonit、gbase syncserver、 gcmmonitor监控gcmonitor

6 有关gcluster_services all stop命令,描述正确的是()
A 关闭整个集群服务
B 只有操作系统管理员root可以使用
C 仅关闭当前节点的集群进程
D 关闭的集群进程会自动被gcmonitor拉起
正确答案:C
解析:
由DBA用户执行,关闭当前节点的所有数据库服务进程。

7 以下有关8a集群初始化之前可运行的操作描述正确的是( )
A 可以查看系统数据库
B 可以创建数据库
C 可以创建账户
D 能够删除数据
正确答案:A
解析:只有初始化后,数据库才能将数据写入相对应的数据分片。

第6章:GBase 8a MPP Cluster SQL基础

1 GBase 8a MPP Cluster 中,关于SQL描述错误的是( )
A SQL 的关键词不区分大小写,例如 SELECT 和select都可以正确执行。
B 默认 SQL 执行采用自动提交方式,跟oracle默认非自动提交不同,不用单独写commit语句。
C 数据库、表、列等标识符名称默认支持的字符为字母、数字、_下划线、中文组合,名称长度有最大长度限制。
D 数据库、表、列等标识符名称中包括特殊字符或关键词时,需要加``反引号包围,例如`gs-table.gs-column`。
正确答案: C D
解析:
需要设置gcluster_extend_ident参数为1时,才支持中文库名、表名,默认此参数为0,不支持中文。数据库、表、列等标识符名称中包括特殊字符或关键词时,每个对象需要加``反引号包围,例如`gs-table`.`gs-column`,不能加到一起。

2 GBase 8a MPP Cluster 支持的DATETIME类型,支持的最小时间单位是( )
A 秒
B 毫秒
C 微秒
D 纳秒
正确答案: C
解析:
GBase 8a MPP Cluster 支持的DATETIME类型,支持的最小时间单位是微秒★

3 其他数据库表要迁移到GBase 8a MPP Cluster 时,当遇到跟8a支持的数据类型关键词不一致时,必须要把列的数据类型完全改写成8a支持的数据类型才能正确建表。✔
解析:
8a支持隐式转换,对于一些数据类型,例如bool类型、int2等,能自动转换成8a支持的列类型★

4 DECIMAL类型是严格的数值数据类型,建表语句 create table t(i int, j decimal);中,没有具体写DECIMAL位数,则默认是( )位
A 0
B 10
C 18
D 65
正确答案: B
解析:
DECIMAL默认是DECIMAL(10,0)

4 GBase 8a MPP Cluster 支持的DECIMAL(M,D)类型,其中M是总位数,最大支持( )位
A 16
B 18
C 64
D 65
正确答案: D
解析:
GBase 8a MPP Cluster 支持的DECIMAL(M,D)类型,其中M是总位数,最大支持65位★

5 GBase 8a MPP Cluster 每条SQL语句默认的结束符号是( )
A.
B;
C#
D--
正确答案: B
解析:
GBase 8a MPP Cluster 每条SQL语句默认的结束符号;号

6 GBase 8a MPP Cluster 支持数据类型中,( )类型不能有 DEFAULT 值。
A DECIMAL
B TEXT
C BLOB
D LONGBLOB
正确答案: B C D
解析:
大对象类型不支持DEFAULT 值,像TEXT、BLOB和LONGBLOB。★

7 GBase 8a MPP Cluster v9版本增加虚拟集群的概念,当没有多个VC情况下,8a集群为兼容模式,会默认包括一个VC,id是vc00001,在访问路径中可以省略。✔

8 在实际的GBase 8a项目中,建议客户使用(     )类型存储字符串。
A CHAR
B TEXT
C VARCHAR
D VARCHAR2

正确答案: C
解析:
数仓等项目建议使用VARCHAR类型存储字符串,8a不支持VARCHAR2类型。★

9 其他数据库表要迁移到GBase 8a MPP Cluster 时,当遇到跟8a支持的数据类型关键词不一致时,必须要把列的数据类型完全改写成8a支持的数据类型才能正确建表。✖
解析:
8a支持隐式转换,对于一些数据类型,例如bool类型、int2等,能自动转换成8a支持的列类型★

10 GBase 8a MPP Cluster中,使用以@开头的变量是( )
A局部变量
B系统变量
C用户变量
D全局变量
正确答案: C
解析:
以@开头的变量是用户变量。★

第7章:GBase 8a MPP Cluster DDL 语句

1 若要完整删除数据库中已经存在的表S,可使用下列哪个命令( )。
A DELETE TABLE S
B DROP TABLE S
C DROP S
D DELETE S
正确答案: B
解析:
DROP TABLE S; 命令可删除表和表数据占用的空间★

2 当t1表是复制表时, 执行CREATE TABLE t2 LIKE t1; 则t2表是( )
A hash分布表
B 随机分布表
C 复制表
D 分区表
正确答案: C
解析:
CREATE TABLE…LIKE可以复制表结构包含表的分布类型。

3目前GBase 8a 的hash分布列支持哪几种数据类型( )
A varchar
B char
C int
D decimal
正确答案: A C D
解析:
hash分布列支持当前只支持整数类型、varchar、decimal数据类型

4 以下哪个操作能释放t表数据占用的物理空间( )
A DROP TABLE t;
B RENAME TABLE t TO a;
C DELETE FROM t;
D TRUNCATE TABLE t;

正确答案: A D
解析:
DROP TABLE和TRUNCATE TABLE可以释放数据占用的空间。★

5 hash分布表中的被选为distributed by列字段,不能被( )操作。
A delete
B update
C insert
D 以上三种

正确答案: B
解析:
hash分布表中的分布列字段,不能被update更新,语法会报错。★

6 使用ALTER TABLE语句能修改表字段的( )
A 数据类型
B 默认值
C varchar类型的长度
D 名字

正确答案: C D
解析:
ALTER TABLE语句不支持改变列的数据类型、改变列的属性(NOT NULL,默认值)、改变表的字符集;可改变列的长度,只能变大,不能变小;可改变名称★

7 对临时表描述错误的是( )
A 使用关键词TEMPORARY
B 被限制在当前连接中,当连接关闭时,临时表会自动被删除。
C 临时表跟表类型无关,可以建成随机分布临时表,也可以建成复制临时表。
D 临时表跟表操作命令一样,支持所有 DDL 及 DML 操作。

正确答案: D
解析:
临时表不支持ALTER TABLE。★

8 建表语句 create table t(a int ,b varchar(50),c int),未写明特别的关键字,则创建的是( )表?
A 分布表
B 临时表
C 复制表
D 分区表

正确答案: A
解析:
未写明特别的关键字的建表语句,则创建的是随机分布表。★

9 当客户端连接上GBase 8a MPP Cluster数据库后,执行( )SQL命令切换到指定数据库下。
A show databases;
B create database database_name;
C use database_name;
D select database();

正确答案: C
解析:
使用use database_name; 命令切换到指定数据库下★

10 建表语句create table tb(id int, name varchar(50),c int) REPLICATED; 创建的是( )表?
A 分布表
B 临时表
C 复制表
D 分区表

正确答案: C
解析:
REPLICATED表示创建的是复制表★

11 GBase 8a MPP Cluster支持对视图进行( )操作。
A delete
B update
C insert
D select

正确答案: D
解析:
禁止对视图进行INSERT、UPDATE 和 DELETE 操作。★

12 GBase 8a MPP Cluster支持的索引有( )
A 智能索引
B 聚簇索引
C 全文索引
D hash索引

正确答案: A C D
解析:
8a不支持聚簇索引★

13 hash索引列不支持数据类型是( ) 。
A DECIMAL
B TEXT
C BLOB
D VARCHAR

正确答案: B C
解析:
hash分布列支持当前只支持整数类型、varchar、decimal数据类型

14 查询视图跟查询表操作一样,使用show tables;命令可查询视图名称。✔
解析:
使用show tables;命令可查询表名和视图名

15 索引是在基本表的列上建立的一种数据库对象,它同基本表分开存储,使用它能够加快数据的( )速度。
A delete
B update
C insert
D select

正确答案: D
解析:
索引能够加快数据的查询SELECT速度★

第8章:GBase 8a MPP Cluster DML 语句

1 GBase 8a的 DELETE操作会实际删除数据,重新创建智能索引,所以删除数据操作的性能较低。✖
解析:
GBase 8a的 DELETE操作会打删除标记,不实际删除数据。

2 快速UPDATE模式,需要开启()参数开关
A gbase_fast_update
B fast_update
C _t_gbase_fast_update
D _fast_update

正确答案: A
解析:
快速UPDATE模式,需要开启gbase_fast_update参数为1或者on,开启快速更新模式。★

3 哈希分布表的哈希列的约束是()
A 哈希列的值不能是空值。
B 哈希列只支持1列。
C 哈希列的值支持的数据类型是整型、DECIMAL或VARCHAR。
D UPDATE语句不能改写哈希列的值。

正确答案: C D
解析:
v95版本的8a支持hash列可以是null值和多列hash。★

4 GBase 8a的 DELETE支持级联删除,即关联表的数据同时被删除。✖
解析:
GBase 8a的 DELETE操作不支持级联删除,一次只能删除一个表中的数据。

5 哈希分布表中被定义为distributed by的字段,不能做( )操作。
A delete
B update
C insert
D 以上三种

正确答案: B
解析:
哈希分布表中的hash列字段,不能做update操作★

6 数据操作语句DML包含()
A SELECT
B INSERT
C DELETE
D UPDATE

正确答案: B C D
解析:
DML不包含SELECT查询语句。★

7 以下INSERT语句正确的是()

A INSERT INTO score (sid, score ) VALUES (1, 80);
B INSERT INTO TABLE score (sid, score ) VALUE (1, 80);
C INSERT score (sid, score ) VALUES ( (1, 80), (2, 76), (3, 91), (4,86), (5,89) );
D INSERT score (sid, score ) VALUES (1, 80), (2, 76), (3, 91), (4,86), (5,89) ;

正确答案: A D
解析:
value后要有s;插入多个值时,元组集合外不用再加一层圆括号★

8 GBase 8a MPP Cluster执行SQL命令,DDL和DML执行步骤不同点:()
A 一条DDL命令会在所有gcluster管理节点和gnode计算节点执行。一条DML命令由GCluster发起节点下发给gnode计算节点,各计算节点执行DML命令更新数据,然后返回结果给发起管理节点。
B DDL和DML语句首先发给所有管理节点,然后再下发到各个计算节点。
C DDL仅在所有管理节点上执行;DML语句仅在计算节点上执行。
D DDL和DML语句首先发给GCluster发起节点,再下发到各个计算节点。

正确答案: A
解析:
一条DDL命令会在所有gcluster管理节点和gnode计算节点执行。一条DML命令由GCluster发起节点只下发给gnode计算节点,各计算节点执行DML命令更新数据,然后返回结果给发起管理节点。★

9 Student包含SId , Sname, Sdept, Sage等字段,以下INSERT语句正确的是()
A INSERT Student (SId , Sname) SELECT user_id, user_Name FROM user_info
B INSERT INTO Student (SId , Sname) SELECT user_id, user_Name FROM user_info
C INSERT INTO Dept_age (Sdept , Avg_age) SELECT Sdept, AVG(Sage) FROM Student GROUP BY Sdept
D INSERT INTO Student SELECT user_id, user_Name FROM user_info

正确答案: A B C
解析:
表名后不写明要插入的列是错误的★

第9章:GBase 8a MPP Cluster DQL 语句

1 COUNT(*) 和COUNT(colName) 结果()
A 完全相同。
B colName列存在NULL值时,不同。
C 总是不同。
D 由表类型(哈希分布表、随机分布表)决定。

正确答案: B
解析:
有null值时,二者查询的条数不同。COUNT(colName)只记录不含null值的条数。★

2 笛卡尔乘积是由于()的表关联产生的。
A 左外连接
B 右外连接
C 全连接
D 没有关联条件

正确答案: D
解析:
没有关联条件的两表会产生两表条数相乘记录的联合表。★

3 GBase 8a MPP Cluster执行单个hash分布表select语句,WHERE子句中只有一个hash分布列条件,语句会下发到()计算节点上
A 所有
B 指定
C 随机一个
D 和条件比较值的hash运算值相匹配的

正确答案: D
解析:
hash分布表能计算出数据具体落在哪个节点上,所以不是所有节点都查询,只下发到有该数值的节点执行即可。★

4 GBase 8a MPP Cluster执行单个复制表DQL语句,会下发到()计算节点上
A 所有
B 指定
C 随机一个
D 以上皆非

正确答案: C
解析:
每个节点都有复制表,随机选择一个节点执行即可。★

5 使用union或union all时,需()
A 必须保证各个select 集合的结果有相同个数的列。
B 必须保证各个select 集合相同次序上的列名相同。
C 必须保证各个select 集合对应的列类型是一样的。
D 各个select 集合相同次序上的列名可以不同。

正确答案: A C D
解析:
各个select 集合投影列相同次序上的列类型一致,个数一致,列名可以不同,以第一个select列名显示。

6 where和having用法区别()
A where中不能有列的别名,having中可以操作列的别名。
B WHERE子句用来筛选 FROM 子句中指定的数据集。HAVING 子句用来从分组的结果中筛选行。
C where中不能有聚合函数,having中可以有聚合函数。
D 执行的顺序不一样: where的搜索条件是在进行分组之前执行;having的搜索条件是在分组后执行的。

正确答案: B C D
解析:
having子句中不能有列的别名。

7 以下聚合语句中错误的是()
A select Ssex, count(Sno) from student group by Ssex;
B select YEAR(Sage), count(Sno) from student group by YEAR(Sage);
C select Cno, count(Sno) from student group by Cno;
D select Cno, count(Sno) from student group by Ssex;

正确答案: D
解析:
有group by子句时,投影列需包括group by后分组字段和聚合函数。★

8 表连接类型分为()两大类
A 内连接
B 外连接
C 左连接
D 右连接

正确答案: A B
解析:
表连接类型分为内连接和外连接。★

第10章:GBase 8a MPP Cluster 常用系统函数

1 系统函数在SQL语句中,经常出现的位置在SELECT投影列中, 或者WHERE子句中的查询条件中。✔
解析:

2 求距离月底还有多少天,正确的语句是()
A SELECT DATEADD(LAST_DAY(NOW()), NOW());
B SELECT DATEDIFF(LAST_DAY(NOW()), NOW());
C SELECT DATESUB(LAST_DAY(NOW()), NOW());
D SELECT DATEDIFF(NOW(), LAST_DAY(NOW()));

正确答案: B
解析:
DATEDIFF(LAST_DAY(NOW()), NOW())得到了天数为正数,DATEDIFF(NOW(), LAST_DAY(NOW()))得到的天数为负数。★

3 字符串连接语句正确的是()
A select '我已使用' || 20 || '天GBase 8a'
B select '我已使用' + '20' + '天GBase 8a'
C select concat('我已使用', 20, '天GBase 8a')
D select concat('我已使用', '20', '天GBase 8a')

正确答案: A C D
解析:
+为数值相加,没有字符串拼接的功能。★

4 SELECT TRUNCATE(127.456, -1) 执行结果为()
A 100
B 120
C 123.5
D 123.4

我的答案: B
解析:
TRUNCATE函数为截取指定位数,-1参数表示小数点前1位,为十位,则直接舍去十位数后面的数字,结果为120。★★

5 关于NULL的叙述,()是错误的
A NULL值表示“没有数据”,值未知,值不确定,不占空间。
B NULL 的拼写,大小写无关。
C SELECT count(Sage) FROM Student 统计表包括NULL值的总条数。
D NULL 和 UNKNOWN 是等价的。

正确答案: C
解析:
count(Sage) 不统计表中该字段为NULL值的条数

6 以下条件分支语句正确的是()
A CASE Ssex WHEN '男' THEN '帅哥' WHEN '女' THEN '美女' ELSE '不明'
B CASE Ssex WHEN '男' THEN '帅哥' WHEN '女' THEN '美女' ELSE '不明' END
C CASE Ssex WHEN '男' THEN '帅哥' WHEN '女' THEN '美女' END
D CASE WHEN Ssex='男' THEN '帅哥' WHEN Ssex='女' THEN '美女' ELSE '不明' END

正确答案: B C D
解析:
语句末尾要有END★

7 SELECT CHAR_LENGTH('南大通用数据') 执行结果是()
A 12
B 6
C 18
D 10

正确答案: B
解析:
CHAR_LENGTH()函数返回值是字符个数,则结果为6。★

8 SELECT LAST_DAY('0000-12-1') 运行的结果是()

A 0-12-31
B 0000-12-31
C 0000-12-30
D NULL

正确答案: D
解析:
'0000-12-1'不是一个正确的日期,返回值为NULL。★

9 SELECT add_months('2020-12-30', 1);的执行结果()
A 2020-01-30 00:00:00
B 2020-11-30 00:00:00
C 2021-01-30
D 2021-01-30 00:00:00

正确答案: D
解析:
add_months()函数返回值是日期时间类型★

10 数据库字符集是UTF8,SELECT LENGTH('南大通用数据') 执行结果是()
A 12
B 6
C 18
D 10

正确答案: C
解析:
LENGTH()函数返回值是字节个数,默认是UTF8字符集,一个汉字为3个字节存储,则结果为18★

11 统计2012(含)年后出生的学生,以下()语句正确并且执行效率最高。
A select SId, Sname, Sage from student where to_char(Sage,'YYYY') >= 2012;
B select SId, Sname, Sage from student where Sage >= to_date('2012-1-1')
C select SId, Sname, Sage from student where Sage >= to_date('2012-1-1','YYYY-MM-DD');
D select SId, Sname, Sage from student where to_char(Sage,'YYYY') > 2012;

正确答案: C
解析:
where条件中使用函数尽量在值上,不要在字段上使用函数,这样少执行函数次数,提高性能。B结果不对是to_date函数有两个参数,只写了一个参数。★

12 显示”2021年03月16日”这样的日期格式,正确的SQL语句是()
A SELECT DATE_FORMAT(sysdate(), '%y年%m月%d日')
B SELECT DATE_FORMAT(sysdate(), '%Y年%m月%d日')
C SELECT DATE_FORMAT(sysdate(), '%Y年%0m月%d日')
D SELECT DATE_FORMAT(sysdate(), '%Y年%mm月%dd日')

正确答案: B
解析:
根据日期格式规则,正确答案为SELECT DATE_FORMAT(sysdate(), '%Y年%m月%d日'), %Y 代表4位的年,%m 代表2位的数字月,%d代表2位的天

13 select round(123.456,-2)的执行结果:
A 123.46
B 123.45
C 100
D 123.00

正确答案: C
解析:
round函数支持四舍五入,-2参数表示小数点前2位,为百位,看十位数为2,则直接舍去,结果为100。★

14 获取当前日期时间,可以使用()函数。

A SYSDATE
B NOW
C CURDATETIME
D CURRENT_TIMESTAMP
E CURRENT_DATETIME

正确答案: A B C D E
解析:
全部都正确,都能获取当前日期时间。★

15 NOW和SYSDATE函数的区别是()

A NOW有同义词,SYSDATE没有同义词。
B NOW取的是语句开始执行的时间,SYSDATE取的是该函数执行的实时时间。
C NOW得到当前日期和时间,SYSDATE得到当前日期。
D NOW得到当前时间,SYSDATE得到当前日期。

正确答案: B
解析:
NOW和SYSDATE函数都能得到当前日期和时间,区别NOW取的是语句开始执行的时间,SYSDATE取的是该函数执行的实时时间。★

16 NOW和SYSDATE函数的区别是()
A NOW有同义词,SYSDATE没有同义词。
B NOW取的是语句开始执行的时间,SYSDATE取的是该函数执行的实时时间。
C NOW得到当前日期和时间,SYSDATE得到当前日期。
D NOW得到当前时间,SYSDATE得到当前日期。

正确答案: B
解析:
NOW和SYSDATE函数都能得到当前日期和时间,区别NOW取的是语句开始执行的时间,SYSDATE取的是该函数执行的实时时间。★

17 SELECT IFNULL(country,'未知') RESULT FROM worldcup语句中控制流函数IFNULL可以替换为()。
A CASE WHEN THEN ELSE END
B IF
C NVL
D NULLIF

正确答案: A B C
解析:
NULLIF函数是判断表达式是真还是假,与IFNULL返回值不同,所以不能替换。★

第11章:GBase 8a MPP Cluster DCL 语句

1 授予用户权限组权限,正确的语句是()
A grant "role1" to bizMan@localhost;
B grant role1 to bizMan@localhost;
C grant "role1" from bizMan@localhost;
D grant role1 from bizMan@localhost;

正确答案: A B
解析:
grant后面用to关键词,用户组加双引号,认为是数据库对象,要是单引号,则会认为是字符串★

2 以下授权语句()是正确的
A grant select on * to bizMan@localhost
B grant select courseware.* to bizMan@localhost
C grant select on courseware.* to bizMan@localhost
D grant select on courseware.* to user bizMan

正确答案: C
解析:
“grant select on * to bizMan@localhost”错误在于只有一个*;“grant select courseware.* to bizMan@localhost”错误在于缺少on关键词;“grant select on courseware.* to user bizMan”错误在于多了user。★

3 create user bizMan identified by 'x'创建的bizMan用户可访问的客户端()
A 任意主机;
B 只能是数据库服务器本机,即localhost;
C 只能是127.0.0.1;
D 该用户在任何主机上都不能访问数据库。

正确答案: A
解析:
新建用户bizMan等同于bizMan@%,任意主机均可登录★

4 收回表插入数据权限语句以下正确的是()
A revoke insert("ID") on courseware.test01 to bizMan@localhost;
B revoke insert(ID) on *.test01 from bizMan@localhost;
C revoke insert(ID) on courseware.test01 from bizMan@localhost;
D revoke insert(ID) on courseware.test01 to bizMan@localhost;

正确答案: C
解析:
revoke后面用from关键词,表级权限需写明具体的数据库名称★

5 GBase 8a数据库用户名称大小写不敏感。 ✖
解析:
GBase 8a数据库用户名称大小写敏感

6 GBase 8a的权限级别包括()
A 全局级
B 数据库级
C 表级
D 列级
E 过程级

正确答案: A B C D E
解析:
全部都正确。★

7 ALL是一个特殊权限,不包含()
A PROCESS
B GRANT OPTION
C EXECUTE
D SHUTDOWN

正确答案: B
解析:
ALL权限不包含GRANT OPTION给其他用户授权权限★

8 回收用户的Role权限,正确的语句是()
Arevoke role1 to bizMan@localhost;
Brevoke *.role1 from bizMan@localhost;
Crevoke role1 from bizMan@localhost;
Drevoke "role1" from bizMan@localhost;

正确答案: C D
解析:
revoke后面用from关键词,用户组加双引号,认为是数据库对象,要是单引号,则会认为是字符串

9 以下授予表插入数据权限的语句正确的是()

A grant insert("ID") on courseware.test01 from bizMan@localhost;
B grant insert(ID) on courseware.test01 to bizMan@localhost;
C grant insert("ID") on *.test01 to bizMan@localhost;
D grant insert("ID") on courseware.test01 to bizMan@localhost;

正确答案: B D
解析:
“grant insert("ID") on courseware.test01 from bizMan@localhost;”错误在于grant后面的关键词应该是to;“grant insert("ID") on *.test01 to bizMan@localhost;”的错误在于表级权限在数据库级权限下,需写明具体的数据库。★

第12章:GBase 8a MPP Cluster 系统表

1 显示当前数据库版本,正确的语句是()
A select version;
B select versions();
C select version();
D show version;

正确答案: C
解析:
version()函数返回数据库版本信息

2 查看正在运行的线程,与SHOW PROCESSLIST等价的语句是()
A select * from gbase.processlist;
B select id,user,host,db,command,time,state,info from information_schema.processlist;
C select id,user,host,db,command,time,state,info from performance_schema.processlist;
D select * from processlist;

正确答案: B
解析:
SHOW PROCESSLIST与information_schema.processlist表查询的内容一致★

3 中止连接当前执行的语句,但是不中止该连接本身,正确的语句是()
A kill query 3789
B kill 3789
C pause 3789
D CONTINUE 3789

正确答案: A
解析:
需加QUERY参数,中止连接当前执行的语句,但是不中止该连接本身。★

4 和SHOW VARIABLES LIKE 'gbase_sql%'等价的语句是()
A SELECT variable_name, variable_value from information_schema.global_variables where variable_name like 'gbase_sql%';
B SELECT * from information_schema.global_variables where variable_name like 'gbase_sql%';
C SELECT variable_name, variable_value from global_variables where variable_name like 'gbase_sql%';
D SELECT name, value from global_variables where variable_name like 'gbase_sql%';

正确答案: A
解析:

5 ()表存储哈希键值与nodeid的对应关系。GBase 8a数据库引擎根据计算出的hash值确定数据存储在哪个节点上。
A gbase.audit_log
B gbase.nodedatamap
C gbase.proc
D gbase.time_zone

正确答案: B
解析:
gbase.nodedatamap表存储哈希键值与nodeid的对应关系。★

6 STUDENT表分片有一个副本,以下()语句等价于SELECT COUNT(*) FROM STUDENT
A SELECT COUNT(1) FROM STUDENT;
B select TABLE_SCHEMA,TABLE_NAME, TABLE_ROWS from performance_schema.tables where TABLE_SCHEMA='courseware' and TABLE_NAME='student';
C select TABLE_SCHEMA,TABLE_NAME, TABLE_ROWS/2 from performance_schema.tables where TABLE_SCHEMA='courseware' and TABLE_NAME='student';
Dselect TABLE_SCHEMA,TABLE_NAME, TABLE_ROWS/3 from performance_schema.tables where TABLE_SCHEMA='courseware' and TABLE_NAME='student';

正确答案: A C
解析:
COUNT(*)与COUNT(1)都表示总条数;performance_schema.tables保存的是所有分片的表条数,由于有一个副本,2倍数据,需要TABLE_ROWS除以2★

7 获取用户组Role和用户User关系信息需要查询()系统表
A gbase.user
B gbase.user_check
C gbase.role_edges
D gbase.roleanduser

正确答案: C
解析:
gbase.role_edges表记录用户组Role和用户User关系信息★

赞(0)
MySQL学习笔记 » GBase 8a 练习题