2020年春西南大学《房屋建筑学》1066大作业答案
~(35)题使用如下三个表: 学生.DBF:学号C(8),姓名C(12),性别C(2),出生日期D,院系C(8) 课程.DBF:课程编号C(4),课程名称C(10),开课院系C(8) 学生成绩.DBF:学号C(8),课程编号C(4),成绩I(32)查询每门课程的最高分,要求得到的信息包括课程名称和分数。正确的命令是A)SELECT课程名称,SUM(成绩)AS分数FROM课程,学生成绩; WHERE课程.课程编号=学生成绩.课程编号; GROUP BY课程名称B)SELECT课程名称,MAX(成绩)分数FROM课程,学生成绩;WHERE课程.课程编号=学生成绩.课程编号; GROUP BY课程名称C)SELECT课程名称,SUM(成绩)分数FROM课程,学生成绩; WHERE课程.课程编号二学生成绩.课程编号; GROUP BY课程.课程编号D)SELECT课程名称,MAX(成绩)AS分数FROM课程,学生成绩; WHERE课程.课程编号=学生成绩.课程编号; GROUP BY课程编号
本题考查使用MAX()函数构造SQL查询。使用SQL查询课程的最高分,可以用MAX()函数来实现。由于查询的是每门课程的最高分,所以需要按照课程名称进行分组,故选项B正确。选项A的错误在于查询结果由SUM(成绩)构成,是对分组后的成绩进行了求和,选项C也是同样的错误,选项D错误在于AS子句后只有一个字段名,而查询结果字段有两个,无法匹配,也是错误的。
统计只有2名以下(含2名)学生选修的课程情况,统计结果中的信息包括课程名称、开课院系和选修人数,并按选课人数排序。正确的命令是A)SELECT课程名称,开课院系,COUNT(课程编号)AS选修人数; FROM学生成绩,课程WHERE课程.课程编号=学生成绩.课程编号; GROUP BY学生成绩.课程编号HAVING COUNT(*)<=2; ORDER BY COUNT(课程编号)B)SELECT课程名称,开课院系,COUNT(学号)选修人数; FROM学生成绩,课程WHERE课程.课程编号=学生成绩.课程编号; GROUP BY学生成绩.学号HAVING COUNT(*)<=2; ORDER BY COUNT(学号)C)SELECT课程名称,开课院系,COUNT(学号)AS选修人数; FROM学生成绩,课程WHERE课程.课程编号=学生成绩.课程编号; GROUPBY课程名称HAVING COUNT(学号)<=2; ORDER BY选修人数D)SELECT课程名称,开课院系,COUNT(学号)AS选修人数; FROM学生成绩,课程HAVING COUNT(课程编号)<=2; GROUP BY课程名称 ORDER BY选修人数
本题考查SQL语句中使用统计函数的掌握。统计人数可以使用COUNT()函数。在本题中由于学号是惟一的,因而统计人数就可以通过统计学生学号的个数来实现,四个选项中可以排除A、B两个选项,这两个语句都缺少按选修人数进行排序的子句,选项D的错误在于没有设定查询条件,故选项C正确。
到(35)题使用如下数据表。
学生”表:学号C(8),姓名C(8),性别C(2),系名(10),出生日期D
“课程”表:课程编号C(4),课程名称C(12),开课系名C(10)
“成绩”表:学号C(8),课程编号C(4),成绩I
检索每门课程的总分,查询结果中包括课程名和总分,正确的语句是( )。
A.SELECT课程名称,COUNT(成绩)AS总分FROM课程,成绩; WHERE课程.课程编号=成绩.课程编号; ORDER BY成绩.课程编号
B.SELECT课程名称,COUNT(成绩)AS总分FROM课程,成绩; WHERE课程.课程编号=成绩.课程编号; GROUP BY成绩.课程编号
C.SELECT课程名称,SUM(成绩)AS总分FROM课程,成绩; WHERE课程.课程编号=成绩.课程编号; ORDERBY成绩.课程编号
D.SELECT课程名称,SUM(成绩)AS总分FROM课程,成绩; WHERE课程.课程编号=成绩.课程编号; GROUP BY成绩.课程编号
解析:进行SQL简单计算查询时,还可以加上GROUP BY子句进行分组计算查询。
通常来说,一个计算函数的范围是满足WHERE子句指定条件的所有记录。当加上GROUP BY子句后,系统会将查询结果按指定列分成集合组。当一个计算函数和一个GROUP BY子句一起使用时,计算函数的范围变为每组所有的记录。
本题通过“GROUP BY成绩.课程编号”可以先将记录按“课程编号”分组,然后再通过函数“SUM(成绩)AS总分”对每组记录求和。其中,通过AS短语可以对进行计算的字段指定一个新的字段名。另外,COUNT()函数
利用SQL派生一个包含“课程名称”、“姓名”和“成绩”的视图,要求按“课程名称”升序排序,正确的语句是( )。
A.CREATE VIEW view1 AS; (SELECT课程.课程名称,学生.姓名,成绩.成绩; FROM课程INNER JOIN成绩; INNER JOIN学生: ON成绩.学号=学生.学号; ON课程.课程编号=成绩.课程编号; GROUP BY课程名称)
B.CREATE VIEW view1 AS; (SELECT课程.课程名称,学生.姓名,成绩.成绩; FROM课程INNER JOIN成绩; INNER JOIN学生: ON成绩.学号=学生.学号; ON课程.课程编号=成绩.课程编号; ORDER BY课程名称)
C.CREATE VIEW view1 AS; SELECT课程.课程名称,学生.姓名,成绩.成绩; FROM课程INNER JOIN成绩; INNER JOIN学生: ON成绩.学号=学生.学号; ON课程.课程编号=成绩.课程编号; GROUP BY课程名称
D.CREATE VIEW view1 AS; SELECT课程.课程名称,学生.姓名,成绩.成绩; FROM课程INNER JOIN成绩; INNER JOIN学生; ON成绩.学号=学生.学号; ON课程.课程编号=成绩.课程编号; ORDER BY课程名称
解析:利用SQL命令可以定义直接建立视图,命令格式如下:
CREATE VIEW视图名AS;
SELECT语句
注意:在定义视图时,SELECT语句部分不需要用括号括起来,用来排序的SQL短语是ORDER BY,而GROUP BY短语的功能是对记录进行分组。
编写程序“cx.prg”,用SQL语句查询“school”数据库中参加了课程编号为“0002”的学生的“学号”“姓名”“课程编号”和“成绩”。 (2)在"schoo1,,数据库中统计每门课程考试的平均成绩,并将结果(课程编号、课程名称、平均成绩)放在表“result”中。
【考点指引】本大题主要考查了SQL语句的查询和统计命令,这里要用到分组命令,注意用INTO TABLE将结果保存到表中。
(1)【操作步骤】
①在命令窗口中输入命令:MODI COMM cx(回车执行),打开程序文件“CX.prg”编辑窗口,在程序文件编辑窗口中输入以下代码:
SELECT student.学号,姓名,course.课程编号,成绩FROM score,course,student WHERE score.课程编号=course.课程编号AND score.学号=student.学号AND course.课程编号=”0002” 关闭程序文件编辑窗口并保存程序文件。
②在命令窗口中输入命令:DO cx(回车执.吁亍),执行程序文件。
(2)【操作步骤】
①在命令窗口中输入命令:
SELECT course.课程编号,课程名称,AVG(成绩)AS平均成绩INTO TABLE resuIt FROM score. course WHERE score.课程编号=course.课程编号GROUP BY course.课程编号,课程名称
②在命令窗13中输入命令:DO cx(回车执行),执行程序文件,结果将自动保存到表"resuIt"中。
摘要:C:汽车厂D:玩具厂10.冷加工车间是指(A)。A:常温下B:零度以下C:零下5度D:零下10度西南大学培训与继续教育学院课程考试试题卷学期:2020年春季课程名称【编号】:房屋建筑学【1066】考试类别:大作业A卷二、名词解释(共5小题,每题4分,共计20分)1.大量性建筑满分:100分答:大量性建筑:指量大面广,与人们生活密切相关的建筑。如住宅、学校等2.高层建筑答:超过10层以上的民用建筑一、单项选择题(共10小题,每题3分,共计30分)3.基础1.建筑技术条件是指(B)。A.建筑结构技术、建筑材料技术、建筑构造技术B.建筑结构技术、建筑材料技术、建筑施工技术C.建筑结构技术、建筑环保技术、建筑构造技术D.建筑结构技术、建筑构造技术、建筑施工技术2.在砖墙墙体设计中,为简化施工,避免砍砖,凡墙段长度在1500mm以内时,应尽量符合砖模即(C)。A.115mmB.120mmC.125mmD.240mm3.钢筋混凝土过梁两端支承在墙上的长度不少于(D)mm。A.20B.60C.120D.2404、施工规范规定的砖墙竖向灰缝宽度为(D)A.6-8mmB.7-9mmC.10-12mmD.8-12mm5、基础埋深的最小深度为(B)A.0.3mB.0.5mC.0.6mD.0.8m6.下列哪种砂浆既有较高的强度又有较好的和易性(C)。A.水泥砂浆B.石灰砂浆C.混合砂浆D.粘土砂浆7.下列哪种做法属于抹灰类饰面(C)。A、陶瓷锦砖面B、塑料壁纸面C、水磨石面D、大理石面8.关于楼梯的构造说法正确的是(B)。A.单跑楼梯梯段的踏步数一般不超过15级B.踏步宽度不应
使用如下的3个数据表:学生、课程和成绩。
学生(学号 C(8),姓名 C(8),性别 C(2),班级 C(8))
课程(课程编号 C(8),课程名称 C(20))
成绩(学号 C(8),课程编号 C(8),成绩 N(5,1))
查询每门课程的最高分,要求得到的信息包括课程名和最高分,正确的命令是
A.SELECT 课程.课程名称, MAX(成绩) AS 最高分 FROM 成绩,课程; WHERE 成绩.课程编号 = 课程.课程编号; GROUP BY 课程.课程编号
B.SELECT 课程.课程名称, MAX(成绩) AS 最高分 FROM 成绩,课程; WHERE 成绩.课程编号 = 课程.课程编号; GROUP BY 课程编号
C.SELECT 课程.课程名称, MIN(成绩) AS 最高分 FROM 成绩,课程; WHERE 成绩.课程编号 = 课程.课程编号; GROUP BY 课程.课程编号
D.SELECT 课程.课程名称, MIN(成绩) AS 最高分 FROM 成绩,课程; WHERE 成绩.课程编号 = 课程.课程编号; GROUP BY 课程编号
解析:求最大值要利用MAX函数。要查询每门中的最高分,需要对课程进行分组。由于课程名称可能出现重名,因此分组依据为课程编号,且注意记录的惟一性,利用AS短语。可将"成绩"字段名重新命名为"最高分"作为新的字段名,用于显示查询结果。选项B)的分组条件中,没有指定从哪个表中进行记录分组,因此系统报错。选项C)和选项D)的计算函数使用错误。
检索每门课程的最高分,要求得到的信息包括课程名称、姓名和最高分,正确的SQL语句是( )。
A.SELECT 课程.课程名称,学生.姓名,MAX(成绩) AS 最高分; FROM 成绩,课程,学生; WHERE 成绩.课程编号=课程.课程编号; AND 成绩.学号=学生.学号; GROUP BY 课程编号
B.SELECT 课程.课程名称,学生.姓名,MAX(成绩) AS 最高分; FROM 成绩,课程,学生; WHERE 成绩.课程编号=课程.课程编号; AND 成绩.学号=学生.学号; GROUP BY 课程.课程编号
C.SELECT 课程.课程名称,学生.姓名,MAX(成绩) AS 最高分; FROM 成绩,课程,学生; WHERE 成绩.课程编号=课程.课程编号; AND 成绩.学号=学生.学号; ORDER BY 课程.课程编号
D.SELECT 课程.课程名称=学生.姓名,MAX(成绩) AS 最高分; FROM 成绩,课程,学生; WHERE 成绩.课程编号=课程.课程编号; AND 成绩.学号=学生.学号; ORDER BY 课程.课程编号
解析:本题中首先通过GROUPBY短语将“课程”表中的记录按“课程编号”分组,然后通过MAX()函数求出每组中的最高成绩,即每门课程的最高成绩。由于查询输出结果涉及到多个表的字段,因此要使用连接查询,表之间的连接条件放在WHERE短语中,AND用来连接两个连接条件,以保证在查询的3个表之间建立联系。
A、零下3℃
B、常温下自然
C、零度左右
D、零下4℃
在缴费选课后,需进入工作室的哪个栏目进行学习
A.点击“课程学习”中对应的“课程名称”或其后面的“开始学习”
B.点击“选课管理”中的“课程名称”
C.点击“成绩管理”中的“课程名称”
D.点击“考试信息”中的“课程名称”
查询每门课程的最高分,要求得到的信息包括课程名称和分数。正确的命令是( )。
A.SELECT 课程名称,SUM (成绩)AS 分数 FROM 课程,学生成绩; WHERE课程.课程编号=学生成绩.课程编号; GROUP BY课程名称
B.SELECT 课程名称,MAX(成绩)分数 FROM 课程,学生成绩; WHERE 课程.课程编号=学生成绩.课程编号; GROUP BY课程名称
C.SELECT 课程名称,SUM(成绩)分数 FROM 课程,学生成绩; WHERE 课程.课程编号=学生成绩.课程编号; GROUP BY课程.课程编号
D.SELECT 课程名称,MAX(成绩) AS 分数 FROM 课程,学生成绩; WHERE 课程.课程编号=学生成绩.课程编号; GROUP BY课程编号
解析:使用SQL语句查询课程的最高分,可以用MAX()函数来实现。由于查询的是每门课程的最高分,所以需要按照课程名称进行分组,故选项B正确。选项A的错误在于,查询结果由SUM(成绩)构成,是对分组后的成绩进行了求和,选项C也是同样的错误。选项D错误在于,AS子句后只有一个字段名,而查询结果字段有两个,无法匹配,也是错误的。