使用如下三个数据库表: 学生(学号C(8),姓名C(8),性别C(2),班级C(8)) 课程(课程编号C(8),课程名

题目

使用如下三个数据库表: 学生(学号C(8),姓名C(8),性别C(2),班级C(8)) 课程(课程编号C(8),课程名称C(20)) 成绩(学号C(8),课程编号C(8),成绩N(5,1)) 查询所有选修了“高等数学”的学生的“相关”成绩,要求信息中包括学生姓名和成绩,并按成绩由低到高的顺序排列,下列语句正确的是( )。

A. SELECT学生.姓名,成绩.成绩FROM学生,成绩; WHERE学生.学号=成绩.学号; AND课程.课程名称=’高等数学’; ORDER BY成绩.成绩ASC

B. SELECT学生.姓名,成绩.成绩FROM课程,成绩; WHERE AND课程.课程编号=成绩.课程编号; AND课程.课程名称=’高等数学’; ORDER BY成绩.成绩ASC

C. SELECT学生.姓名,成绩.成绩FROM学生,课程,成绩; WHERE学生.学号=成绩.学号; AND课程.课程编号=成绩.课程编号; AND课程.课程名称=’高等数学’; GROUP BY成绩.成绩ASC

D. SELECT学生.姓名,成绩.成绩FROM学生,课程,成绩; WHERE学生.学号=成绩.学号; AND课程.课程编号=成绩.课程编号; AND课程.课程名称=’高等数学’; ORDER BY成绩.成绩ASC

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

8、有学生表S、课程表C和选课表SC,结构分别如下: s(学号, 姓名, 性别, 年龄) c(课程号, 课程名, 学分) sc(学号, 课程号, 成绩) 检索学号、姓名、学生所修课程的课程名和成绩,正确的SQL语句是()。

A.SELECT 学号, 姓名, 课程名, 成绩 FROM s, c, sc WHERE s.学号=sc.学号 AND sc.学号=c.学号;

B.SELECT 学号, 姓名, 课程名, 成绩 FROM s INNER JOIN sc ON s.学号=sc.学号 INNER JOIN c ON sc.课程号=c.课程号;

C.SELECT s.学号, 姓名, 课程名, 成绩 FROM s INNER JOIN sc INNER JOIN c ON s.学号=sc.学号 ON sc.课程号=c.课程号;

D.SELECT s.学号, 姓名, 课程名, 成绩 FROM s INNER JOIN sc ON s.学号=sc.学号 INNER JOIN c ON sc.课程号=c.课程号;


SELECT s.学号, 姓名, 课程名, 成绩 FROM s INNER JOIN sc ON s.学号=sc.学号 INNER JOIN c ON sc.课程号=c.课程号

第2题:

以下3题使用如下的3个数据表: 学生、课程和成绩。 学生(学号 C(8),姓名 C(8),性别 C(2),班级 C(8)) 课程(课程编号 C(8),课程名称 C(20)) 成绩(学号 C(8),课程编号 C(8),成绩 N(5,1))

查询所有选修了"计算机基础"的学生的"计算机基础"成绩,要求得到的信息包括学生姓名和成绩,并按成绩由高到低的顺序排列,下列语句正确的是


正确答案:D
本小题为多表联接查询,注意每两个表之间进行关联的关键字,利用ORDERBY短语可以对查询结果进行排序,降序关键字为DESC。选项A)和选项B)中缺少数据表文件。选项C)中,GROUPBY短语使用错误,将查询结果进行排序的短语是ORDERBY。

第3题:

学生.DBF:学号C(8),姓名C(12),性别C(2),出生日期D,院系C(8)

课程.DBF:课程编号C(4),课程名称C(10),开课院系C(8)

学生成绩.DBF:学号C(8),课程编号C(4),成绩Ⅰ

统计只有2名以下(含2名)学生选修的课程情况.统计结果中的信息包括课程名称、

开课院系和选修人数,并按选课人数排序,正确的命令是


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

第4题:

第下列各题中使用如下数据表。 “学生”表:学号C(8),姓名C(8),性别c(2),系名(6) “课程”表:课程编号C(4),课程名称c(12),开课系名C(10) “成绩”表:学号c(8),课程编号c(4),成绩N(6,2) 检索每门课程的最高分,要求得到的信息包括课程名称、姓名和最高分,正确的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
本题中首先通过GROUl’BY短语将“课程”表中的记录按“课程编号”分组,然后通过MAX函数求出每组中的最高成绩,即每门课程的最高成绩。由于查询输出结果涉及多个表的字段,因此要使用连接查询,表之间的连接条件放在WHERE短语中,AND用来连接两个连接条件,以保证在查询的三个表之间建立联系。

第5题:

使用如下三个数据库表,回答下列各题: 学生(学号C(8),姓名C(8),性别C(2),班级C(8)) 课程(课程编号C(8),课程名称C(20)) 成绩(学号C(8),课程编号C(8),成绩N(5,1)) {TS}查询每门课程的最高分,要求得到的信息包括课程名和最高分,正确的命令是( )。

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


正确答案:A
求最大值要利用MAX函数。要查询每门课程的最高分,需要对课程进行分组,而由于课程名称可能出现重名,因此分组依据为课程编号,以确保记录的唯一性。利用As短语可将“成绩”字段名重新命名为“最高分”作为新的字段名,以显示查询结果。选项B的分组条件中,没有指定从哪个表中进行记录分组,因此系统报错。选项c和选项D的计算函数使用错误。

第6题:

教学管理数据库创建了如下四张表:

CTEATE TABLE student

(学号 CHAR(5) not null unique,

姓名 CHAR(8),

性别 CHAR(2),

出生日期 DATETIME,

班号 CHAR(5))

CTEATE TABLE teacher

(教师编号 CHAR(5) not null unique,

姓名 CHAR(8),

性别 CHAR(2),

出生日期 DATETIME,

职称 CHAR(6),

系别 CHAR(10))

CREATE TABLE course

(课程号 CHAR(5) not null unique,

课程名 CHAR(20),

任课教师编号 CHAR(5))

CREATE TABLE score

(学号 CHAR(5),

课程号 CHAR(5),

分数 INT)

请写出完成以下任务需要的SQL语句: 1) 检索score表中成绩在60-80之间的所有记录。2) 检索student表中所有姓王的学生记录。


答:1)SELECT * FROM score where 分数 BETWEEN 60 AND 80
2)SELECT * FROM stduent WHERE 姓名 LIKE '王%'

第7题:

使用如下的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 课程编号


正确答案:A
解析:求最大值要利用MAX函数。要查询每门中的最高分,需要对课程进行分组。由于课程名称可能出现重名,因此分组依据为课程编号,且注意记录的惟一性,利用AS短语。可将"成绩"字段名重新命名为"最高分"作为新的字段名,用于显示查询结果。选项B)的分组条件中,没有指定从哪个表中进行记录分组,因此系统报错。选项C)和选项D)的计算函数使用错误。

第8题:

到(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成绩.课程编号


正确答案:D
解析:进行SQL简单计算查询时,还可以加上GROUP BY子句进行分组计算查询。
通常来说,一个计算函数的范围是满足WHERE子句指定条件的所有记录。当加上GROUP BY子句后,系统会将查询结果按指定列分成集合组。当一个计算函数和一个GROUP BY子句一起使用时,计算函数的范围变为每组所有的记录。
本题通过“GROUP BY成绩.课程编号”可以先将记录按“课程编号”分组,然后再通过函数“SUM(成绩)AS总分”对每组记录求和。其中,通过AS短语可以对进行计算的字段指定一个新的字段名。另外,COUNT()函数

第9题:

~(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子句后只有一个字段名,而查询结果字段有两个,无法匹配,也是错误的。