计算机二级

查询同时选修课程号为Cl和C5课程的学生的学号,正确的命令是( )。A.SELECT学号FROM score sc WHERE课程号="Cl"AND学号IN (SELECT学号FROM score sc WHERE课程号="C5")B.SELECT学号FROM score sc WHERE课程号="Cl"AND学号= (SELECT学号FROM score sc WHERE课程号="C5")C.SELECT学号FROM score sc WHERE课程号="Cl"AND课程号="C5"D.SELECT学号

题目

查询同时选修课程号为Cl和C5课程的学生的学号,正确的命令是( )。

A.SELECT学号FROM score sc WHERE课程号="Cl"AND学号IN (SELECT学号FROM score sc WHERE课程号="C5")

B.SELECT学号FROM score sc WHERE课程号="Cl"AND学号= (SELECT学号FROM score sc WHERE课程号="C5")

C.SELECT学号FROM score sc WHERE课程号="Cl"AND课程号="C5"

D.SELECT学号FROM score sc WHERE课程号="Cl"OR课题号="C5"

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

第1题:

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

第2题:

查询所修课程成绩都大于等于85分的学生的学号和姓名,正确的命令是( )。

A.SELECT学号,姓名FROM student s WHERE NOT EXISTS (SELECT*FROM score se WHERE SC.学号=s.学号码AND成绩<85)

B.SELECT学号,姓名FROM student S WHERE NOT EXISTS (SELECT*FROM score sc WHERE SC.学号=s.学号码AND成绩>=85)

C.SELECT学号,姓名FROM student s,score sc WHERE s.学号=sc.学号AND成绩>=85

D.SELECT学号,姓名FROM student s,score sc WHERE S.学号=sc.学号AND ALL成绩>=85


正确答案:B
B。【解析】由题可得,所查询的成绩是大于等于85分的学生的学号和姓名,其中成绩和学号、姓名不在一个表内,所以要用嵌套查询。而其中的成绩是大于等于85分,所以答案选择B。

第3题:

使用如下3个数据库表: 学生表: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 NO TEXISTS; (SELECT*FROM SC WHERE SC.学号=S.学号AND成绩>=85)

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

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


正确答案:A
解析:本题建立的是SELECT—SQL命令的嵌套查询语句s在这个命令中要用到两个SELECT—FROM— WHERE查询块,即内层查询块和外层查询块,通过查询块检索选修的每门课程的成绩都高于或等于85分的记录,即选修的每门课程的成绩中都不存在85分以下的记录。

第4题:

查询选修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是错误的。

第5题:

一下5题基于学生表S和学生选课表SC两个数据库表,它们的结构如下:

S(学号,姓名,性别,年龄)其中学号、姓名和性别为C型字段,年龄为N型字段。

SC(学号,课程号,成绩),其中学号和课程号为C型字段,成绩为N型字段(初始为空值)。

查询学生选修课程成绩小于60分的学号,正确的SQL语句是 ______。

A.SELECT DISTINCT 学号 FROM SC WHERE"成绩"<60

B.SELECT DISTINCT 学号 FROM SC WHERE成绩<"60"

C.SELECT DISTINCT 学号 FROM SC WHERE成绩<60

D.SELECT DISTINCT"学号"FROM SC WHERE"成绩"<60


正确答案:C
解析:题意要求查询学生选修课程成绩小于60分的学号,要查询的字段是学号字段,条件是成绩字段的值小于60分,学号和成绩字段在SC表中,所以查询应基于SC表进行,字段即字段变量是变量名,不需要加双引号,所以排除A、D选项。成绩字段为N型字段,即为数值型数据,不需要加任何的定界符。所以选项B也是不正确的,正确的SQL语句是SELECT DISTINCT 学号 FROM SC WHERE 成绩60,即选项C。

第6题:

设有学生选课表 SC( 学号 , 课程号 , 成绩 ) , 用 SQL 检索同时选修课程号为 “ C1 ” 和 “ C5 ” 的学生的学号的正确命令是

A) SELECT 学号 FROM SC WHERE 课程号 = ' C1 ' AND 课程号 = ' C5 '

B) SELECT 学号 FROM SC WHERE 课程号 = ' C1 ' AND 课程号 =(SELECT 课程号 FROM SC WHERE课程号 = ' C5 ' )

C) SELECT 学号 FROM SC WHERE 课程号 = ' C1 ' AND 学号 =(SELECT 学号 FROM SC WHERE 课程号 = ' C5 ' )

D) SELECT 学号 FROM SC WHERE 课程号 = ' C1 ' AND 学号 IN (SELECT 学号 FROM SC WHERE 课程号 = ' C5 ' )


正确答案:D

第7题:

从学生选课表SC中(其中有学号、课程号、成绩3个字段)查询选修了3门以上课程的学生学号,实现该功能的SELECT语句是______。

A.SELECT 学号 FROM SC GROUP BY学号 HAVING SUM(*)>3

B.SELECT 学号 FROM SC GROUP BY学号 HAVING COUNT(*)>3

C.SELECT 学号 FROM SC GROUP BY学号 HAVING 课程号>3

D.SELECT 学号 FROM SC WHERE 课程号 >3 GROUPBY学号


正确答案:B
解析:根据题目要求,应先用GROUP BY子句按学号分组,再用集函数COUNT对每一组计数。 HAVING指定选择组的条件,只有满足条件(元组数>3,表示此学生选修的课超过3门)的组才会被选出来。根据此分析,选项B的语句正确。

第8题:

设有学生选课表SC(学号,课程号,成绩),用SQL检索同时选修课程号为“C1”和“C5”的学生的学号的正确命令是______。

A.SELECT 学号 FROM SC WHERE 课程号='C1' AND 课程号='C5'

B.SELECT 学号 FROM SC WHERE 课程号='C1' AND 课程号=(SELECT 课程号 FROM SC WHERE 课程号='C5')

C.SELECT 学号 FROM SC WHERE 课程号='C1' AND 学号=(SELECT 学号 FROM SC WHERE 课程号;='C5')

D.SELECT 学号 FROM SC WHERE 课程号='C1' AND 学号 IN(SELECT 学号 FROM SC WHERE 课程号='C5')


正确答案:D
解析:本题建立的是SELECT—SQL命令的嵌套查询语句。在这个命令中要用到两个SELECT—FROM— WHERE查询块,即内层查询块和外层查询块,通过查询块检索同时选修课程号为“C1”和“C5”的学生的学号。

第9题:

查询有选课记录,但没有考试成绩的学生的学号和课程号,正确的SQL语句是 ______。

A.SELECT 学号,课程号 FROM sc WHERE 成绩=""

B.SELECT 学号,课程号 FROM sc WHERE 成绩=NULL

C.SELECT 学号,课程号 FROM sc WHERE 成绩 IS NULL

D.SELEC T学号,课程号 FROM sc WHERE 成绩


正确答案:C
解析:在SC表中成绩字段为数值型数据且初始为空值,本题要求查询出有选课记录,但没有考试成绩的学生的学号和课程号,只要成绩记录为空就说明没有考试成绩,即查询成绩字段为空值。查询空值时要使用IS NULL,而=NULL是无效的,因为空值不是一个确定的值,所以不能使用“=”这样的运算符进行比较,所以选项C的语法是正确的。

第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学号FRM SC WHERE课程号=’C2’)


正确答案:D
D。【解析】选项D中的内查询SELECT学号FROMSCWHERE课程号=”C2”的查询结果有可能为多个,而选项D中的外层查询WHERE子句后面的逻辑表达式使用“=”,这样会导致产生错误的结果。

更多相关问题