01 – 数据库运维知识

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

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

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

判断题(2 分)
升级备份文件,默认存储在集群安装目录。( )
正确
错误
正确答案: 错误
解析:
升级备份文件默认存放在 DBAUser 的 home 目录下。

多选题(4.5 分)
gcluster_services all info 命令有可能查看到以下哪些进程( )?
A.gcrecover
B.gcware
C.gcluster
D.gcmmonit
正确答案: ABC
解析:
[gbase@node131 ~]$ gcluster_services all info
gcware is running
gcluster is running
gcrecover is running
gbase is running
syncserver is running

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

判断题(2 分)
Coordinator 节点可以与 data node 节点部署于不同 IP 网段。(    )
正确
错误
正确答案: 正确
解析:
调度集群内的所有 Coordinator 节点必须处于同一网段。而对数据节点只要网络可达即可。

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

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

判断题(2 分)
v95 版本数据库的兼容模式与 v86 版本数据库的集群架构一致。( )
正确
错误
正确答案: 正确
解析:
v95 版本数据库有兼容模式和多 VC 模式,其中兼容模式就是用于兼容 v86 版本,采用单 VC 架构。

判断题(2 分)
数据库升级时,新旧版本的集群角色必须一致且集群规模也必须相同。( )
正确
错误
正确答案: 正确
解析:
新旧版本数据库集群架构相同时,直接使用 – U 参数升级即可。集群架构不同的升级需要对 demo.options 文件进行重新编辑,保证集群升级前后的集群角色和架构逻辑不变。

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

判断题(2 分)
GBase 8a 集群需要以 root 用户身份进行各节点的 license 注册。(      )
正确
错误
正确答案: 错误
解析:
各节点的 license 注册使用 DBA 账户完成。

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

判断题(2 分)
升级备份文件用于进行升级回退操作。( )
正确
错误
正确答案: 正确
解析:
有升级备份文件还要满足如下条件才能实现回退操作:
升级完成后,没有执行过 DDL、DML、扩容、生成新 distribution 操作,没有生成新的 FEVENTLOG。

判断题(2 分)
集群升级前,需要停掉所有节点的集群服务。( )
正确
错误
正确答案: 正确
解析:
集群升级与安装操作基本相同,是在原有数据库的基础上,进行安装和替换,所以需要停掉所有节点的集群服务。

判断题(2 分)
运行在非 Coordinator 节点的命令行客户端,必须使用 “-h” 参数。( )
正确
错误
正确答案: 正确
解析:
gccli -h 参数用于指定通过哪个服务器登录数据库。除非数据库客户端与登录服务器在同一节点,否则需要指定 – h 参数指明要登录的服务器。

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

多选题(4.5 分)
gcadmin 能查询的管理日志包括( )?
A.DCLevent
B.DDLevent
C.DDLstorageevent
D.DMLevent
正确答案: BD
解析:
能够查看的日志是:DDLevent、DMLevent 和 DMLstorageevent

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

判断题(2 分)
Coordinator 节点需要分别连接数据网络和业务网段。( )
正确
错误
正确答案: 正确
解析:
Coordinator 节点,分别连接数据网络(集群内部网络)和业务网络(集群外部网络),一个用于集群内部通信(建议万兆带宽),一个用于对外提供数据库服务(建议千兆带宽)。

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

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

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

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

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

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

单选题(2.5 分)
使用 gcadmin 工具显示集群状态正常的是 ( )?
A.NORMAL
B.0
C.OPEN
D.ACTIVE
正确答案: D
解析:
CLUSTER STATE: ACTIVE

VIRTUAL CLUSTER MODE: NORMAL===============================================================| GBASE COORDINATOR CLUSTER INFORMATION |===============================================================| NodeName | IpAddress | gcware | gcluster | DataState |---------------------------------------------------------------| coordinator1 | 172.16.4.131 | OPEN | OPEN | 0 |---------------------------------------------------------------| coordinator2 | 172.16.4.132 | OPEN | OPEN | 0 |---------------------------------------------------------------===============================================================================| GBASE DATA CLUSTER INFORMATION |===============================================================================| NodeName | IpAddress | DistributionId | gnode | syncserver | DataState |-------------------------------------------------------------------------------| Node1 | 172.16.4.131 | 1 | OPEN | OPEN | 0 |-------------------------------------------------------------------------------| Node2 | 172.16.4.132 | 1 | OPEN | OPEN | 0 |-------------------------------------------------------------------------------| Node3 | 172.16.4.133 | 1 | OPEN | OPEN | 0 |-------------------------------------------------------------------------------

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

判断题(2 分)
GBase 8a 集群数据库安装成功后,数据库的初始管理员为 root,密码为空。( )
正确
错误
正确答案: 正确
解析:
数据库安装完成后,数据库自动生成管理员账户 root,初始密码为空。使用 root 账户登录数据库后执行初始化数据库操作,数据库才能正常使用。

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

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

02 – SQL基础

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

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

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

判断题
GBase 8a MPP Cluster v9版本增加虚拟集群的概念,当没有多个VC情况下,8a集群为兼容模式,会默认包括一个VC,id是vc00001,在访问路径中可以省略。( )
正确
错误
正确答案: 正确
解析:

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

单选题
在实际的GBase 8a项目中,建议客户使用(     )类型存储字符串。
A.CHAR
B.TEXT
C.VARCHAR
D.VARCHAR2
正确答案: C
解析:
数仓等项目建议使用VARCHAR类型存储字符串,8a不支持VARCHAR2类型。★

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

单选题
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位★

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

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

单选题
当客户端连接上GBase 8a MPP Cluster数据库后,执行( )SQL命令切换到指定数据库下。
A.show databases;
B.create database database_name;
C.use database_name;
D.select database();
正确答案: C
解析:
使用use database_name; 命令切换到指定数据库下★

单选题
建表语句 create table t(a int ,b varchar(50),c int),未写明特别的关键字,则创建的是( )表?
A.分布表
B.临时表
C.复制表
D.分区表;
正确答案: A
解析:
未写明特别的关键字的建表语句,则创建的是随机分布表。★

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

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

单选题
hash分布表中的被选为distributed by列字段,不能被( )操作。
A.delete
B.update
C.insert
D.以上三种
正确答案: B
解析:
hash分布表中的分布列字段,不能被update更新,语法会报错。★

单选题
建表语句create table tb(id int, name varchar(50),c int) REPLICATED; 创建的是( )表?
A.分布表
B.临时表
C.复制表
D.分区表
正确答案: C
解析:
REPLICATED表示创建的是复制表★

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

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

多选题
以下哪个操作能释放t表数据占用的物理空间( )
A.DROP TABLE t;
B.RENAME TABLE t TO a;
C.DELETE FROM t;
D.TRUNCATE TABLE t;
正确答案: AD
解析:
DROP TABLE和TRUNCATE TABLE可以释放数据占用的空间。★

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

判断题
查询视图跟查询表操作一样,使用show tables;命令可查询视图名称。
正确
错误
正确答案: 正确
解析:
使用show tables;命令可查询表名和视图名

多选题
hash索引列不支持数据类型是( ) 。
A.DECIMAL
B.TEXT
C.BLOB
D.VARCHAR
错误
正确答案: BC
解析:
hash分布列支持当前只支持整数类型、varchar、decimal数据类型

单选题
索引是在基本表的列上建立的一种数据库对象,它同基本表分开存储,使用它能够加快数据的( )速度。
A.delete
B.update
C.insert
D.select
正确答案: D
解析:
索引能够加快数据的查询SELECT速度

单选题
GBase 8a MPP Cluster支持对视图进行( )操作。
A.delete
B.update
C.insert
D.select
正确答案: D
解析:
禁止对视图进行INSERT、UPDATE 和 DELETE 操作。★

多选题
GBase 8a MPP Cluster支持的索引有( )
A.智能索引
B.聚簇索引
C.全文索引
D.hash索引
正确答案: ACD
解析:
8a不支持聚簇索引★

多选题
数据操作语句DML包含()
A.SELECT
B.INSERT
C.DELETE
D.UPDATE
正确答案: BCD
解析:
DML不包含SELECT查询语句。★

单选题
快速UPDATE模式,需要开启()参数开关
A.gbase_fast_update
B.fast_update
C._t_gbase_fast_update
D._fast_update
正确答案: A
解析:
快速UPDATE模式,需要开启gbase_fast_update参数为1或者on,开启快速更新模式。★

多选题
以下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) ;
正确答案: AD
解析:
value后要有s;插入多个值时,元组集合外不用再加一层圆括号★

判断题
GBase 8a的 DELETE操作会实际删除数据,重新创建智能索引,所以删除数据操作的性能较低。
正确
错误
正确答案: 错误
解析:
GBase 8a的 DELETE操作会打删除标记,不实际删除数据。

判断题
GBase 8a的 DELETE支持级联删除,即关联表的数据同时被删除。
正确
错误
正确答案: 错误
解析:
GBase 8a的 DELETE操作不支持级联删除,一次只能删除一个表中的数据。

单选题
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命令更新数据,然后返回结果给发起管理节点。★

多选题
哈希分布表的哈希列的约束是()
A.哈希列的值不能是空值。
B.哈希列只支持1列。
C.哈希列的值支持的数据类型是整型、DECIMAL或VARCHAR。
D.UPDATE语句不能改写哈希列的值。
正确答案: CD
解析:
v95版本的8a支持hash列可以是null值和多列hash。★

单选题
哈希分布表中被定义为distributed by的字段,不能做( )操作。
A. delete
B. update
C. insert
D. 以上三种
正确答案: B
解析:
哈希分布表中的hash列字段,不能做update操作★

多选题
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
正确答案: ABC
解析:
表名后不写明要插入的列是错误的★

单选题
笛卡尔乘积是由于()的表关联产生的。
A.左外连接
B.右外连接
C.全连接
D.没有关联条件
正确答案: D
解析:
没有关联条件的两表会产生两表条数相乘记录的联合表。★

多选题
表连接类型分为()两大类
A.内连接
B.外连接
C.左连接
D.右连接
正确答案: AB
解析:
表连接类型分为内连接和外连接。★

单选题
GBase 8a MPP Cluster执行单个hash分布表select语句,WHERE子句中只有一个hash分布列条件,语句会下发到()计算节点上
A.所有
B.指定
C.随机一个
D.和条件比较值的hash运算值相匹配的
正确答案: D
解析:
hash分布表能计算出数据具体落在哪个节点上,所以不是所有节点都查询,只下发到有该数值的节点执行即可。★

多选题
使用union或union all时,需()
A.必须保证各个select 集合的结果有相同个数的列。
B.必须保证各个select 集合相同次序上的列名相同。
C.必须保证各个select 集合对应的列类型是一样的。
D.各个select 集合相同次序上的列名可以不同。
正确答案: ACD
解析:
各个select 集合投影列相同次序上的列类型一致,个数一致,列名可以不同,以第一个select列名显示。

单选题
GBase 8a MPP Cluster执行单个复制表DQL语句,会下发到()计算节点上
A.所有
B.指定
C.随机一个
D.以上皆非
正确答案: C
解析:
每个节点都有复制表,随机选择一个节点执行即可。★

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

单选题
COUNT(*) 和COUNT(colName) 结果()
A.完全相同。
B.colName列存在NULL值时,不同。
C.总是不同。
D.由表类型(哈希分布表、随机分布表)决定。
正确答案: B
解析:
有null值时,二者查询的条数不同。COUNT(colName)只记录不含null值的条数。★

单选题
以下聚合语句中错误的是()
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后分组字段和聚合函数。★

单选题
select round(123.456,-2)的执行结果:
A.123.46
B.123.45
C.100
D.123.00
正确答案: C
解析:
round函数支持四舍五入,-2参数表示小数点前2位,为百位,看十位数为2,则直接舍去,结果为100。★

单选题
SELECT TRUNCATE(127.456, -1) 执行结果为()
A.100
B.120
C.123.5
D.123.4
正确答案: B
解析:
TRUNCATE函数为截取指定位数,-1参数表示小数点前1位,为十位,则直接舍去十位数后面的数字,结果为120。★★

判断题
系统函数在SQL语句中,经常出现的位置在SELECT投影列中, 或者WHERE子句中的查询条件中。
正确
错误
正确答案: 正确
解析:

单选题
统计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函数有两个参数,只写了一个参数。★

多选题
以下条件分支语句正确的是()
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
正确答案: BCD
解析:
语句末尾要有END★

单选题
SELECT CHAR_LENGTH(‘南大通用数据’) 执行结果是()
A.12
B.6
C.18
D.10
正确答案: B
解析:
CHAR_LENGTH()函数返回值是字符个数,则结果为6。★

多选题
字符串连接语句正确的是()
A.select ‘我已使用’ || 20 || ‘天GBase 8a’
B.select ‘我已使用’ + ‘20’ + ‘天GBase 8a’
C.select concat(‘我已使用’, 20, ‘天GBase 8a’)
D.select concat(‘我已使用’, ‘20’, ‘天GBase 8a’)
正确答案: ACD
解析:
+为数值相加,没有字符串拼接的功能。★

单选题
数据库字符集是UTF8,SELECT LENGTH(‘南大通用数据’) 执行结果是()
A.12
B.6
C.18
D.10
正确答案: C
解析:
LENGTH()函数返回值是字节个数,默认是UTF8字符集,一个汉字为3个字节存储,则结果为18★

单选题
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。★

单选题
关于NULL的叙述,()是错误的
A.NULL值表示“没有数据”,值未知,值不确定,不占空间。
B.NULL 的拼写,大小写无关。
C.SELECT count(Sage) FROM Student 统计表包括NULL值的总条数。
D.NULL 和 UNKNOWN 是等价的。
正确答案: C
解析:
count(Sage) 不统计表中该字段为NULL值的条数

单选题
求距离月底还有多少天,正确的语句是()
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()))得到的天数为负数。★

单选题
显示”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位的天

单选题
NOW和SYSDATE函数的区别是()
A.NOW有同义词,SYSDATE没有同义词。
B.NOW取的是语句开始执行的时间,SYSDATE取的是该函数执行的实时时间。
C.NOW得到当前日期和时间,SYSDATE得到当前日期。
D.NOW得到当前时间,SYSDATE得到当前日期。
正确答案: B
解析:
NOW和SYSDATE函数都能得到当前日期和时间,区别NOW取的是语句开始执行的时间,SYSDATE取的是该函数执行的实时时间。★

单选题
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()函数返回值是日期时间类型★

多选题
获取当前日期时间,可以使用()函数。
A.SYSDATE
B.NOW
C.CURDATETIME
D.CURRENT_TIMESTAMP
E.CURRENT_DATETIME
正确答案: ABCDE
解析:
全部都正确,都能获取当前日期时间。★

多选题
查询日期月份最后一天,以下语句哪些是正确的()
A.select last_day(‘2019年2月10日’)
B.select last_day(‘2019-2-10 12:10:30’)
C.select last_day(‘19-02-10’)
D.select last_day(‘190210’)
E.以上皆错
正确答案: BCD
解析:
含中文字符日期不是标准可支持的日期类型格式★

多选题
SELECT IFNULL(country,‘未知’) RESULT FROM worldcup语句中控制流函数IFNULL可以替换为()。
A.CASE WHEN THEN ELSE END
B.IF
C.NVL
D.NULLIF
正确答案: ABC
解析:
NULLIF函数是判断表达式是真还是假,与IFNULL返回值不同,所以不能替换。★

单选题
以下授权语句()是正确的
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。★

单选题
create user bizMan identified by ‘x’创建的bizMan用户可访问的客户端()
A.任意主机;
B.只能是数据库服务器本机,即localhost;
C.只能是127.0.0.1;
D.该用户在任何主机上都不能访问数据库。
正确答案: A
解析:
新建用户bizMan等同于bizMan@%,任意主机均可登录★

多选题
授予用户权限组权限,正确的语句是()
A.grant “role1” to bizMan@localhost;
B.grant role1 to bizMan@localhost;
C.grant “role1” from bizMan@localhost;
D.grant role1 from bizMan@localhost;
正确答案: AB
解析:
grant后面用to关键词,用户组加双引号,认为是数据库对象,要是单引号,则会认为是字符串★

多选题
回收用户的Role权限,正确的语句是()
A.revoke role1 to bizMan@localhost;
B.revoke *.role1 from bizMan@localhost;
C.revoke role1 from bizMan@localhost;
D.revoke “role1” from bizMan@localhost;
正确答案: CD
解析:
revoke后面用from关键词,用户组加双引号,认为是数据库对象,要是单引号,则会认为是字符串

单选题
ALL是一个特殊权限,不包含()
A.PROCESS
B.GRANT OPTION
C.EXECUTE
D.SHUTDOWN
正确答案: B
解析:
ALL权限不包含GRANT OPTION给其他用户授权权限★

判断题
GBase 8a数据库用户名称大小写不敏感()
正确
错误
正确答案: 错误
解析:
GBase 8a数据库用户名称大小写敏感

单选题
收回表插入数据权限语句以下正确的是()
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关键词,表级权限需写明具体的数据库名称★

多选题
以下授予表插入数据权限的语句正确的是()
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;
正确答案: BD
解析:
“grant insert(“ID”) on courseware.test01 from bizMan@localhost;”错误在于grant后面的关键词应该是to;“grant insert(“ID”) on *.test01 to bizMan@localhost;”的错误在于表级权限在数据库级权限下,需写明具体的数据库。★

多选题
GBase 8a的权限级别包括()
A.全局级
B.数据库级
C.表级
D.列级
E.过程级
正确答案: ABCDE
解析:
全部都正确。★

单选题
和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
解析:

单选题
获取用户组Role和用户User关系信息需要查询()系统表
A.gbase.user
B.gbase.user_check
C.gbase.role_edges
D.gbase.roleanduser
正确答案: C
解析:
gbase.role_edges表记录用户组Role和用户User关系信息★

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

多选题
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’;
D.select TABLE_SCHEMA,TABLE_NAME, TABLE_ROWS/3
from performance_schema.tables
where TABLE_SCHEMA=‘courseware’ and TABLE_NAME=‘student’;
正确答案: AC
解析:
COUNT(
)与COUNT(1)都表示总条数;performance_schema.tables保存的是所有分片的表条数,由于有一个副本,2倍数据,需要TABLE_ROWS除以2★

单选题
显示当前数据库版本,正确的语句是()
A.select version;
B.select versions();
C.select version();
D.show version;
正确答案: C
解析:
version()函数返回数据库版本信息

单选题
查看正在运行的线程,与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表查询的内容一致★

单选题
中止连接当前执行的语句,但是不中止该连接本身,正确的语句是()
A.kill query 3789
B.kill 3789
C.pause 3789
D.CONTINUE 3789
正确答案: A
解析:
需加QUERY参数,中止连接当前执行的语句,但是不中止该连接本身。★