2022软件水平考试-中级数据库系统工程师考前拔高名师测验卷25(附答案解析)

上传人:hs****ma 文档编号:470518972 上传时间:2023-02-03 格式:DOCX 页数:15 大小:19.45KB
返回 下载 相关 举报
2022软件水平考试-中级数据库系统工程师考前拔高名师测验卷25(附答案解析)_第1页
第1页 / 共15页
2022软件水平考试-中级数据库系统工程师考前拔高名师测验卷25(附答案解析)_第2页
第2页 / 共15页
2022软件水平考试-中级数据库系统工程师考前拔高名师测验卷25(附答案解析)_第3页
第3页 / 共15页
2022软件水平考试-中级数据库系统工程师考前拔高名师测验卷25(附答案解析)_第4页
第4页 / 共15页
2022软件水平考试-中级数据库系统工程师考前拔高名师测验卷25(附答案解析)_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《2022软件水平考试-中级数据库系统工程师考前拔高名师测验卷25(附答案解析)》由会员分享,可在线阅读,更多相关《2022软件水平考试-中级数据库系统工程师考前拔高名师测验卷25(附答案解析)(15页珍藏版)》请在金锄头文库上搜索。

1、2022软件水平考试-中级数据库系统工程师考前拔高名师测验卷(附答案解析)1. 问答题:某单位公用车辆后勤服务部门数据库的部分关系模式如下:驾驶员:EMP(Eno,Ename, Age, Sex, telephone),各属性分别表示驾驶员工号、姓名、年龄、性别和电话号码;车辆:CAR(Cno,Brand,Capacity),各属性分别表示汽车车牌号、品牌名和排量;调度:SCHEDULE(Sno,Eno,Cno,StartTime, Endtime),各属性分别表示调度号、驾驶员工号、汽车车牌号、发车时间和收车时间。奖金:BONUS(Eno,Year,Month,Amount),各属性分别表示

2、驾驶员工号、年、月和当月的奖金数量。有关车辆调度的相关说明如下:公车的行驶时间只能在工作时间内,因此规定调度表中每天安排发车的时间在上午07:00:00至下午18:00:00范围内。(【问题1】(4分)请将下面创建调度关系的SQL语句的空缺部分补充完整,要求指定关系的主码、外码,以及调度表中每天安排发车的时间在上午07:00:00至下午18:00:00范围内的约束(由函数Time Get_time(DATETIME StartTime)返回出车的时间)。CREATE TABLE SCHEDULE(Sno CHAR(10),Eno CHAR(10) (a) ,Cno CHAR(8) (b) ,S

3、tartTime DATETIME (c) ,EndTime DATETIME,PRIMARY KEY (d) );【问题2】(6分)(1)创建所有奥迪品牌汽车的调度信息的视图AudiSCHEDULE,属性有Eno、Ename、Cno、Brand、StartTime和EndTime,请将下面SQL语句的空缺部分补充完整。CREATE (e)ASSELECT EMP,Eno,Ename, CAR,Cno,Brand, StartTime, EndTimeFROM EMP,CAR, SCHEDULEWHERE (f)(2)驾驶员的奖金在收车时间写入时,由出车时间段自动计算,并用触发器来实现奖金的自

4、动维护,函数float Bonus_value(DATETIME StartTime, DATETIME EndTime)依据发车时间和收车时间来计算本次出车的奖金。系统在每月初自动增加一条该员工的当月奖金记录,初始金额为零。请将下面SQL语句的空缺部分补充完整。CREATE (g) Bonus_TRG AFTER (h) ON SCHEDULEREFERENCING new row AS nrowFOR EACH ROWBEGINUPDATE BONUSSET (i)WHERE (j) AND Year=Get_Year(nrow.StartTime)AND Month= Get_Month

5、(nrow.StartTime) ;END【问题3】(5分)请将下面SQL语句的空缺郜分补充完整。(1)查询调度次数最多的汽车车牌号及其品牌。SELECT CARCno,BrandFROM CAR, SCHEDULEWHERE CAR.Cno =SCHEDULE.CnoGROUP BY (k)HAVING (l) (SELECT COUNT(*)FROM SCHEDULECROUP BY Cno);(2)查询所有在调度表中没有安排过“大金龙”品牌车辆的驾驶员工号和姓名。SELECT Eno,EnameFROM EMPWHERE Eno (m) (SELECT EnoFROM (n)WHERE

6、(o)AND brand= 大金龙);答案: 本题解析:本题考查SQL语句的基本语法与结构知识。此类题目要求考生掌握SQL语句的剧本语法和结构,认真阅读题目给出的关系模式,针对题目的要求具体分析并解答,本试题已经给出了4个关系模式,需要分析每个实体的属性特征及实体之间的联系,补充完整SQL语句。【问题1】由题目说明可知Sno属性是SCHEDULE关系表的主键,所以在PRIMARY KEY后天的应该是Sno;Eno和Cno分别作为外键引用到EMP和CAR关系表的主键,因此需要用REFERENCES对这两个属性进行外键约束;由“每天安排发车的时间在上午07:00:00至下午18:00:00范围类”

7、的约束,可知需要限制StartTime属性组的取值范围,通过CHECK约束来竖线。从上分析可见,完整的SQL语句如下:CREATE TABLE SCHEDULE(Sno CHAR(10),Eno CHAR (10) REFERENCES EMP(Eno),Cno CHAR (8) REFERENCES CAR(Cno),StartTime DATETIME CHECK( Get time(StartTime) BETWEEN 07:00:00AND 18:00:00),EndTime DATETIME,PRIMARY KEY Sno);【问题2】(1)创建视图需要通过CREATE VIEW语句

8、来实现,由题目可知视图的属性有(Eno,Enanme,Cno,Brand,StartTimen,EndTime);通过公共属性Eno和Cno对使用的三个基本表进行连接;由于只创建奥迪汽车的视图,所以还要在WHERE后加入Brand=奥迪的约束条件。从上分析可见,完整的SQL语句如下:CREATE VIEW AudisCHEDULE (Eno,Enanme,Cno,Brand,StartTimen,EndTime)ASSELECT EMP.Eno,Ename,CAR.Cno,Brand,StartTime,EndTimeFROM EMO,CAR,SCHEDULEWHERE EMP.Eno=SCH

9、EDULE.Eno AND CAR.Cho=SCHEDULE.Cno AND Brand=奥迪;(2)创建触发器通过CREATR TRIGGER语句实现,要求考生掌握触发器的基本语法结构。按照问题要求,在SCHEDULE关系中更新调度信息时触发器应自动执行,故需要创建基于UPDATE类型的触发器;最后添加表连接条件。完整的触发器实现的方案如下:CREATE TRIGGER Bonus_TGR AFTER UODATE ON SCHEDULEREFERENCING new row AS nrowFOR EACH ROWBEGINUPDATE BONUSSET Amount=Amount+Bonu

10、s_Value(nrow.StartTime,nrow.EndTime)WHERE BOUNS.Eno=nrow. Eno AND Year =Get_Year(nrow.StartTime)AND Month=Get_Mouth(nrow.StartTime);End【问题3】分析SQL查询通过SELECT语句实现。根据问题要求,可通过子查询实现“调度次数最多的汽车车牌号及其品牌”的查询;对COUNT函数计算的结果应通过HAVING条件语句进行约束;通过Cno和Brand的组合进行分组查询。完整的SQL语句如下:SELECT CAR.Cno, BrandFROM CAR,SCHEDULEWH

11、ERE CAR.Cno=SCHEDULE.CnoGROUP BY CAR.Cno,BrandHAVING COUNT(*)ALL(SELECT COUNT(*)FROM SCHEDULEGROUP BY Cno);(2)根据问题要求,需要使用嵌套查询。先将WORKS和COMPANY表进行连接。查找出所有在“安排过 大金龙品牌车辆的驾驶员”;然后在雇员表中使用“NOT IN”或者“ANY”查询不在前述结果里面的员工即可。完整的SQL语句如下:SELECT Eno,EnameFROM EMPWHERE Eno NOT IN或ANY(SELECT EnoFROM SCHEDULE, CARWHERE

12、 SCHEDULE.Cno=CAR.Cno AND Brand=大金龙);2. 判断题:某高校五个系的学生信息存放在同个基本表中,采取_( )_的措施可使各系的管理员只能读取本系学生的信息。A.建立各系的列级视图,并将对该视图的读权限赋予该系的管理员B.建立各系的行级视图,并将对该视图的读权限赋予该系的管理员C.将学生信息表的部分列的读权限赋予各系的管理员D.将修改学生信息表的权限赋予各系的管理员答案:B 本题解析:暂无解析3. 问答题:某学生信息管理系统的部分数据库关系模式如下:学生:Student ( stuno, stuname, stuage, stusex, schno),各属性分别

13、表示学生的学号、姓名、年龄、性 别,以及学生所属学院的编号;- stuno 主键学院:School ( schno, schname, schstunum ),各属性分别表示学院的编号、名称及学生人数;- schno 主键俱乐部:Club (clubno,clubname, clubyear, clubloc ),各属性分别表示俱乐部的编号、名称、成立年 份和活动地点; - clubno 主键参加:JoinClub ( stuno, clubno. joinyear ),各属性分别表示学号、俱乐部编号,以及学生加入俱乐部 的年份。 - stuno, clubno 主键有关关系模式的说明如下:(

14、1)学生的性别取值为F和M (F表示女性,M表示男性)。(2)删除一个学院的记录时,通过外键约束级联删除该学院的所有学生记录。(3)学院表中的学生人数值与学生表中的实际人数要完全保持一致。也就是说,当学生表中增减记录时,就要自动修改相应学院的人数。根据以上描述,回答下列问题,将SQL语句的空缺部分补充完整。【问题1】(4分)请将下面创建学生表的SQL语句补充完整,要求定义实体完整性约束、参照完整性 约束,以及其他完整性约束。CREATE TABLE Student (stuno CHAR(ll) ( a ),stuname VARCHAR,stuage SMALLINT,stusex CHAR(l) ( b),schno CHAR(3) ( c) ON DELETE ( d));【问题2】(5分)创建倶乐部人数视图,能统计每个倶乐部已加入学生的人数,属性有clubno clubname 和clubstunum。对于暂时没有学生参加的俱乐部,其人数为0。此视图的创建语句如下, 请补全。CREATE VIEW CS_NUMBER ( clubno, clubname, clubstunum ) ASSELECT JoinClub.clubno, ( e ) ,( f )FROM JoinClub, Club

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 习题/试题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号