itgle.com

第30~31题使用如下3个数据库表:学生表:S(学号,姓名,性别,出生日期,院系)课程表:C(课程号,课程名,学时)选课成绩表:SC(学号,课程号,成绩)在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,其他均为字符型。用SQL语句查询选修的每门课程的成绩都高于或等于85分的学生的学号和姓名,正确的命令是( )。

题目

第30~31题使用如下3个数据库表:

学生表:S(学号,姓名,性别,出生日期,院系)

课程表:C(课程号,课程名,学时)

选课成绩表:SC(学号,课程号,成绩)

在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,其他均为字符型。

用SQL语句查询选修的每门课程的成绩都高于或等于85分的学生的学号和姓名,正确的命令是( )。


相似考题
更多“ 第30~31题使用如下3个数据库表:学生表:S(学号,姓名,性别,出生日期,院系)课程表:C(课程号,课程名,学时)选课成绩表:SC(学号,课程号,成绩)在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,”相关问题
  • 第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题:

    以下2题使用如下三个数据库表学生表:S(学号,姓名,性别,出生日期,院系) 课程表:C(课程号,课程名,学时) 选课成绩表:SC(学号,课程号,成绩) 在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,其他均为字符型。

    用SQL命令查询选修的每门课程的成绩都高于或等于85分的学生的学号和姓名,正确的命令是

    A. SELECT学号,姓名 FROM S WHERE NOT EXISTS; (SELECT*FROM SC WHERE SC.学号=S.学号AND成绩<85)

    B. SELECT学号,姓名 FROM S WHERE NOT EXISTS; (SELECT*FROM SC WHERE SC.学号=S.学号AND成绩>=85)

    C.SELECT学号,姓名 FROM S,SC; WHERE S.学号=SC.学号 AND ALL成绩>=85

    D.SELECT学号,姓名 FROM S,SC; WHERE S.学号=SC.学号AND ALL成绩>=85


    正确答案:A
    解析:EXISTS是谓词,EXISTS或NOTEXISTS是用来检查在子查询中是否有结果返回,即存在元组或不存在元组。其本身并没有进行任何运算或比较,只用来返回子查询结果。选项B)和c)返回的结果都是只要有任意一门选修课程成绩大于等于85的学生学号和姓名,而本题要求返回的是所有选修课程大于等于85的学生学号和姓名,选项D)中的ALL短语无实际意义。

  • 第3题:

    第 29~30 题使用如下3个数据库表:

    学生表:S(学号,姓名,性别,出生日期,院系)

    课程表:C(课程号,课程名,学时)

    选课成绩表:SC(学号,课程号,成绩)

    在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,其他均为字符型。

    第 29 题 用SQL语句查询选修的每门课程的成绩都高于或等于85分的学生的学号和姓名,正确的命令是( )。

    A)SELECT学号,姓名FROM S WHERE NOT EXISTS;

    (SELECT﹡FROM SC WHERE SC.学号=S.学号AND成绩<85)

    B)SELECT学号,姓名FROM S WHERE NOT EXISTS:

    (SELECT﹡FROM SC WHERE SC.学号=S.学号AND成绩>=85)

    C)SELECT学号,姓名FROM S,SC

    WHERE S.学号=SC.学号AND成绩>=85

    D)SELECT学号,姓名FROM S,SC

    WHERE S.学号=SC.学号AND ALL成绩>=85


    正确答案:A
    本题属于多表查询,使用联接查询或嵌套查询,选项C)和选项D)使用联接查询,使用时学号字段前要表明所属的表,写法都不完整;选项A)和选项B)中的EXISTS
    属于SQL查询谓词,EXISTS或NOT EXISTS是用来检查在子查询中是否有结果返回,即存在元组或不存在元组,子查询要用圆括号括起来。选项A)中的子查询查询的是“SC”表中“学号”等于…S表中“学号”并且成绩小于85的数据,然后在外层查询中检索…S表中的“学号”是否存在于子查询的查询结果中,将不存在的“学号”显示其“学号”和“姓名”的信息。 

  • 第4题:

    根据以下资料,回答下列各题:使用如下三个数据库表: 学生表: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。

  • 第5题:

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

    课程表:C(课程号,课程名,学时)

    选课成绩表:SC(学号,课程号,成绩)

    在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,其他均为字符型。


    正确答案:A
    本题要用内、外层互相嵌套的方式进行查询。内查询NOTEXISTS(SELECT*FROMSCWHERESC.学号=S.学号AND成绩85)表示的含义是选课成绩表SC中不存在成绩小于85的记录,反过来说,就是成绩都高于或等于85分的记录。外查询SELECT学号.姓名FROMS表示的含义是从学生表S中查询学号、姓名,所以选项A正确。选项B的意思刚好与本题的要求相反;选项C、D写法错误。