已知三个关系:学生(学号,姓名,性别)课程(课程编号,课程名称,学时)成绩(学号,课程编号,分数)若要列出选修课程名称为“DB”,且分数低于60的学生姓名和分数,则应使用的关系代数运算有()A、选择、投影、自然连接B、选择、投影C、选择、自然连接D、投影、自然连接

题目

已知三个关系:学生(学号,姓名,性别)课程(课程编号,课程名称,学时)成绩(学号,课程编号,分数)若要列出选修课程名称为“DB”,且分数低于60的学生姓名和分数,则应使用的关系代数运算有()

  • A、选择、投影、自然连接
  • B、选择、投影
  • C、选择、自然连接
  • D、投影、自然连接
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

~(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课程编号


正确答案:B
本题考查使用MAX()函数构造SQL查询。使用SQL查询课程的最高分,可以用MAX()函数来实现。由于查询的是每门课程的最高分,所以需要按照课程名称进行分组,故选项B正确。选项A的错误在于查询结果由SUM(成绩)构成,是对分组后的成绩进行了求和,选项C也是同样的错误,选项D错误在于AS子句后只有一个字段名,而查询结果字段有两个,无法匹配,也是错误的。

第2题:

已知学生关系S(学生,姓名,班级,课程名称,成绩),学号由入学年份、专业编号和班内编号组成。则其候选关键字是( )。

A.(学号,姓名)

B.(学号,课程名称)

C.(姓名,成绩)

D.(学号,班级)


正确答案:A
解析:关键字就是主码,在本题中,将学号和姓名可以作为关键字,因为这两个作为关键字,重复的可能性最小。

第3题:

已知有如下三个表: 学生(学号,姓名,性别,班级) 课程(课程名称,学时,性质) 成绩(课程名称,学号,分数) 若要列出“99网络”班所有“数据库技术”课成绩不及格的同学的学号、姓名、课程名称、分数,则应该对这些表进行哪些操作?( )

A.选择和自然连接

B.投影和自然连接

C.选择、投影和自然连接

D.选择和投影


正确答案:C
要列出“99网络”班所有“数据库技术”课成绩不及格的同学的学号、姓名、课程名称、分数,其正确的关系代数表达式是先对学生按照条件班级=“99网络”进行选择,然后再与其他两个关系进行自然连接,然后在学号、姓名、课程名称、分数列上进行投影。

第4题:

检索每门课程的最高分,要求得到的信息包括课程名称、姓名和最高分,正确的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 课程.课程编号


正确答案:B
解析:本题中首先通过GROUPBY短语将“课程”表中的记录按“课程编号”分组,然后通过MAX()函数求出每组中的最高成绩,即每门课程的最高成绩。由于查询输出结果涉及到多个表的字段,因此要使用连接查询,表之间的连接条件放在WHERE短语中,AND用来连接两个连接条件,以保证在查询的3个表之间建立联系。

第5题:

已知学生关系S(学号、姓名、班级、课程名称、成绩),学号由入学年份、系别、专业编号和班内编号组成。则其侯选关键字是( )。

A.(学号、姓名)

B.(学号、课程名称)

C.(姓名、成绩)

D.(学号、班级)


正确答案:B

第6题:

统计只有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选修人数


正确答案:C
本题考查SQL语句中使用统计函数的掌握。统计人数可以使用COUNT()函数。在本题中由于学号是惟一的,因而统计人数就可以通过统计学生学号的个数来实现,四个选项中可以排除A、B两个选项,这两个语句都缺少按选修人数进行排序的子句,选项D的错误在于没有设定查询条件,故选项C正确。

第7题:

学生、课程和成绩三个关系:学生(学号,姓名,性别,班级),课程(课程名称,学时,性质),成绩(课程名称,学号,分数),若打印学生成绩单,包含学号、姓名、课程名称、分数,应该对这些关系进行( )操作。

A.并

B.交

C.乘积

D.连接


正确答案:D

第8题:

已知有如下3个表: · 学生(学号,姓名,性别,班级) · 课程(课程名称,学时,性质) · 成绩(课程名称,学号,分数) 若要列出班级=“97计算机”的所有同学的姓名,应该对关系“学生”进行( )操作。

A选择

B连接

C投影

D选择和投影


参考答案:D

第9题:

利用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课程名称


正确答案:D
解析:利用SQL命令可以定义直接建立视图,命令格式如下:
CREATE VIEW视图名AS;
SELECT语句
注意:在定义视图时,SELECT语句部分不需要用括号括起来,用来排序的SQL短语是ORDER BY,而GROUP BY短语的功能是对记录进行分组。

第10题:

查询所有选修了“计算机网络”的学生成绩,结果显示该学生的“姓名”、“系名”和“数据库原理”的“成绩”,并按成绩由高到低的顺序排列,下列语句中正确的是 ( )。

A.SELECT学生.姓名,学生.系名,成绩.成绩FROM学生,课程,成绩; FOR学生.学号=成绩.学号; AND课程.课程编号=成绩.课程编号; AND课程.课程名称="计算机网络"; ORDER BY成绩.成绩DESC

B.SELECT 学生.姓名.学生.系名.成绩.成绩JOIN学生,课程,成绩; ON学生.学号=成绩.学号; ON课程.课程编号=成绩.课程编号; AND课程.课程名称="计算机网络"; ORDER BY成绩.成绩DESC

C.SELECT学生.姓名,学生.系名,成绩.成绩 FROM 学生,课程,成绩; WHERE学生.学号=成绩.学号; OR课程.课程编号=成绩.课程编号; OR课程.课程名称="计算机网络"; ORDER BY 成绩.成绩 DESC

D.SELECT 学生.姓名,学生.系名,成绩.成绩FROM学生,课程,成绩; WHERE 学生.学号=成绩.学号; AND 课程.课程编号=成绩.课程编号; AND 课程.课程名称="计算机网络"; ORDER BY成绩.成绩 DESC


正确答案:D
解析:本题是一个多表连接查询的SQL语句,关键要注意表间连接条件的使用,如果使用超连接方式查询,则正确的语句格式为:
SELECT……
FROM数据库表1>INNER JOIN数据库表2>
ON连接条件>
WHERE……
其中,INNER JOIN等价于JOIN,为普通的连接,在Visual FoxPro中称为内部连接;ON连接条件>指定两个进行表连接的条件字段。
如果使用的是普通的连接方式,则只需在FROM短语中指定查询的数据表,各表名之间用逗号隔开,而各表之间的连接放在WHERE短语后面,设计两个连接条件时,用AND短语连接这两个条件。

更多相关问题