查询选修了课程号为“C2”的学生号和姓名,若用下列SQL的SELECT语句表达时,哪一个是错误的?A.SELECT

题目

查询选修了课程号为“C2”的学生号和姓名,若用下列SQL的SELECT语句表达时,哪一个是错误的?

A.SELECT S.S#,SNAME FROM S WHERE S.S# (SELECT SC. S# FROM SC WHERE C#='C2')

B.SELECT S.S#,SNAME FROMS,SC WHERE S.S#=SC.S# AND C#='C2'

C.SELECT S.S#,SNAME FROM S,SC WHERE S.S=SC.S# AND C#='C2'ORDER BY S.S#.

D.SELECTS.S#,SNAME FROM S WHERE S.S# IN(SELECT SC. S# FROM SC WHERE C#='C2')

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

第1题:

(41)若要查询“选修了课程号为C2的学生的学生号”,正确的表达是( ).

Ⅰ、pS#(sC#=′C2′(SC)) Ⅱ、sC#=′C2′(pS# (S))

Ⅲ、SELECT S# FROM SC WHERE C#=′C2′

A)仅Ⅰ和Ⅱ

B)仅Ⅱ和Ⅲ

C)仅Ⅰ和Ⅲ

D)都正确


正确答案:C

(41)【答案】C)
【解析】语句I的III是正确的查询语句。

第2题:

学生表:Student 学生表 (学号,姓名,性别,年龄,组织部门)

Course 课程表 (编号,课程名称)

Sc 选课表 (学号,课程编号,成绩)

表结构如下:

(1).写一个SQL语句,查询选修了’计算机原理’的学生学号和姓名

(2).写一个SQL语句,查询’周星驰’同学选修了的课程名字

(3).写一个SQL语句,查询选修了5门课程的学生学号和姓名


正确答案:

  select sno,sname

  from student

  where sno in (

  select sno

  from sc

  where cno = (

  select cno

  from course

  where cname=计算机原理

  )

  )

  (2)

  select cname

  from course

  where cno in (

  select cno

  from sc

  where sno =

  (

  select sno

  from student

where sname=周星驰

  )

  )

  (3) select sno,sname

  From student

  Where sno in (

  select sno

  from scgroup by sno having count(sno)=5

  )

第3题:

查询选修了课程号为\'C2\'的学生号和姓名,若用下列SQL的SELECT语句表达时,哪一个是错误的?

A.SELECT S.S#,SNAME FROM S WHERE S.S#

= (SELECT SC.S# FROM SC WHERE C# = 'C2' )

B.SELECT S.S#,SNAME FROM S,SC

WHERE S.S# = SC.S# AND C# = 'C2'

C.SELECT S.S#,SNAME FROM S,SC

WHERE S.S# = SC.S# AND C# = 'C2' ORDER BY S.S#

D.SELECT S.S#,SNAME FROM S WHERE S.S#

IN (SELECT SC.S# FROM SC WHERE C# ='C2' )


正确答案:A

第4题:

已知表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*”:

第5题:

当前目录下有XUESH.dbf和CHJI.dbf两个表文件,要求查找同时选修了课程号为“9801”和“9802”的学生姓名,下列SQL语句的空白处应填入的语句为( )。

SELECT 姓名 FROM XUESH,CHJI; WHERE XUESH.学号=CHJI.学号; AND 课程号="9801"; AND 姓名______(SELECT 姓名 FROM XUESH,CHJI; WHERE XUESH.学号=CHJI.学号; AND 课程号="9802")

A.IN

B.EXITS

C.LIKE

D.ALL


正确答案:A
解析:本小题为SQL的嵌套查询,通过内层查找符合条件的记录集合,再通过外层查询检索该集合中相同的记录值,使用的特殊运算符为IN(包含运算)。
ANY、ALL和SOME是量词,其中ANY和SOME是同义词,在进行比较运算时只要子查询中有一行能使结果为真,则结果为真:而ALL则要求子查询中的所有行都使结果为真时,结果才为真。
EXITS是谓词,EXITS和NOT EXITS是用来检查在子查询中是否有结果返回(即存在元组或不存在元组)。

第6题:

当前目录下有student和coure两个表文件,要求查找同时选修了课程号为"0001"和"0002"的学生姓名,语句为: SELECT 姓名 FROM student,coure; WHERE student.学号=coure.学号; AND 课程号="0001"; AND 姓名【 】; (SELECT 姓名 FROM student, coure; WHERE student.学号=coure.学号; AND 课程号="0002")


正确答案:IN
本小题为SQL的嵌套查询,通过内层查找符合条件的记录集合,在通过外层查询检索该集合中相同的记录值,使用的特殊运算符为IN(包含运算)。

第7题:

查询选修课程号为“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”科目成绩的记录,此查询将查询出错误的结果,此选项错误。

第8题:

●已知基本表:学生(学号,姓名,性别,年龄,系名)

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

要检索所有比"王华"年龄大的学生姓名、年龄和性别,正确的语句是 (25) ,要检索学生姓名及其所选修课程的课程号和成绩,正确的语句是 (26) 。

(25) A.SELECT姓名,年龄,性别

FROM学生

WHERE AGE>(SELECT 年龄

FROM 学生

WHERE 姓名 ="王华")

B.SELECT姓名,年龄,性别

FROM学生

WHERE姓名="王华"

C.SELECT姓名,年龄,性别

FROM学生

WHERE AGE>(SELECT年龄

WHERE姓名="王华")

D.SELECT姓名,年龄,性别

FROM学生

WHERE AGE>"王华"

(26) A.SELECT 学生.姓名,选课.课程号,选课.成绩

FROM学生

WHERE学生 学号=课程.学号

B.SELECT学生.姓名,选课.课程号,选课.成绩

FROM选课

WHERE学生.学号=课程.学号

C.SELECT学生.姓名,选课.课程号,选课.成绩

FROM学生,选课

WHERE学生.学号=课程.学号

D.SELECT学生.姓名,选课.课程号,选课.成绩

FROM学生.学号


正确答案:A,C
【解析】分句WHERE AGE>(SELECT 年龄 FROM 学生 WHERE 姓名 ="王华")限定了结果记录年龄比王华大。B、C、D项该分句均不正确。26题考查了连接操作,A、B的FROM字段错误。D项缺少连接字段。

第9题:

已知学生选课信息表:sc(sno,cno,grade)。查询“至少选修了一门课程,但没有学习成绩的学生学号和课程号”的SQL语句是

A.SELECT sno,cno FROM sc WHERE grade=NULL

B.SELECT sno,cno FROM sc WHERE grade IS‘’

C.SELECT sno,cno FROM sc WHERE grade IS NULL

D.SELECT sno,cno FROM sc WHERE grade=‘’


正确答案:C
解析:IS NULL表示空值,空值不能表示为列名=NULL。

第10题:

查询选修C2课程号的学生姓名,下列SQL语句中错误的是 ______。

A.SELECT 姓名 FROM S WHERE EXISTS (SELECT*FROM SC WHERE 学号=S.学号 AND 课程号='C2')

B.SELECT 姓名 FROM S WHERE 学号 IN (SELECT 学号 FROM SC WHERE 课程号='C2')

C.SELECT 姓名 FROM S JOIN SC ON S.学号=SC.学号 WHERE 课程号='C2'

D.SELECT 姓名 FROM S WHERE 学号= (SELECT 学号 FROM SC WHERE 课程号='C2')


正确答案:D
解析:要求查询选修C2课程号的学生的姓名,姓名字段在S表中,而课程号在SC表中,可知查询的结果来自一张表,而条件来自另一张表,所以这里可以用简单的连接查询或者用嵌套查询。
  选项A使用谓语EXISTS进行查询,EXISTS或NOT EXISTS是用来检查在子查洵中是否有结果返回(即存在元组或不存在元组)。选项A先查询出SC表中选修了C2课程的所有信息,并指定SC表和S表通过学号公共字段建立联系,接着查询出姓名字段所对应的值,这种查询是可以达到目的的。
  选项B是一个嵌套查询,首先在SC表中查出选修了C2课程的学生的学号,接着找出这些学号在S表中所对应的学生的姓名,从而查询出选修了C2课程的学生的姓名。
  选项C是一个连接查询,SC表和S表首先通过学号字段建立连接,再找出选修了C2课程的学生的姓名。
  选项D中先找出选修了C2课程的学生的学号,因为选修C2课程的学生可能不止一个,因此不能直接用“=”号,而应该用“IN",IN相当于集合运算符∈,所以选项D是错误的。

更多相关问题