Exam description
Environmental description:
Database version: DB2V9.7
Database name: TRAMSV3
Database host IP: 192.168.32.8
Database port: 50000
Database username: nc001
Database password: aaaaaa
Except for data sheets related to examinations, other data sheets in the database are prohibited
Answer format:
SQL statement: After debugging, copy to this test
如:SELECT * FROM MONITORBUSSINESSSYSTEM1
Output: Screen shot, copied to this test
Data dictionary description
Business system table, MONITORBUSSINESSSYSTEM1
Field name |
Field description |
Types of |
Primary key |
Nullable |
Explanation |
ID |
Numbering |
VARCHAR(30) |
AND |
N |
Primary key |
NAMES |
name |
VARCHAR(100) |
|
|
|
ORDERS |
order |
INTEGER |
|
|
|
NOTE |
Explanation |
VARCHAR(200) |
|
|
|
Monitor host table, MONITORINSTANCE1
Field name |
Field description |
Types of |
Primary key |
Nullable |
Explanation |
ID |
Numbering |
VARCHAR(30) |
AND |
N |
Primary key |
NAMES |
name |
VARCHAR(100) |
|
N |
|
IP |
IP address |
VARCHAR(15) |
|
N |
|
ORDERS |
order |
INTEGER |
|
N |
|
BUSSINESSSYSTEMID |
Business system number |
VARCHAR(30) |
|
|
|
INSTANCE TYPEID |
Host type number |
VARCHAR(30) |
|
|
|
Host type table: INSTANCETYPE
Field name |
Field description |
Types of |
Primary key |
Nullable |
Explanation |
ID |
Host type number |
VARCHAR(30) |
AND |
N |
Primary key |
NAMES |
Host type name |
VARCHAR(100) |
|
|
|
Monitoring item table: MONITORITEM1
Field name |
Field description |
Types of |
Primary key |
Nullable |
Explanation |
ID |
Item number |
VARCHAR(30) |
AND |
N |
Primary key |
INSTANCEID |
Monitoring host number |
VARCHAR(30) |
|
|
|
NAMES |
Item name |
VARCHAR(100) |
|
N |
|
ORDERS |
order |
INTEGER |
|
N |
|
NOTE |
Explanation |
VARCHAR(200) |
|
|
|
Monitoring item log daily alarm statistics table: LOGSTATUS_DAY1
Field name |
Field description |
Types of |
Primary key |
Nullable |
Explanation |
DATES |
date |
VARCHAR(10) |
AND |
N |
Primary key |
MONITORITEMID |
Item number |
VARCHAR(30) |
AND |
N |
Primary key |
STATUS |
Alarm status |
VARCHAR(1) |
AND |
N |
Primary key |
ON ONE |
Number of alarms |
INTEGER |
|
|
|
Monitoring item log alarm schedule: LOGSTATUSALARMHISTORY
Field name |
Field description |
Types of |
Primary key |
Nullable |
Explanation |
ID |
Numbering |
VARCHAR(30) |
AND |
N |
Primary key |
MONITORITEMID |
Item number |
VARCHAR(30) |
|
|
|
STATUS |
Alarm status |
CHAR(1) |
|
|
|
LOAD STATUS |
Last status |
CHAR(1) |
|
|
|
DATES |
Alarm date |
VARCHAR(10) |
|
|
|
TIMES |
Alarm time |
VARCHAR(8) |
|
|
|
ALARM CONTENT |
Alarm content |
VARCHAR(600) |
|
|
|
Description:
Business system table , defining the business system, a business system contains multiple monitoring hosts
监控主机表,定义监控主机,BUSSINESSSYSTEMID字段定义归属与哪个业务系统,INSTANCETYPEID定义归属与哪个主机类型,一个监控主机包含多个监控项
监控项表, 定义监控项,INSTANCEID字段定义归属与哪个监控主机。
主机类型表,定义主机类型参数字典。
监控项日志每日报警统计表,存储每个监控项每日对应的各种状态统计数量。
监控项日志报警明细表,存储每个监控项的每日报警明细信息。
报警字段STATUS内容含义:
2 |
预警 |
3 |
报警 |
4 |
数据获取异常 |
5 |
网络中断 |
考试题目
答案附题目后即可。
1.新建数据表,表名以个人姓名首字母(如周广刚(ZGG))命名,字段如下:
字段名 |
字段描述 |
类型 |
主键 |
可空 |
说明 |
ID |
编号 |
VARCHAR(30) |
Y |
N |
主键 |
MONITORITEMID |
监控项编号 |
VARCHAR(30) |
|
|
|
STATUS |
报警状态 |
CHAR(1) |
|
|
|
DATES |
报警日期 |
VARCHAR(10) |
|
|
|
TIMES |
报警时间 |
VARCHAR(5) |
|
|
|
将上述表字段TIMES数据类型修改为VARCHAR(8)
将LOGSTATUSALARMHISTORY中日期为2019年7月的数据的对应字段插入到该数据表中,写出建表语句、字段修改语句、数据插入语句。
建表语句:
CREATE TABLE ZRZ (
ID VARCHAR(30) NOT NULL PRIMARY KEY,
MONITORITEMID VARCHAR(30) ,
STATUS VARCHAR(1) ,
DATES VARCHAR(10) ,
TIMES VARCHAR(5)
)
字段修改语句
ALTER TABLE ZRZ ALTER TIMES SET DATA TYPE VARCHAR(8)
数据插入语句
INSERT INTO ZRZ(ID,MONITORITEMID,STATUS,DATES,TIMES)
SELECT ID,MONITORITEMID,STATUS,DATES,TIMES
FROM LOGSTATUSALARMHISTORY
WHERE YEAR(DATE(DATES))=2018 AND MONTH(DATE(DATES))=7
筛选条件或者是 WHERE SUBSTR(DATES,1,7)='2018-07'
WHERE SUBSTR(DATES,1,7)='2018-07'
2.查询主机IP为“192.168.32.25”,日期为2019-07-01,明细报警信息,按照日期时间倒序排列,写出查询语句即可。
SELECT A.ID,A.MONITORITEMID,A.STATUS,A.LASTSTATUS,A.DATES,A.TIMES,A.ALARMCONTENT
FROM LOGSTATUSALARMHISTORY A
JOIN MONITORITEM1 B ON A.MONITORITEMID=B.ID
JOIN MONITORINSTANCE1 C N B.INSTANCEID=C.ID
WHERE A.DATES='2019-07-01' AND C.IP='192.168.32.25'
ORDER BY A.TIMES DESC
3.查询属于业务系统“网银web2”,日期为2019-07-01,报警状态为3的明细信息,写出查询语句即可。
SELECT A.ID,A.MONITORITEMID,A.STATUS,A.LASTSTATUS,A.DATES,A.TIMES,A.ALARMCONTENT
FROM LOGSTATUSALARMHISTORY A
JOIN MONITORITEM1 B ON A.MONITORITEMID=B.ID
JOIN MONITORINSTANCE1 C ON B.INSTANCEID=C.ID
JOIN MONITORBUSSINESSSYSTEM1 D ON C.BUSSINESSSYSTEMID=D.ID
WHERE A.DATES='2019-07-01' AND A.STATUS='3' AND D.NAMES='网银web2'
4.查询所有主机的2019-07-02的报警统计信息,按报警状态(升序),报警数量(降序)排列,显示字段:主机名称,报警状态,报警数量
写出查询语句,截图查询结果
SELECT C.NAMES AS 主机名称,COALESCE(A.STATUS,0) AS 报警状态,COALESCE(SUM(A.NUM),0) AS 报警数量
FROM MONITORINSTANCE1 C
LEFT JOIN MONITORITEM1 B ON C.ID=B.INSTANCEID
LEFT JOIN LOGSTATUS_DAY1 A ON A.MONITORITEMID=B.ID
WHERE A.DATES='2019-07-02'
GROUP BY C.NAMES,A.STATUS,A.NUM
ORDER BY A.STATUS ASC,A.NUM DESC
5.查询各业务系统2018年每月所有报警数量排名(月份升序、报警数量倒序)
显示字段:业务系统名称、月份、报警数量
写出查询语句,截图查询结果。
SELECT D.NAMES,MONTH(A.DATES) AS MONTHS,SUM(A.NUM) AS SUMNUM
FROM LOGSTATUS_DAY1 A
JOIN MONITORITEM1 B ON A.MONITORITEMID=B.ID
JOIN MONITORINSTANCE1 C ON B.INSTANCEID=C.ID
JOIN MONITORBUSSINESSSYSTEM1 D ON C.BUSSINESSSYSTEMID=D.ID
WHERE YEAR(A.DATES)=2018
GROUP BY D.NAMES, MONTH(A.DATES)
ORDER BY MONTHS ASC, SUMNUM DESC
6.查询主机类型为WIN的报警数量统计,显示字段:
主机名称、预警数量、报警数量、数据获取异常数量、网络中断数量
写出查询语句,截图查询结果。
SELECT C.NAMES AS 主机名称,
SUM(CASE A.STATUS WHEN '2' THEN A.NUM ELSE 0 END) AS 预警数量,
SUM(CASE A.STATUS WHEN '3' THEN A.NUM ELSE 0 END) AS 报警数量,
SUM(CASE A.STATUS WHEN '4' THEN A.NUM ELSE 0 END) AS 数据获取异常数量,
SUM(CASE A.STATUS WHEN '5' THEN A.NUM ELSE 0 END) AS 网络中断数量
FROM LOGSTATUS_DAY1 A
LEFT JOIN MONITORITEM1 B ON A.MONITORITEMID=B.ID
LEFT JOIN MONITORINSTANCE1 C ON B.INSTANCEID=C.ID
WHERE C.INSTANCETYPEID='WIN'
GROUP BY C.NAMES
7.统计2019年7月,各个主机类型的所有报警数量,如果没有则显示数量为0,写出查询语句,截图查询结果。
SELECT D.NAMES, COALESCE(SUNNUM,0) AS SUMNUM
FROM INSTANCETYPE D
LEFT JOIN (
SELECT C.INSTANCETYPEID, SUM(A.NUM) AS SUNNUM
FROM LOGSTATUS_DAY1 A
JOIN MONITORITEM1 B ON A.MONITORITEMID=B.ID
JOIN MONITORINSTANCE1 C ON B.INSTANCEID=C.ID
WHERE SUBSTR(A.DATES,1,7)='2018-07'
GROUP BY C.INSTANCETYPEID
)E ON D.ID=E.INSTANCETYPEID
8.统计所有报警数量最多的主机前10名,写出查询语句,截图查询结果。
SELECT C.NAMES AS 主机名, SUM(A.NUM) AS 报警数量
FROM LOGSTATUS_DAY1 A
JOIN MONITORITEM1 B ON A.MONITORITEMID=B.ID
JOIN MONITORINSTANCE1 C ON B.INSTANCEID=C.ID
GROUP BY C.NAMESORDER BY 报警数量 DESC
FETCH FIRST 10 ROWS ONLY
9.按日期统计所有主机类型为LINUX的报警数量,按照报警数量倒序排名,显示字段:日期,数量,写出查询语句,截图查询结果。
SELECT A.DATES AS 日期, SUM(A.NUM) AS 数量
FROM LOGSTATUS_DAY1 A
LEFT JOIN MONITORITEM1 B ON A.MONITORITEMID=B.ID
LEFT JOIN MONITORINSTANCE1 C ON B.INSTANCEID=C.ID
WHERE C.INSTANCETYPEID='LINUX'
GROUP BY A.DATES
ORDER BY 数量 DESC
10.导出报警明细表中2019年7月所有数据,明细数据不包含ID字段,写出导出语句即可。
DB2 EXPORT TO LOGSTATUSALARMHISTORY.txt OF DEL
SELECT MONITORITEMID,STATUS,LASTSTATUS,DATES,TIMES,ALARMCONTENT
FROM LOGSTATUSALARMHISTORY
WHERE SUBSTR(DATES,1,7)=’2019-07’