第下列各题中使用如下数据表。 “学生”表:学号C(8),姓名C(8),性别c(2),系名(6) “课程”表:课程编号C

题目

第下列各题中使用如下数据表。 “学生”表:学号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用来连接两个连接条件,以保证在查询的三个表之间建立联系。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

根据以下资料,回答下列各题:使用如下三个数据库表: 学生表:student(学号,姓名,性别,出生日期,院系) 课程表:course(课程号,课程名,学时) 选课成绩表:score(学号,课程号,成绩) 其中出生日期的数据类型为日期型,学时和成绩为数值型,其他均为字符型。 查询“计算机系”学生的学号、姓名、学生所选课程名和成绩,正确的命令是( )。

A.SELECT s.学号,姓名,课程名,成绩 FROM student s,score sc。course c WHERE s.学号=sc.学号,sc.课程号=c.课程号,院系="计算机系"

B.SELECT学号,姓名,课程名,成绩 FROM student s,score sc,course C WHERE s.学号=SC.学号AND sc.课程号=c.课程号AND院系="计算机系"

C.SELECT s.学号,姓名,课程名,成绩 FROM(student s JOIN score sc ON s.学号=sc.学号) JOIN course c ON sc.课程号=c.课程号 wHERE院系="计算机系"

D.SELECT学号,姓名,课程名,成绩 FROM(student s JOIN score sc ON s.学号=sc.学号) JOIN course c ON sc.课程号=c.课程号 WHERE院系="计算机系"


正确答案:B
B。【解析】由题所知,所查询的是计算机系所选课程的学生的学号、姓名、课程名和成绩,其中涉及三个表,所以条件为s.学号=sc.学号ANDsc.课程号=c.课程号AND院系=”计算机系”。所以答案选择B。

第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题:

根据以下资料,回答下列各题: 使用如下三个数据库表: 学生表:student(学号,姓名,性别,出生日期,院系) 课程表:course(课程号,课程名,学时) 选课成绩表:score(学号,课程号,成绩) 其中出生日期的数据类型为日期型,学时和成绩为数值型,其他均为字符型。 查询“计算机系”学生的学号、姓名、学生所选课程名和成绩,正确的命令是( )。

A.SELECT s.学号,姓名,课程名,成绩 FROM student s,score sc。course c WHERE s.学号=sc.学号,sc.课程号=c.课程号,院系="计算机系"

B.SELECT学号,姓名,课程名,成绩 FROM student s,score sc,course C WHERE s.学号=SC.学号AND sc.课程号=c.课程号AND院系="计算机系"

C.SELECT s.学号,姓名,课程名,成绩 FROM(student s JOIN score sc ON s.学号=sc.学号) JOIN course c ON sc.课程号=c.课程号 wHERE院系="计算机系"

D.SELECT学号,姓名,课程名,成绩 FROM(student s JOIN score sc ON s.学号=sc.学号) JOIN course c ON sc.课程号=c.课程号 WHERE院系="计算机系"


正确答案:B
B。【解析】由题所知,所查询的是计算机系所选课程的学生的学号、姓名、课程名和成绩,其中涉及三个表,所以条件为s.学号=sc.学号ANDsc.课程号=c.课程号AND院系=”计算机系”。所以答案选择B。

第4题:

第下列各题使用如下数据表。 学生.DBF:学号(C,8),姓名(C,6),性别(C,2),出生日期(D) 选课.DBF:学号(c,8),课程号(C,3),成绩(N,5,1) 计算刘明同学选修的所有课程的平均成绩,正确的SQL 语句是( )。

A.SELECT AVG(成绩)FROM选课WHERE姓名=”刘明“

B.SELECT AVG(成绩)FRM学生,选课WHERE姓名=”刘明”

C.SELECT AVG(成绩)FROM学生,选课WHERE学生.姓名=”刘明”

D.SELECT AVG(成绩)FROM学生,选课WHERE学生.学号=选课.学号AND姓名=”刘明”


正确答案:D
题中以“学生.学号一选课.学号”为连接条件,以“姓名一”刘明””为筛选记录的条件,同时用AND进行连接,并用AVG函数求得指定字段的平均值。

第5题:

使用如下三个数据库表: 学生(学号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


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

第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题:

基于数据库中的学生表、成绩表、任课表:

学生(学号,姓名,性别,出生日期,系名)

成绩(学号,课程名,成绩)

任课(课程名,任课教师名)

用SQL语言中的CREATE语句创建一个含有学号、姓名、性别、系名、课程名、成绩、任课教师名的学生成绩视图.


正确答案:
CREATEVIEW学生成绩ASSELECT学生.学号,学生,姓名,学生,性别,学生,系名,成绩,成
绩,成绩.课程名,任课.任课教师名
FROM学生,成绩,任课
WHERE学生.学号=成绩,学号
AND成绩,课程名=任课,课程名;

第9题:

到(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()函数