问答题
阅读以下说明和关系表,回答问题1-3。
[关系表]
{{B}}院系{{/B}}
{{U}}院系代号{{/U}}
院和名称
主教学楼
1101
计算机系
2号楼
1102
电子系
3号楼
1103
机械工程系
4号楼

                        {{B}}学生{{/B}}
020103
李敏
02级
1101
87.0
020156
陈鑫
02级
1001
83.5
031142
杨睿
03级
1101
78.5
031326
艾玲玲
03级
1102
80.0
040633
胡栋
04级
1102
90.0
030915
荣立伟
03级
1103
73.5
040047
姜鲁
04级
1103
81.5
问答题
[问题1]
试问以下行是否可以插入表“学生”中,并说明理由。
(1)
030204
李欣兰
03级
1106
77.5
(2)
吴磊
04级
1103
81.0
(3)
051101
侯超
05级
1102
NULL
【正确答案】
【答案解析】第(1)行行不能插入,因为在表“院系”中不存在代号为1106的院系; 第(2)行不能插入,因为违反了键完整性,其学号键为空; 第(3)行可以插入,平均成绩可以为NULL值,表示现在尚未有成绩。 [考点分析] 数据库的定义、操作和控制,
问答题
[问题2]
若想再多建一个名为“导师”的表,其属性有“教师号”“姓名”“性别”“所在院系”“学生”“职称”。其中“教师号”与“姓名”属性不能为空,并将“教师号”设为主码,将“所在院系”设为表“院系”中属性“院系代号”的一个外键。规定各属性的数据类型如下:“教师号”:smallint;“姓名”:char(10);“性别”:char(2);“所在院系”:int;“学生”:char (10);
“职称”:char(8)。
用SQL语言创建该表,并插入以下信息(以第(1)条为例即可)。
(1)
33
张辉
1101
陈金
教授
(2)
34
王新梅
1101
李敏
教授
(3)
35
陆善羽
1102
胡栋
副教授
(4)
36
何大为
1103
江鲁
教授
【正确答案】
【答案解析】创建“导师”表: create table 导师 (教师号 small int not NULL, 姓名 char(10) not NULL, 性别 char(2), 院系代号 int, 学生 char(10), 职称 char(8), primary key (教师号), foreign key (院系代号)reference 院系 ) 插入第(1)条信息: insert into 导师values(33‘张辉’‘男’,1101,陈鑫,‘教授’)
问答题
[问题3]
(1)用关系代数表达式完成以下操作:
检索“平均成绩”低于80的学生的“学号”“姓名”“院系名称”;
检索“学生”陈鑫导师的“教师号”。
(2)用SQL语言完成以下操作:
列出“平均成绩”最高的学生信息;
将03级的所有学生按“学号”升序进行排序。
【正确答案】
【答案解析】(1)第一题:∏学号,姓名,院系名称(σ平均成绩<80(院系学生))
第二题:可建立一个临时关系R