1、国家二级 VF 机试(关系数据库标准语言 SQL)模拟试卷 24 及答案解析(总分:58.00,做题时间:90 分钟)一、选择题(总题数:29,分数:58.00)1.在 Visual FoxPro 中,如下描述正确的是(分数:2.00)A.对表的所有操作,都不需要使用 USE 命令先打开表B.所有 SQL 命令对表的所有操作都不需使用 USE 命令先打开表C.部分 SQL 命令对表的所有操作都不需使用 USE 命令先打开表D.传统的 FoxPro 命令对表的所有操作都不需使用 USE 命令先打开表2.使用如下三个数据表 学生表:S(学号,姓名,性别,出生日期,院系) 课程表:C(课程号,课程名
2、,学时) 选课成绩表:SC(学号,课程号,成绩) 在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,其他均为字符型。 用 SQL 命令查询选修的每门课程的成绩都高于或等于 85 分的学生的学号和姓名,正确的命令是(分数:2.00)A.SELECT 学号,姓名 FORM S WHERE NOT EXISTS; (SELECT*FROM SC WHERE SC学号=S学号 AND 成绩85)B.SELECT 学号,姓名 FORM S WHERE NOT EXISTS; (SELECT*FROM SC WHERE SC学号=S学号 AND 成绩=85)C.SELECT 学号,姓名 FORM
3、S,SC WHERE S学号=SC学号 AND 成绩=85D.SELECT 学号,姓名 FORM S,SC WHERE S学号=SC学号 AND ALL 成绩=853.使用如下关系: 客户(客户号,名称,联系人,邮政编码,电话号码) 产品(产品号,名称,规格说明,单价) 订购单(订单号,客户号,订购日期) 订购单明细(订单号,序号,产品号,数量) 查询客户名称中有“网络”二字的客户信息的正确命令是(分数:2.00)A.SELECT*FROM 客户 FOR 名称 LIKE网络B.SELECT*FROM 客户 FOR 名称 =网络C.SELECT*FROM 客户 WHERE 名称=网络D.SELE
4、CT*FROM 客户 WHERE 名称 LIKE网络4.使用如下关系: 客户(客户号,名称,联系人,邮政编码,电话号码) 产品(产品号,名称,规格说明,单价) 订购单(订单号,客户号,订购日期) 订购单明细(订单号,序号,产品号,数量) 查询尚未最后确定订购单的有关信息的正确命令是(分数:2.00)A.SELECT 名称,联系人,电话号码,订单号:FROM 客户,订购单 WHERE 客户客户号=订购单客户号AND 订购日期 IS NULLB.SELECT 名称,联系人,电话号码,订单号 FROM 客户,订购单 WHERE 客户客户号=订购单客户号AND 订购日期=NULLC.SELECT 名称
5、,联系人,电话号码,订单号 FROM 客户,订购单 FOR客户客户号=订购单客户号AND 订购日期 IS NULLD.SELCT 名称,联系人,电话号码,订单号 FROM 客户,订购单 FOR客户客户号=订购单客户号 AND 订购日期=NULL5.使用如下关系: 客户(客户号,名称,联系人,邮政编码,电话号码) 产品(产品号,名称,规格说明,单价) 订购单(订单号,客户号,订购日期) 订购单明细(订单号,序号,产品号,数量) 假设客户表中有客户号(关键字)C1C10 共 10 条客户记录,订购单表有订单号(关键字)OR1OR8 共 8 条订购单记录,并且订购单表参照客户表。如下命令可以正确执行
6、的是(分数:2.00)A.INSERT INTO 订购单 VALUES(OR5,C5,20081010)B.INSERT INTO 订购单 VALUES(OR5,C11,20081010)C.INSERT INTO 订购单 VALUES(OR9,C11,20081010)D.INSERT INTO 订购单 VALUES(OR9,C5,20081010)6.基于学生表 S 和学生选课表 SC 两个数据表,它们的结构如下: S(学号,性别,年龄)其中学号、姓名和性别为 C 型字段,年龄为 N 型字段。 SC(学号,课程号,成绩),其中学号和课程号为 C 型字段,成绩为 N 型字段(初始为空值)。查
7、询学生选修课程成绩小于 60 分的学号,正确的 SQL 语句是(分数:2.00)A.SELECT DISTINCT 学号 FROM SC WHERE 成绩60B.SELECT DISTINCT 学号 FROM SC WHERE 成绩60C.SELECT DISTINCT 学号 FROM SC WHERE 成绩60D.SELECT DISTINCT 学号 FROM SC WHERE 成绩607.基于学生表 S 和学生选课表 SC 两个数据表,它们的结构如下: S(学号,性别,年龄)其中学号、姓名和性别为 C 型字段,年龄为 N 型字段。 SC(学号,课程号,成绩),其中学号和课程号为 C 型字段
8、,成绩为 N 型字段(初始为空值)。查询成绩在 70 分至 85 分之间学生的学号、课程号和成绩,正确的 SQL 语句是(分数:2.00)A.SELECT 学号,课程号,成绩 FROM sc WHERE 成绩 BETWEEN 70 AND 85B.SELECT 学号,课程号,成绩 FROM sc WHERE 成绩=70 OR 成绩=85C.SELECT 学号,课程号,成绩 FROM sc WHERE 成绩=70 OR=85D.SELECT 学号,课程号,成绩 FROM sc WHERE 成绩=70 AND=858.基于学生表 S 和学生选课表 SC 两个数据表,它们的结构如下: S(学号,性别
9、,年龄)其中学号、姓名和性别为 C 型字段,年龄为 N 型字段。 SC(学号,课程号,成绩),其中学号和课程号为 C 型字段,成绩为 N 型字段(初始为空值)。查询有选课记录,但没有考试成绩的学生的学号和课程号,正确的 SQL 语句是(分数:2.00)A.SELECT 学号,课程号 FROM sc WHERE 成绩=B.SELECT 学号,课程号 FROM sc WHERE 成绩=NULLC.SELECT 学号,课程号 FROM sc wHERE 成绩 IS NULLD.SELECT 学号,课程号 FROM sc WHERE 成绩9.与“SELECT*FROM 教师表 INTO BDF A”等
10、价的语句是(分数:2.00)A.SELECT*FROM 教师表 TO DBF AB.SELECT*FROM 教师表 TO TABLE AC.SELECT*FROM 教师表 INTO TABLE AD.SELECT*FROM 教师表 INTO A10.查询“教师表”的全部记录并存储于临时文件 onedbf 中的 SQL 命令是(分数:2.00)A.SELECT*FROM 教师表 INTO CURSOR oneB.SELECT*FROM 教师表 TO CURSOR oneC.SEI+ECT*FROM 教师表 INTO CURSOR DBF oneD.SELECT*FROM 教师表 TO CURSO
11、R DBF one11.基于图书表、读者和借阅表三个数据库表,它们的结构如下: 图书(图书编号,书名,第一作者,出版社):图书编号、书名、第一作者和出版社为 C 型字段,图书编号为主关键字; 读者(借书证号,单位,姓名,职称):借书证号、单位、姓名、职称为 C 型字段,借书证号为主关键字; 借阅(借书证号,图书编号,借书日期,还书日期):借书证号和图书编号为 C 型字段,借书日期和还书日期为 D 型字段,还书日期默认值为 NULL,借书证号和图书编号共同构成主关键字。 查询第一作者为“张三“的所有书名及出版社,正确的 SQL 语句是(分数:2.00)A.SELECT 书名,出版社 FROM 图
12、书 WHERE 第一作者=张三B.SELECT 书名,出版社 FROM 图书 WHERE 第一作者=张三C.SELECT 书名,出版社 FROM 图书 WHERE第一作者=张三D.SELECT 书名,出版社 FROM 图书 WHERE第一作者=张三12.基于图书表、读者和借阅表三个数据库表,它们的结构如下: 图书(图书编号,书名,第一作者,出版社):图书编号、书名、第一作者和出版社为 C 型字段,图书编号为主关键字; 读者(借书证号,单位,姓名,职称):借书证号、单位、姓名、职称为 C 型字段,借书证号为主关键字; 借阅(借书证号,图书编号,借书日期,还书日期):借书证号和图书编号为 C 型字
13、段,借书日期和还书日期为 D 型字段,还书日期默认值为 NULL,借书证号和图书编号共同构成主关键字。 查询尚未归还的图书编号和借书日期,正确的 SQL 语句是(分数:2.00)A.SELECT 图书编号,借书日期 FROM 借阅 WHERE 还书日期=B.SELECT 图书编号,借书日期 FROM 借阅 WHERE 还书日期=NULLC.SELECT 图书编号,借书日期 FROM 借阅 WHERE 还书日期 IS NULLD.SELECT 图书编号,借书日期 FROM 借阅 WHERE 还书日期13.基于图书表、读者和借阅表三个数据库表,它们的结构如下: 图书(图书编号,书名,第一作者,出版
14、社):图书编号、书名、第一作者和出版社为 C 型字段,图书编号为主关键字; 读者(借书证号,单位,姓名,职称):借书证号、单位、姓名、职称为 C 型字段,借书证号为主关键字; 借阅(借书证号,图书编号,借书日期,还书日期):借书证号和图书编号为 C 型字段,借书日期和还书日期为 D 型字段,还书日期默认值为 NULL,借书证号和图书编号共同成主关键字。 查询单位名称中含“北京”字样的所有读者的借书证号的姓名,正确的 SQL 语句是(分数:2.00)A.SELECT 借书证号,姓名 FROM 读者 WHERE 单位=北京B.SELECT 借书证号,姓名 FROM 读者 WHERE 单位=北京*C
15、.SELECT 借书证号,姓名 FROM 读者 WHERE 单位 LIKE北京*D.SELECT 借书证号,姓名 FROM 读者 WHERE 单位 LIKE北京14.使用如下三个数据库表: 学生表:student(学号,姓名,性别,出生日期,院系) 课程表:course(课程号,课程名,学时) 选课成绩表:score(学号,课程号,成绩) 其中出生日期的数据类型为日期型,学时和成绩为数值型,其他均为字符型。 查询“计算机系”学生的学号、姓名、学生所选课程的课程名和成绩,正确的命令是(分数:2.00)A.SELECT s学号,姓名,课程名,成绩 FROM student s,score sc,c
16、ourse c WHERE s学号=sc学号,sc课程号=c课程号,院系=计算机系B.SELECT s学号,姓名,课程名,成绩 FROM student s,score SC,course c WHERE s学号=sc学号 AND sc课程号=c课程号 AND 院系=计算机系C.SELECT s学号,姓名,课程名,成绩 FROM(student s JOIN score sc NO s学号=sc学号 JOIN course c ON sc课程号=c课程号 WHERE 院系=计算机系D.SELECT 学号,姓名,课程名,成绩 FROM(student s JOIN score sc NO s学号
17、=sc学号 JOIN course c ON sc课程号=c课程号 WHERE 院系=计算机系15.使用如下三个表: 商店(商店号,商店名,区域名,经理名) 商品(商品号,商品名,单价) 销售(商店号,商品号,销售日期,销售数量) 查询在“北京”和“上海”区域的商店信息的正确命令是(分数:2.00)A.SELECT*FROM 商店 WHERE 区域名=北京AND 区域名=上海B.SELECT*FROM 商店 WHERE 区域名=北京OR 区域名=上海C.SELECT*FROM 商店 WHERE 区域名=北京 AND上海D.SELECT*FROM 商店 WHERE 区域名=北京OR上海16.使用
18、如下三个表: 商店(商店号,商店名,区域名,经理名) 商品(商品号,商品名,单价) 销售(商店号,商品号,销售日期,销售数量) 查询商品单价在 10 到 50 之间、并且日销售数量高于 20 的商品名、单价、销售日期和销售数量,查询结果按单价降序。正确命令是(分数:2.00)A.SELECT 商品名,单价,销售日期,销售数量 FROM 商品 JOIN 销售 WHERE(单价 BETWEEN 10 AND 50)AND销售数量20 ORDER BY 单价 DESCB.SELECT 商品名,单价,销售日期,销售数量 FROM 商品 JOIN 销售 WHERE(单价 BETWEEN 10 AND 5
19、0)AND 销售数量20 ORDER BY 单价C.SELECT 商品名,单价,销售日期,销售数量 FROM 商品,销售 WHERE(单价 BETWEEN 10 AND 50)AND 销售数量20 ON 商品商品号=销售商品号 ORDER BY 单价D.SELECT 商品名,单价,销售日期,销售数量 FROM 商品,销售 WHERE(单价 BETWEEN 10 AND 50) AND销售数量20 AND 商品商品号=销售商品号 ORDER BY 单价 DESC17.使用如下三个表: 商店(商店号,商店名,区域名,经理名) 商品(商品号,商品名,单价) 销售(商店号,商品号,销售日期,销售数量)
20、 查询销售金额合计超过 20000 的商店,查询结果包括商店名和销售金额合计。正确的命令是(分数:2.00)A.SELECT 商店名,SUM(销售数量*单价)As 销售金额合计 FROM 商店,商品,销售 WHERE 销售金额合计20000B.SELECT 商店名,SUM(销售数量*单价)As 销售金额合计2000 FROM 商店,商品,销售 WHERE 商品商品号=销售商品号 AND 商店商店号=销售商店号C.SELECT 商店名,SUM(销售数量*单价)As 销售金额合计 FROM 商店,商品,销售 WHERE 商品商品号=销售商品号 AND 商店商店号=销售商店号 AND SUM(销售数
21、量*单价)20000 GROUP BY 商店名D.SELECT 商店名,SUM(销售数量*单价)As 销售金额合计 FROM 商店,商品,销售 WHERE 商品商品号=销售商品号 AND 商店商店号=销售商店号 GROUP BY 商店名 HAVING SUM(销售数量*单价)2000018.使用如下三个数据库表: 图书(索书号,书名,出版社,定价,ISBN) 借书证(借书证号,姓名,性别,专业,所在单位) 借书记录(借阅号,索书号,借书证号,借书日期,还书日期) 其中:定价是货币型,借书日期和还书日期是日期型,其他是字符型。 查询借书证上专业为“计算机”的所有信息,正确的SQL 语句是(分数:
22、2.00)A.SELECT*FEOM 借书证 WHERE 专业=计算机B.SELECT 借书证号 FEOM 借书证 WHERE 专业=计算机C.SELECT ALL FEOM 借书证 WHERE 专业=计算机D.SELECT ALL FEOM 借书记录 WHERE 专业=计算机19.使用如下三个数据库表: 图书(索书号,书名,出版社,定价,ISBN) 借书证(借书证号,姓名,性别,专业,所在单位) 借书记录(借阅号,索书号,借书证号,借书日期,还书日期) 其中:定价是货币型,借书日期和还书日期是日期型,其他是字符型。 查询所有借阅过“中国出版社”图书的读者的姓名和所在单位(分数:2.00)A.
23、SELECT 姓名,所在单位 FORM 借书证,图书,借书记录 WHERE 图书索引号=借书记录索书号 AND 借书证借书证号=借书记录借书证号 AND 出版社=中国出版社B.SELECT 姓名,所在单位 FORM 借书证,图书 WHERE 图书索引号:借书证借书证号 AND 出版社=中国出版社C.SELECT 姓名,所在单位 FORM 借书记录,图书 WHERE 图书索引号=借书记录索书号 AND 出版社=中国出版社D.SELECT 姓名,所在单位 FORM 借书证,借书记录 WHERE 借书证借书证号=借书记录借书证号 AND出版社=中国出版社20.在 SQL SELECT 语句中,为了将
24、查询结果存储到临时表,应该使用短语(分数:2.00)A.TO CURSoRB.INTO CURSORC.INTO DBFD.TO DBF21.设有订单表 order(其中包含字段:订单号,客户号,职员号,签订日期,金额),查询 2007 年所签订单的信息,并按金额降序排序,正确的 SQL 命令是(分数:2.00)A.SELECT*FROM order WHERE YEAR(签订日期)=2007 0RDER BY 金额 DESCB.SELECT*FROM order WHILE YEAR(签订日期)=2007 ORDER BY 金额 ASCC.SELECT*FROM order WHERE YE
25、AR(签订曰期)=2007 0RDER BY 金额 ASCD.SELECT*FROM order WHILE YEAR(签订日期)=2007 0RDER BY 金额 DESC22.检索“投中 3 分球“小于等于 5 个的运动员中“得分”最高的运动员的“得分”,正确的 SQL 语句是(分数:2.00)A.SELECT MAX(得分)FROM 运动员 WHERE 投中 3 分球=5B.SELECT MAX(得分)FROM 运动员 WHEN 投中 3 分球=5C.SELECT 得分 MAX(得分)FROM 运动员 WHERE 投中 3 分球=5D.SELECT 得分 MAX(得分)FROM 运动员
26、WHEN 投中 3 分球=523.在 SQL SELECT 查询中,为了使查询结果排序必须使用短语(分数:2.00)A.ASCB.DESCC.GROUP BYD.0RDER BY24.查询单价在 600 元以上的主机板和硬盘的正确命令是(分数:2.00)A.SELECT*FROM 产品 WHERE 单价600 AND(名称=主机板AND 名称=硬盘)B.SELECT*FROM 产品 WHERE 单价600 AND(名称=主机板OR 名称=硬盘)C.SELECT*FROM 产品 FOR 单价600 AND(名称=主机板AND 名称=硬盘)D.SELECT*FROM 产品 FOR 单价600 AN
27、D(名称=主机板OR 名称=硬盘)25.查询客户名称中有“网络”二字的客户信息的正确命令是(分数:2.00)A.SELECT*FROM 客户 FOR 名称 LIKE网络B.SELECT*FROM 客户 FOR 名称=网络C.SELECT*FROM 客户 WHERE 名称=网络D.SELECT*FROM 客户 WHERE 名称 LIKE网络26.设有学牛表 S(学号,姓名,性别,年龄),杳询所有年龄小于等于 18 岁的女同学,并按年龄进行降序排序,生成新的表 WS,正确的 SQL 语句是(分数:2.00)A.SELECT*FROM S: WHERE 性别=女 AND 年龄=18 ORDER BY
28、 4 DESC 1NTO TABLE WSB.SELECT*FROM S; WHERE 性别=女 AND 年龄=18 ORDER BY 年龄 INTO TABLE WSC.SELECT*FROM S; WHERE 性别=女 AND 年龄=18 ORDER BY年龄DESC INTO TABLE WSD.SELECT*FROM S; WHERE 性别=女OR 年龄=18 ORDER BY年龄ASC INTO TABLE WS27.设有学生选课表 SC(学号,课程号,成绩),用 SQL 同时检索选修课程号为“C1”和“C5”的学生学号的正确命令是(分数:2.00)A.SELECT 学号 FROM
29、SC; WHERE 课程号=C1AND 课程号=C5B.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)28.设有学生表 S(学号,姓名,性别,年龄)、课程表 C(课程号,课程名,学分)和学生选课表 SC(
30、学号,课程号,成绩、),检索学号、姓名和学生所选课程的课程名和成绩,正确的 SQL 语句是(分数:2.00)A.SELECT 学号,姓名,课程名,成绩 FROM S,SC,C; WHERE S学号=SC学号 AND SC学号=C学号B.SELECT 学号,姓名,课程名,成绩; FROM(S JOIN SC ON S学号=SC学号)JOIN C ON SC课程号=C课程号C.SELECT S学号,姓名,课程名,成绩; FROM S JOIN SC JOINC ON S学号=SC学号 ON SC课程号=C课程号D.SELECT S学号,姓名,课程名,成绩; FROM S JOIN SC JOIN
31、C ON SC课程号=C课程号 ON S学号=SC学号29.查询所有 1982 年 3 月 20 日以后(含)出生、性别为男的学生,正确的 SQL 语句是(分数:2.00)A.SELECT*FROM 学生 WHERE 出生日期=1982-03-20 AND 性别=男B.SELECT*FROM 学生 WHERE 出生日期=1982-03-20 AND 性别=男C.SELECT*FROM 学生 WHERE 出生日期=1982-03-20 OR 性别=男D.SELECT*FROM 学生 WHERE 出生日期=1982-03-20 OR 性别=男国家二级 VF 机试(关系数据库标准语言 SQL)模拟试
32、卷 24 答案解析(总分:58.00,做题时间:90 分钟)一、选择题(总题数:29,分数:58.00)1.在 Visual FoxPro 中,如下描述正确的是(分数:2.00)A.对表的所有操作,都不需要使用 USE 命令先打开表B.所有 SQL 命令对表的所有操作都不需使用 USE 命令先打开表 C.部分 SQL 命令对表的所有操作都不需使用 USE 命令先打开表D.传统的 FoxPro 命令对表的所有操作都不需使用 USE 命令先打开表解析:解析:所有 SQL 命令对表的所有操作都不需使用 USE 命令先打开表。USE 是 VFP 中用来打开表的命令。2.使用如下三个数据表 学生表:S(
33、学号,姓名,性别,出生日期,院系) 课程表:C(课程号,课程名,学时) 选课成绩表:SC(学号,课程号,成绩) 在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,其他均为字符型。 用 SQL 命令查询选修的每门课程的成绩都高于或等于 85 分的学生的学号和姓名,正确的命令是(分数:2.00)A.SELECT 学号,姓名 FORM S WHERE NOT EXISTS; (SELECT*FROM SC WHERE SC学号=S学号 AND 成绩85) B.SELECT 学号,姓名 FORM S WHERE NOT EXISTS; (SELECT*FROM SC WHERE SC学号=S学
34、号 AND 成绩=85)C.SELECT 学号,姓名 FORM S,SC WHERE S学号=SC学号 AND 成绩=85D.SELECT 学号,姓名 FORM S,SC WHERE S学号=SC学号 AND ALL 成绩=85解析:解析:NOT EXIS 等价于 NOT IN,是用来查询出不存在于子查询中的记录。选项 B 用 NOT。EXISTS检查出的是不大于或等于 85 分的成绩范围内学生,正好与题意相反,所以是错误的;选项 C 只要有一门成绩大于或等于 85 分,就能被查询出来。题中要求是每门成绩都要高于或等于 85 分;选项 D 查询语句错误,不能使用 ALL 短语。3.使用如下关系
35、: 客户(客户号,名称,联系人,邮政编码,电话号码) 产品(产品号,名称,规格说明,单价) 订购单(订单号,客户号,订购日期) 订购单明细(订单号,序号,产品号,数量) 查询客户名称中有“网络”二字的客户信息的正确命令是(分数:2.00)A.SELECT*FROM 客户 FOR 名称 LIKE网络B.SELECT*FROM 客户 FOR 名称 =网络C.SELECT*FROM 客户 WHERE 名称=网络D.SELECT*FROM 客户 WHERE 名称 LIKE网络 解析:解析:Visual:FoxPro 的 SQL SELECT 命令的语法格式中 WHERE 说明查询条件,即选择元组的条件
36、,并且查询语法中没有关键词 FOR,所以选项 D 正确。4.使用如下关系: 客户(客户号,名称,联系人,邮政编码,电话号码) 产品(产品号,名称,规格说明,单价) 订购单(订单号,客户号,订购日期) 订购单明细(订单号,序号,产品号,数量) 查询尚未最后确定订购单的有关信息的正确命令是(分数:2.00)A.SELECT 名称,联系人,电话号码,订单号:FROM 客户,订购单 WHERE 客户客户号=订购单客户号AND 订购日期 IS NULL B.SELECT 名称,联系人,电话号码,订单号 FROM 客户,订购单 WHERE 客户客户号=订购单客户号AND 订购日期=NULLC.SELECT
37、 名称,联系人,电话号码,订单号 FROM 客户,订购单 FOR客户客户号=订购单客户号AND 订购日期 IS NULLD.SELCT 名称,联系人,电话号码,订单号 FROM 客户,订购单 FOR客户客户号=订购单客户号 AND 订购日期=NULL解析:解析:在 SQL SELECT 查询语句中,用 WHERE 说明查询条件。在表中尚未确定的值用 NULL 值表示,而 SQL 中查询空值时要用 IS NULL,不能用“=”。5.使用如下关系: 客户(客户号,名称,联系人,邮政编码,电话号码) 产品(产品号,名称,规格说明,单价) 订购单(订单号,客户号,订购日期) 订购单明细(订单号,序号,
38、产品号,数量) 假设客户表中有客户号(关键字)C1C10 共 10 条客户记录,订购单表有订单号(关键字)OR1OR8 共 8 条订购单记录,并且订购单表参照客户表。如下命令可以正确执行的是(分数:2.00)A.INSERT INTO 订购单 VALUES(OR5,C5,20081010)B.INSERT INTO 订购单 VALUES(OR5,C11,20081010)C.INSERT INTO 订购单 VALUES(OR9,C11,20081010)D.INSERT INTO 订购单 VALUES(OR9,C5,20081010) 解析:解析:实体完整性是保证表中记录惟一的特性。即一个表中
39、不允许有重复的记录。由于订购单表中已经存在 OR1OR8 的订单号,所以选项 A 和选项 B 的订单号 OR5 不可以进行插入操作。参照完整性是指当插入、删除或修改一个表中的数据时,通过参照引用相互关联的另一个表中的数据,来检查对表的数据操作是否正确。由于选项 C 中的客户号 C11 在客户表中并不存在,所以选项 C 也不可以进行插入操作。因此正确的答案是 D。6.基于学生表 S 和学生选课表 SC 两个数据表,它们的结构如下: S(学号,性别,年龄)其中学号、姓名和性别为 C 型字段,年龄为 N 型字段。 SC(学号,课程号,成绩),其中学号和课程号为 C 型字段,成绩为 N 型字段(初始为
40、空值)。查询学生选修课程成绩小于 60 分的学号,正确的 SQL 语句是(分数:2.00)A.SELECT DISTINCT 学号 FROM SC WHERE 成绩60B.SELECT DISTINCT 学号 FROM SC WHERE 成绩60C.SELECT DISTINCT 学号 FROM SC WHERE 成绩60 D.SELECT DISTINCT 学号 FROM SC WHERE 成绩60解析:解析:题目要求查询学生选修课程成绩小于 60 分的学号,要查询的字段是学号字段,条件是成绩字段的值小于 60 分,学号和成绩字段在 SC 表中,所以查询应基于 SC 表进行,字段即字段变量是
41、变量名,不需要加双引号,所以排除 A、D 选项。成绩字段为 N 型字段,即为数值型为数据,不需要加任何的定界符,所以选项 B 也是不正确的,正确的 SQL 语句是 SELECT DISTINCT 学号 FROM SC WHERE 成绩60,即选项 C。7.基于学生表 S 和学生选课表 SC 两个数据表,它们的结构如下: S(学号,性别,年龄)其中学号、姓名和性别为 C 型字段,年龄为 N 型字段。 SC(学号,课程号,成绩),其中学号和课程号为 C 型字段,成绩为 N 型字段(初始为空值)。查询成绩在 70 分至 85 分之间学生的学号、课程号和成绩,正确的 SQL 语句是(分数:2.00)A
42、.SELECT 学号,课程号,成绩 FROM sc WHERE 成绩 BETWEEN 70 AND 85 B.SELECT 学号,课程号,成绩 FROM sc WHERE 成绩=70 OR 成绩=85C.SELECT 学号,课程号,成绩 FROM sc WHERE 成绩=70 OR=85D.SELECT 学号,课程号,成绩 FROM sc WHERE 成绩=70 AND=85解析:解析:SQL SELECT 语句中使用特殊运算符包括 BETWEEN NumberA AND NumberB,该运算符表示该查询的条件是在 NumberA 与 NumberB 之内,相当于用 AND 连接的一个逻辑表
43、达式。8.基于学生表 S 和学生选课表 SC 两个数据表,它们的结构如下: S(学号,性别,年龄)其中学号、姓名和性别为 C 型字段,年龄为 N 型字段。 SC(学号,课程号,成绩),其中学号和课程号为 C 型字段,成绩为 N 型字段(初始为空值)。查询有选课记录,但没有考试成绩的学生的学号和课程号,正确的 SQL 语句是(分数:2.00)A.SELECT 学号,课程号 FROM sc WHERE 成绩=B.SELECT 学号,课程号 FROM sc WHERE 成绩=NULLC.SELECT 学号,课程号 FROM sc wHERE 成绩 IS NULL D.SELECT 学号,课程号 FR
44、OM sc WHERE 成绩解析:解析:“没有考试成绩”表示成绩字段值为空,而表示空值时应该用“is null”而不能用“=”,故选项 C 正确。9.与“SELECT*FROM 教师表 INTO BDF A”等价的语句是(分数:2.00)A.SELECT*FROM 教师表 TO DBF AB.SELECT*FROM 教师表 TO TABLE AC.SELECT*FROM 教师表 INTO TABLE A D.SELECT*FROM 教师表 INTO A解析:解析:在 select 语句中使用 INTO DBFTABLE TableName 可以将查询的结果存放到永久表中(dbf 文件)。与题目
45、含义相同应该是选项 C。10.查询“教师表”的全部记录并存储于临时文件 onedbf 中的 SQL 命令是(分数:2.00)A.SELECT*FROM 教师表 INTO CURSOR one B.SELECT*FROM 教师表 TO CURSOR oneC.SEI+ECT*FROM 教师表 INTO CURSOR DBF oneD.SELECT*FROM 教师表 TO CURSOR DBF one解析:解析:在 SQL 语句中,将查询结果保存在临时表中应使用短语 INTO CURSOR。所以选项 A 为正确答案。11.基于图书表、读者和借阅表三个数据库表,它们的结构如下: 图书(图书编号,书名
46、,第一作者,出版社):图书编号、书名、第一作者和出版社为 C 型字段,图书编号为主关键字; 读者(借书证号,单位,姓名,职称):借书证号、单位、姓名、职称为 C 型字段,借书证号为主关键字; 借阅(借书证号,图书编号,借书日期,还书日期):借书证号和图书编号为 C 型字段,借书日期和还书日期为 D 型字段,还书日期默认值为 NULL,借书证号和图书编号共同构成主关键字。 查询第一作者为“张三“的所有书名及出版社,正确的 SQL 语句是(分数:2.00)A.SELECT 书名,出版社 FROM 图书 WHERE 第一作者=张三B.SELECT 书名,出版社 FROM 图书 WHERE 第一作者=
47、张三 C.SELECT 书名,出版社 FROM 图书 WHERE第一作者=张三D.SELECT 书名,出版社 FROM 图书 WHERE第一作者=张三解析:解析:本题考察的知识点是 SQL 查询,在 SQL 语句中,字段名不需要加引号,字段的取值则需要加引号。所以本题答案为 B。12.基于图书表、读者和借阅表三个数据库表,它们的结构如下: 图书(图书编号,书名,第一作者,出版社):图书编号、书名、第一作者和出版社为 C 型字段,图书编号为主关键字; 读者(借书证号,单位,姓名,职称):借书证号、单位、姓名、职称为 C 型字段,借书证号为主关键字; 借阅(借书证号,图书编号,借书日期,还书日期)
48、:借书证号和图书编号为 C 型字段,借书日期和还书日期为 D 型字段,还书日期默认值为 NULL,借书证号和图书编号共同构成主关键字。 查询尚未归还的图书编号和借书日期,正确的 SQL 语句是(分数:2.00)A.SELECT 图书编号,借书日期 FROM 借阅 WHERE 还书日期=B.SELECT 图书编号,借书日期 FROM 借阅 WHERE 还书日期=NULLC.SELECT 图书编号,借书日期 FROM 借阅 WHERE 还书日期 IS NULL D.SELECT 图书编号,借书日期 FROM 借阅 WHERE 还书日期解析:解析:本题考察的知识点是 SQL 查询。由于还书日期默认为空,一旦读者归还了图书,则还书日期就不再为空,所以可以通过还书日期是否为空来判断是否已还书,而判断字段是否为空用 is