niusouti.com

用结构体编程。某班有5名学生,每名学生的数据包括学号、姓名、3 门课程的成绩。从键盘输入5名学生数据,输出5名同学平均成绩, 以及平均分最高的学生的数据(包括学号、姓名、 3 门课成绩、平均成绩)。

题目

用结构体编程。某班有5名学生,每名学生的数据包括学号、姓名、3 门课程的成绩。从键盘输入5名学生数据,输出5名同学平均成绩, 以及平均分最高的学生的数据(包括学号、姓名、 3 门课成绩、平均成绩)。


相似考题
更多“用结构体编程。某班有5名学生,每名学生的数据包括学号、姓名、3 门课程的成绩。从键盘输入5名学生数据,输出5名同学平均成绩, 以及平均分最高的学生的数据(包括学号、姓名、 3 门课成绩、平均成绩)。”相关问题
  • 第1题:

    检索每门课程的最高分,要求得到的信息包括课程名称、姓名和最高分,正确的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个表之间建立联系。

  • 第2题:

    在已打开数据库的情况下,利用SQL派生一个包含姓名、课程名称和成绩字段的xsview视图,正确的语句是( )。

    A.CREATE VIEW xsview AS; SELECT 学生.姓名,课程.课程名称,成绩,成绩; FROM 学生 INNER JOIN 成绩; INNER JOIN 课程; WHERE 成绩.课程编号=课程.课程编号; AND 学生.学号=成绩.学号

    B.CREATE VIEW xsview AS; (SELECT 学生.姓名,课程.课程名称,成绩.成绩; FROM 学生 INNER JOIN 成绩; INNER JOIN 课程; ON 成绩.课程编号=课程.课程编号; ON 学生.学号=成绩.学号)

    C.CREATE VIEW xsview AS; SELECT 学生.姓名,课程.课程名称,成绩.成绩; WHERE 学生 INNER JOIN 成绩; INNER JOIN 课程; ON 成绩.课程编号=课程.课程编号; ON 学生.学号=成绩.学号

    D.CREATE VIEW xsview AS; SELECT 学生.姓名,课程.课程名称,成绩.成绩; FROM 学生 INNER JOIN 成绩; INNER JOIN 课程; ON 成绩.课程编号=课程.课程编号; ON 学生.学号=成绩.学号


    正确答案:D
    解析:利用SQL命令可以定义直接建立视图,命令格式如下:
    CREATE VIEW 视图名 AS;
    SELECT语句
    本题中要注意的是在定义视图时,SELECT语句部分不需要用括号括起来,在进行超连接查询时,可使用的 SQL命令格式如下:
    SELECT……
    FROM数据库表1>INNER JOIN数据库表2>
    ON连接条件>
    WHERE……
    其中,INNER JOIN等价于JOIN,为普通的连接,在Visual FoxPro中称为内部连接;ON连接条件>指定两个进行表连接的条件字段。
    注意:连接类型在FROM子句中给出,并不是在 WHERE子句中,连接条件在ON子句中给出。

  • 第3题:

    在关系Student(学号,姓名,系名,课程号,成绩)中,查询至少选修了四门课程的学生学号、姓名及平均成绩的SElECT语句应该是:

    SELECT学号,姓名,AVC((254))AS平均成绩

    FROM Student

    CROUP BY学号

    HAVING (255)

    A.成绩

    B.姓名

    C.系名

    D.课程号


    正确答案:A

  • 第4题:

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

    A.SELECT学生.姓名,成绩.成绩FROM学生,成绩; WHERE学生.学号=成绩.学号; AND课程.课程名称=‘计算机基础’; ORDER BY成绩.成绩DESC

    B.SELECT学生.姓名,成绩.成绩FROM课程,成绩; WHERE AND课程.课程编号=成绩.课程编号; AND课程.课程名称=‘计算机基础’; ORDER BY成绩.成绩DESC

    C.SELECT学生.姓名,成绩.成绩FROM学生,课程,成绩; WHERE学生.学号=成绩.学号; AND课程.课程编号=成绩.课程编号; AND课程.课程名称=‘计算机基础’; GROUP BY成绩.成绩DESC

    D.SELECT学生.姓名,成绩.成绩FROM学生,课程,成绩; WHERE学生.学号=成绩.学号; AND课程.课程编号=成绩.课程编号; AND课程.课程名称=‘计算机基础’; ORDER BY成绩.成绩DESC


    正确答案:D
    解析:本小题为多表联接查询,注意每两个表之间进行关联的关键字,利用ORDER BY短语可以对查询结果进行排序,降序关键字为DESC。 选项A)和选项B)中缺少数据表文件。选项C)中,GROUP BY短语使用错误,将查询结果进行排序的短语是ORDER BY。掌握和理解SQL分组查询语句的格式及功能。

  • 第5题:

    学生(学号(C,8),姓名(C,6),性别(C,2),出生日期(D))选课(学号(C,8),课程号(C,3),成绩(N,5,1)) 查询选修课程号为“007”课程得分最高的学生,正确的SQL语句是( )。

    A. SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号 AND课程号=”007”AND成绩 >=ALL(SELECT成绩FROM选课)

    B. SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号 AND成绩 >=ALL(SELECT成绩FROM选课WHERE课程号=”007”)

    C. SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号 AND成绩 >=ANY(SELECT成绩FROM选课WHERE课程号=”007”)

    D. SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号AND 课程号=”007”AND成绩>=ALL(SELECT成绩FROM选课WHERE课程号=”007”)


    正确答案:D
    所有选项都是通过嵌套查询来实现题目的要求,因此来看关键字:ALL要求子查询中的所有行结果为真,结果才为真;ANY只要子查询中有一行能使结果为真,则结果就为真。最高分应该为成绩>=ALL(…),要查询选课号为“007”的同学,所以内外查询中都要用到条件:课程号=”007”。

  • 第6题:

    第下列各题中使用如下数据表。 “学生”表:学号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用来连接两个连接条件,以保证在查询的三个表之间建立联系。

  • 第7题:

    有一个student表(学生,姓名,系名,课程名,成绩),查询至少修了四门课程的学生

    学号,姓名以及平均成绩的 SQL语句。


    正确答案:
     

  • 第8题:

    查询选修课程号为“101”的课程得分最高的同学,正确的SQL语句是( )。

    A.SELECT学生.学号,姓名FROM学生,选课 WHERE学生.学号=选课.学号 AND课程号=”101”AND成绩>=A11(SELECT成绩FROM选课)

    B.SELECT学生.学号,姓名FROM学生,选课 WHERE学生.学号=选课.学号 AND成绩>=A11(SELECT成绩FROM选课 WHERE课程号=”101”)

    C.SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号 AND成绩>:=:A11(SELECT成绩FROM选课 WHERE课程号=”101”)

    D.SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号一选课.学号AND 课程号一”101”AND成绩>=A11(SELECT成绩FROM选课WHERE课程号一”101”)


    正确答案:D
    本题采用嵌套查询。其中,ALL表示所有的结果。

  • 第9题:

    查询选修课程号为"101"课程得分最高的同学,正确的SQL语句是

    A.SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号 AND课程号="101”AND成绩>=ALL(SELECT成绩FROM选课)

    B.SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号;选课.学号 AND成绩>=ALL(SELECT成绩FROM选课WHERE课程号="101")

    C.SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号二选课.学号 AND成绩>=ANY(SELECT成绩FROM选课WHERE课程号="101")

    D.SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号AND课程号="101" AND成绩>=ALL(SELECT成绩FROM选课WHERE课程号 ="101")


    正确答案:D
    解析:本题所给出的四个选项中:
      选项A中的子查询并没有限定选择“课程号”为“101”,则此命令选择出来的结果是“101”课程得分大于等于所有科目成绩的记录,如果其余课目的成绩有记录大于“101”科目的最高成绩,则此查询无结果,此选项错误。选项B中的查询并没有限定选择“课程号”为“101”,则此命令选择出来的结果是所有课程得分大于等于所有“101”科目成绩的记录,如果其余课目的成绩有记录大于“101”科目的最高成绩,则此查询将查询出错误结果,此选项错误。
      选项C中的查询并没有限定选择“课程号”为“101”,则此命令选择出来的结果是所有课程得分大于等于任意“101”科目成绩的记录,此查询将杳询出错误结果,此选项错误。
      选项D符合题意,将查询出正确结果,故为正确答案。

  • 第10题:

    设有一个关系Student(学号,姓名,系名,课程号,成绩),查询至少选修了四门课程的学生学号、姓名及平均成绩的SELECT语句应该是:SELECT 学号,姓名,AVG(成绩)AS平均成绩FROM StudentGROUP BY(请作答此空)HAVING( )

    A.学号
    B.姓名
    C.系名
    D.课程号

    答案:A
    解析:
    本题考查的是SQL查询语言。GROUP BY子句可以将查询结果表的各行按一列或多列取值相等的原则进行分组,对查询结果分组的目的是为了细化集函数的作用对象。如果分组后还要按一定的条件对这些组进行筛选,最终只输出满足指定条件的组,可以使用HAVING短语指定筛选条件。由题意可知,在这里只能根据学号进行分组,并且要满足条件:此学号的学生至少选修了四门课程。因此,试题(18)的正确答案为A,试题(19)的正确答案为B。

  • 第11题:

    设学生表和课程表的结构分别为(学号,姓名)和(学号,课程号,成绩),如果希望查询出“成绩大于90分的学生姓名”,则对应的SQL语句是()。

    ASELECT 姓名 FROM 学生表 WHERE 学生表.学号=课程表.学号 AND 课程表.成绩>90

    BSELECT 姓名 FROM 课程表 WHERE学生表.学号=课程表.学号 AND 课程表.成绩>90

    CSELECT 姓名 FROM 学生表,课程表 WHERE 学生表.学号=课程表.学号 OR 课程表.成绩>90

    DSELECT 姓名 FROM 学生表,课程表 WHERE 学生表.学号=课程表.学号 AND 课程表.成绩>90


    D

  • 第12题:

    单选题
    学生表:S(学号,姓名,性别)和选课成绩表:SC(学号,课程号,成绩),用SQL语言检索选修课程在5门以上(含5门)的学生的学号、姓名和平均成绩,并按平均成绩降序排序,正确的命令是(  )。
    A

    SELECT S.学号,姓名,AVG(成绩)平均成绩 FROM S,SC;
    WHERE S.学号=SC.学号;
    GROUP BY S.学号,姓名 HAVING COUNT(*)>=5 ORDER BY 3 DESC

    B

    SELECT S.学号,姓名,AVG(成绩) FROM S,SC;
    WHERE S.学号=SC.学号 AND COUNT(*)>=5;
    GROUP BY 学号,姓名 ORDER BY 3 DESC

    C

    SELECT S.学号,姓名,AVG(成绩) 平均成绩 FROM S,SC;
    WHERE S.学号=SC.学号 AND COUNT(*)>=5;
    GROUP BY S.学号,姓名 ORDER BY 平均成绩 DESC

    D

    SELECT S.学号,姓名,平均成绩 FROM S,SC;
    WHERE S.学号=SC.学号;
    GROUP BY S.学号,姓名 HAVING COUNT(*)>=50RDER BY 平均成绩 DESC


    正确答案: C
    解析:
    题目要求查找选修课程在5门以上(含5门)的学生,则应该用HAVING COUNT(*)>=5进行限定。使用HAVING子句可以定义这些组所必须满足的条件以进行限定。GROUP BY将查询结果按指定列分成集合组。AVG可以计算对每个学生分组后的平均成绩,即AVG(成绩)。A项正确,ORDER BY 3 DESC指按查询结果中第三列数据降序排列,即ORDER BY平均成绩DESC。

  • 第13题:

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

    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短语连接这两个条件。

  • 第14题:

    已知表S(学号,姓名,年龄)

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

    C(课程号,课程名,教师名)

    试用SQL查询语句表达下列对教学数据库中的三个基本表S、SC、C的查询:

    (1)统计有学生选修的课程门数.

    (2)求选修C4课程的学生的平均年龄.

    (3)求王平老师所授课程的每门课程的学生平均成绩.

    (4)统计每门课程的学生选修人数(超过10人的课程才统计).要求输出课程号和选修人数.

    (5)查询姓名以WANG开头的所有学生的姓名和年龄.


    正确答案:
    (1)SELECT  COUNT(DISTINCT课程号)
          ROM  SC;
    (2)SELECT  AVG(年龄)
          FROM  S,SC
          WHERE课程号=“C4”AND S.学号=SC.
          学号;
    (3)SELECTSC.课程号,课程名,AVG(成绩)
          FROM  SC,C
          WHERE  SC.课程号=C.课程号AND
          C.教师名=“王平”
           GROUP  BY  SC.课程号;
    (4)SELECT课程号,COUNT(学号)
           FROM  SC
          GROUP  BY课程号
           HAVING  COUNT(*)>10;
    (5)SELECT 姓名,年龄
            FROM  S
           WHERE 姓名 LIKE“WANG*”:

  • 第15题:

    有如下关系数据库:

    学生(学号,姓名,性别,专业、奖学金)

    课程(课程号,名称,学分)

    学习(学号,课程号,分数)

    用sQL语言完成下列操作:

    1)检索没有任何一门课程成绩在80分以下的所有学生的信息,包括学号、姓名和专业;

    2)检索没有获得奖学金、同时至少有一门课程成绩在95分以上的学生信息,包括学号、

    姓名和专业;

    3)对成绩得过满分(100分)的学生,如果没有获得奖学金的,将其奖学金设为1000元;

    4)定义学生成绩得过满分(100分)的课程视图AAA,包括课程号、名称和学分。


    正确答案:1)SELECT学号姓名专业FROM学生WHERE学号NOT IN (SELECT学号FROM学习WHERE分数<80) 2)SELECT学号姓名专业FROM学生学习WHERE学生.学号:学习.学号AND学习.课程号=课程.课程号AND学生.奖学金<=0 AND学习.分数>95; 3)LJPDATE学生 SET奖学金=1000 WHERE奖学金<=0 AND学号IN (SEI.ECT学号 FROM学习WHERE分数=100): 4)CREATE VIEW AAA(课程号名称学分)AS SELECT。课程号名称学分FORM课程wHERE课程号lN (SELECT课程号 FROM学习 WHERE分数=100);
    1)SELECT学号,姓名,专业FROM学生WHERE学号NOT IN (SELECT学号FROM学习WHERE分数<80) 2)SELECT学号,姓名,专业FROM学生,学习WHERE学生.学号:学习.学号AND学习.课程号=课程.课程号AND学生.奖学金<=0 AND学习.分数>95; 3)LJPDATE学生 SET奖学金=1000 WHERE奖学金<=0 AND学号IN (SEI.ECT学号 FROM学习WHERE分数=100): 4)CREATE VIEW AAA(课程号,名称,学分)AS SELECT。课程号,名称,学分FORM课程wHERE课程号lN (SELECT课程号 FROM学习 WHERE分数=100); 解析:主要考查了SQL的数据查询功能、数据定义功能和数据操纵功能。这类问题主要是考查对SELECT FROM WHERE语句的掌握。

  • 第16题:

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

  • 第17题:

    检索还未确定成绩的学生选课信息,正确的SQL命令是( )。

    A.SELECT学生.学号,姓名,选课.课程号FROM学生JOIN选课 WHERE学生.学号=选课.学号AND选课.成绩IS NULL

    B.SELECT、学生.学号,姓名,选课.课程号FROM学生JOIN选课 WHERE学生.学号=选课.学号AND选课.成绩=NULL

    C.SELECT学生.学号,姓名,选课.课程号FROM学生JOIN选课 ON学生.学号=选课.学号WHERE选课.成绩IS NULL

    D.SELECT学生.学号,姓名,选课.课程号FROM学生JOIN选课 ON学生.学号=选课.学号WHERE选课.成绩=NULL


    正确答案:C
    解析:inner join on表示内链接,内链接是通过比较源表间共享的列的值从多个源表检索行的操作。内联接排除来自不具有与其它源表中的行匹配的行的源表的行。

  • 第18题:

    已知关系模式:

    S (SNO,SNAME) 学生关系。SNO 为学号,SNAME 为姓名

    C (CNO,CNAME,CTEACHER) 课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师

    SC(SNO,CNO,SCGRADE) 选课关系。SCGRADE 为成绩

    要求实现如下5个处理:

    1. 找出没有选修过“李明”老师讲授课程的所有学生姓名

    2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩

    3. 列出既学过“1”号课程,又学过“2”号课程的所有学生姓名

    4. 列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号

    5. 列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩


    正确答案:
     

  • 第19题:

    第下列各题使用如下数据表。 学生.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函数求得指定字段的平均值。

  • 第20题:

    计算刘明同学选修的所有课程的平均成绩,正确的SQL语句是

    A.SELECTAVG(成绩)FROM选课WHERE姓名="刘明"

    B.SELECTAVG(成绩)FROM学生,选课WHERE姓名="刘明"

    C.SELECTAVG(成绩)FROM学生,选课WHERE学生.姓名="刘明"

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


    正确答案:D
    解析:此题中各个选项解释如下:
      选项A错误,此查询只选择了“选课”表,但在“选课”表中并没有“姓名”字段。
      选项B与选项C错误,此查询进行了两个表的联合查询,但没有根据关键字将两个表联接起来。 
      选项D正确。

  • 第21题:

    ●设有学生关系Student(学号,姓名,系名,课程号,成绩),则查询至少选修了四门课程的学生学号、姓名及平均成绩的SELECT语句为:

    SELECT学号,姓名,(59)

    FROM Student

    GROUP BY(60)

    HAVING(61)

    (59)A.SUM(成绩)

    B.AVG(SUM(成绩))

    C.AVG(成绩)AT平均成绩

    D.AVG(成绩)AS平均成绩

    (60)A.学号

    B.姓名

    C.系名

    D.课程号

    (61)A.COUNT(DISTINCT学号)>3

    B.COUNT(课程号)>3

    C.COUNT(DISTINCT学号)>=3

    D.COUNT(课程号)>=3


    正确答案:D,A,B

  • 第22题:

    设有一个关系Student(学号,姓名,系名,课程号,成绩),查询至少选修了四门课程的学生学号、姓名及平均成绩的SELECT语句应该是:SELECT 学号,姓名,AVG(成绩)AS平均成绩FROM StudentGROUP BY( )HAVING(请作答此空)

    A.COUNT(DISTINCT 学号)>3
    B.COUNT(课程号)>3
    C.COUNT(DISTINCT学号)>=3
    D.COUNT(课程号)>=3

    答案:B
    解析:
    本题考查的是SQL查询语言。GROUP BY子句可以将查询结果表的各行按一列或多列取值相等的原则进行分组,对查询结果分组的目的是为了细化集函数的作用对象。如果分组后还要按一定的条件对这些组进行筛选,最终只输出满足指定条件的组,可以使用HAVING短语指定筛选条件。由题意可知,在这里只能根据学号进行分组,并且要满足条件:此学号的学生至少选修了四门课程。因此,试题(18)的正确答案为A,试题(19)的正确答案为B。

  • 第23题:

    单选题
    查询选修课程号为“101”课程得分最高的同学,正确的SQL语句是(  )。
    A

    SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号AND课程号=101AND成绩>=ALL(SELECT成绩FROM选课)

    B

    SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号AND成绩>=ALL(SELECT成绩FROM选课WHERE课程号=101)

    C

    SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号AND成绩>=ANY(SELECT成绩FROM选课WHERE课程号=101)

    D

    SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号AND课程号=101AND成绩>=(SELECT成绩FROM选课WHERE课程号=101)


    正确答案: A
    解析:
    ALL表示所有子查询中的所有行都使结果为真时,结果才为真;而ANY表示子查询中有一行能使结果为真,则结果就为真,要求查询选修课程号为“101”的课程得分最高的同学,应用条件短语:成绩>=ALL(SELECT成绩FROM选课WHERE课程号="101")。

  • 第24题:

    单选题
    要查询出学号为2008001001所有选取修课程的成绩,正确的是()。
    A

    SELECT学号,姓名,课程代码,总评成绩FROM学生,成绩ON学生.学号=成绩.学号WHERE学号=’2008001001’

    B

    SELECT学号,姓名,课程代码,总评成绩FROM学生INNER JOIN成绩WHERE学生.学号=成绩.学号AND学号=’2008001001’

    C

    SELECT学号,姓名,课程代码,总评成绩FROM学生LEFT OUTER JOIN成绩ON学生.学号=成绩.学号WHERE学号=’2008001001’

    D

    SELECT学号,姓名,课程代码,总评成绩FROM学生,成绩WHERE学生.学号=成绩.学号AND学号=’2008001001’


    正确答案: D
    解析: 暂无解析