Visual FoxPro数据库程序设计

单选题有考生(考号,姓名,性别)和科目(考号,科目号,成绩),检索还未确定成绩的考生科目信息,正确的SQL命令是(  )。A SELECT考生.考号,姓名,科目.科目号FROM考生JOIN科目;ON考生.考号=科目.考号WHERE科目.成绩IS NULLB SELECT考生.考号,姓名,科目.科目号FROM考生JOIN科目;WHERE考生.考号=科目.考号AND科目.成绩=NULLC SELECT考生.考号,姓名,科目.科目号FROM考生JOIN科目;WHERE考生.考号=科目.考号AND科目.成绩IS

题目
单选题
有考生(考号,姓名,性别)和科目(考号,科目号,成绩),检索还未确定成绩的考生科目信息,正确的SQL命令是(  )。
A

SELECT考生.考号,姓名,科目.科目号FROM考生JOIN科目;
ON考生.考号=科目.考号WHERE科目.成绩IS NULL

B

SELECT考生.考号,姓名,科目.科目号FROM考生JOIN科目;
WHERE考生.考号=科目.考号AND科目.成绩=NULL

C

SELECT考生.考号,姓名,科目.科目号FROM考生JOIN科目;
WHERE考生.考号=科目.考号AND科目.成绩IS NULL

D

SELECT考生.考号,姓名,科目.科目号FROM科目JOIN科目;
ON考生.考号=科目.考号WHERE科目.成绩=NULL

参考答案和解析
正确答案: B
解析:
两表连接的格式为:JOIN<数据库表2>ON<连接条件>WHERE……,还未确定成绩的考生其成绩字段为空值,应该用IS NULL来判断。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

设有 S ( 学号,姓名,性别 ) 和 SC ( 学号,课程号,成绩 ) 两个表,如下 SQL 语句检索选修的每门课程的成绩都高于或等于 85 分的学生的学号、姓名和性别,正确的是

A)SELECT 学号 , 姓名 , 性别 FROM s WHERE 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 学号 , 姓名 , 性别 FRO M s WHERE EXISTS

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

D)SELECT 学号 , 姓名 , 性别 FROM s WHERE NOT EXISTS

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


正确答案:D

第2题:

阅读以下说明和数据流图,回答问题1~3问题。

[说明]

研究生招生系统旨在用计算机对学校的研究生招生事务进行管理。研究生招生可分为报名阶段、考试阶段和录取阶段。招生报考前,招生处要进行考前准备工作,如统计招生导师、考试科目以及制定报考专业标准代码等。招生导师信息包括导师的姓名、性别、年龄、出生年月、所从事专业和研究方向以及所在系别。考试科目包含科目代码、科目的名称以及报考本科目的考试人数。在报名阶段,考生向招生处提交报名数据表,研究生系统根据考生的报考数据确定考生准考生号,并通知考生考试日期。在考试阶段,考试结束后,考生成绩录入研究生招生系统,考生可以从研究生招生系统中获取自己的考试成绩。在录取阶段,研究生招生系统根据考生的报考数据、考试成绩、外校调剂考生信息以及往年保留资格记录文件,确定录取数据,并形成录取文件。系统统计并记录相关招生信息,以供查询。对被录取的考生发放录取通知书,对需要保留资格的考生记录其信息,以供下年度招生使用。招生处可以从研究生招生系统中获得录取数据和招生情况的统计信息,以供咨询。

数据流图11-1为研究生招生系统顶层图,数据流图11-2为研究生招生系统第0层DFD图,数据流图11-3为加工3的细化图。

[数据流图11-1]

数据流图11-2中有3条数据流,请根据说明中的术语给出这三条数据流名称,并指出起点和终点。


正确答案:“统计数据”:起点“统计查询”终点“统计报表”文件。 “录取数据”:起点“加工3录取”终点“录取文件”。 “成绩”:起点“加工2考试”终点“考生”。
“统计数据”:起点“统计查询”,终点“统计报表”文件。 “录取数据”:起点“加工3录取”,终点“录取文件”。 “成绩”:起点“加工2考试”,终点“考生”。

第3题:

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

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

要检索所有比"王华"年龄大的学生姓名、年龄和性别,正确的语句是 (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项缺少连接字段。

第4题:

用SQL语句检索选修课程在5门以上(含5门)的学生的学号、姓名和平均成绩,并按平均成绩降序排序,正确的命令是( )。


正确答案:D

第5题:

~(35)题使用如下数据表:

学生.DBF:学号(C,8)姓名(C,6),性别(C,2)

选课.DBF:学号(C,8),课程号(C,3),成绩(N,3)

从“选课”表中检索成绩大于等于60并且小于90的记录信息,正确的SQL命令是( )。

A.SELECT*FROM选课WHERE成绩BETWEEN 60 AND 89

B.SELECT*FROM选课WHERE成绩BETWEEN 60 T0 89

C.SELECT*FROM选课WHERE成绩BETWEEN 60 AND 90

D.SELECT*FROM选课WHERE成绩BETWEEN 60 TO 90


正确答案:A
解析:bteween and表示在两者之间(包含两端的数据)。

第6题:

● 某数据库“成绩表”中包括准考证号、姓名、科目 1 成绩、科目 2 成绩、身份证号和报考资格名称等字段,以下对该“成绩表”的评价中, (70) 较为恰当。

(70)

A.准考证号是唯一的,数据库中的姓名字段可删除

B.字段顺序不妥,身份证号字段应放在准考证号字段的左侧

C.准考证号或身份证号字段只需要保留一个

D.应增加总成绩字段和性别字段,以便于统计和排序


正确答案:D

第7题:

本大题的程序一、二使用的“学生”表和“选修课”表如下:

“学生”表:

学号 姓名 政治面貌 年龄 学分 科目号

20001 王 海 团员 25 4 01

20002 李 盐 预备党员 20 3 02

20003 刘小鹏 团员 22 4 01

20004 隋小新 团员 20 6 03

20005 李明月 预备党员 24 4 01

20006 孙民主 预备党员 21 3 02

20007 赵福来 预备党员 22 6 03

“选修课”表:

科目号 科目名

01 日语

02 法律

03 微积分

【程序说明一】 使用SQL语句查询每个学生及其选修课程的情况:

【程序一】

SELECT 学生.*,选修课.*;

FROM 学生,选修课;

WHERE (1) = (2)

【程序说明二】 使用SQL语句求选修了法律课程的所有学生的学分总和:

【程序二】

SELECT (3) (学生分);

FROM 学生;

WHERE 科目号 IN;

(SELECT 科目号;

FROM (4) ;

WHERE 科目号=“法律”)

【程序说明三】 设有s(学号,姓名,性别)和sc(学号,课程号,成绩)两个表,下面SQL的

SELECT 语句检索选修的每门课程的成绩都高于或等于85分的学生的学号、姓名和性别。

【程序三】

SELECT 学号,姓名,性别FROM s

WHERE (5) (SELECT * FROM sc WHERE sc. 学号=s. 学号 AND 成绩<85)

(1)

A.科目号

B.学生.科目号

C.学生.姓名

D.选修课.科目号


正确答案:B

第8题:

设有s(学号,姓名,性别)和sc(学号,课程号,成绩)两个表,下面SQL的SELECT语句检索选修的每门课程的成绩都高于或等于85分的学生的学号、姓名和性别。SELECT 学号,姓名,性别 FROM sWHERE ___ (SELECT * FROM sc WHERE sc.学号=s.学号 AND 成绩<85)


正确答案:NOT EXISTS
本题考查SQL查询语句的使用。在SQL中,括号内SELECT*FROM sc WHERE sc.学号=5.学号AND成绩<85表示是每门课成绩都小于85分的学生,要检索成绩高于或等于85分,NOT EXISTS取反。

第9题:

检索还未确定成绩的学生选课信息,正确的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表示内链接,内链接是通过比较源表间共享的列的值从多个源表检索行的操作。内联接排除来自不具有与其它源表中的行匹配的行的源表的行。

第10题:

从学生管理数据库中考生成绩.dbf检索所有分数大于或等于名次为2的学生的成绩的学号所用的SQL命令为: SELECT DISTINCT 学号 FROM 考试成绩 WHERE 成绩【 】; (SELECT 成绩 FROM 考生成绩 WHERE 名次=2)


正确答案:>=(或>=ANY)
在SQL中,可以使用关系运算符,设置查询条件,本题中的量词ANY可以省略。

更多相关问题