1、国家二级 VF 机试(关系数据库标准语言 SQL)模拟试卷 23 及答案解析(总分:56.00,做题时间:90 分钟)一、选择题(总题数:28,分数:56.00)1.使用如下关系:客户(客户号,名称,联系人,邮政编码,电话号码)产品(产品号,名称,规格说明,单价)订购单(订单号,客户号,订购日期)订购单明细(订单号,序号,产品号,数量)假设客户表中有客户号(关键字)C1C10 共 10 条客户记录,订购单表有订单号(关键字)OR1OR8 共 8 条订购单记录,并且订购单表参照客户表。如下命令可以正确执行的是(分数:2.00)A.INSERT INTO 订购单 VALUES(OR5,C5,200
2、81010)B.INSERT INTO 订购单 VALUES(OR5,C11,20081010)C.INSERT INTO 订购单 VALUES(OR9,C11,20081010)D.INSERT INTO 订购单 VALUES(OR9,C5,20081010)2.查询“教师表”的全部记录并存储于临时文件 onedbf 中的 SQL 命令是(分数:2.00)A.SELECT*FROM 教师表 INTO CURSOR oneB.SELECT*FROM 教师表 TO CURSOR oneC.SELECT*FROM 教师表 INTO CURSOR DBF oneD.SELECT*FROM 教师表 T
3、O CURSOR DBF one3.使用如下三个表:商店(商店号,商店名,区域名,经理名)商品(商品号,商品名,单价)销售(商店号,商品号,销售日期,销售数量)查询在“北京”和“上海”区域的商店信息的正确命令是(分数:2.00)A.SELECT*FROM 商店 WHERE 区域名=北京AND 区域名=上海B.SELECT*FROM 商店 WHERE 区域名=北京OR 区域名=上海C.SELECT*FROM 商店 WHERE 区域名=北京AND上海D.SELECT*FROM 商店 WHERE 区域名=北京OR上海4.在 SQL SELECT 语句中,为了将查询结果存储到临时表,应该使用短语(分数
4、:2.00)A.TO CURSORB.INTO CURSORC.INTO DBFD.TO DBF5.查询客户名称中有“网络”二字的客户信息的正确命令是(分数:2.00)A.SELECT*FROM 客户 FOR 名称 LIKE“网络“B.SELECT*FROM 客户 FOR 名称 =“网络“C.SELECT*FROM 客户 WHERE 名称 =“网络“D.SELECT*FROM 客户 WHERE 名称 LIKE“网络“6.使用如下数据表:学生DBF:学号(C,8),姓名(C,6),性别(C,2),出生日期(D)选课DBF:学号(C,8),课程号(C,3),成绩(N,5,1)设有学生(学号,姓名,
5、性别,出生日期)和选课(学号,课程号,成绩)两个关系,计算刘明同学选修的所有课程的平均成绩,正确的 SQL 语句是(分数:2.00)A.SELECT AVG(成绩) FROM 选课 WHERE 姓名=“刘明“B.SELECT AVG(成绩) FROM 学生,选课 WHERE 姓名=“刘明“C.SELECT AVG(成绩) FROM 学生,选课 WHERE 学生姓名=“刘明“D.SELECT AVG(成绩) FROM 学生,选课 WHERE 学生学号=选课学号 AND 姓名=“刘明“7.与“SELECT*FROM 学生 INTODBFA”等价的语句是、(分数:2.00)A.SELECT*FROM
6、 学生 INTO AB.SELECT*FROM 学生 INTO TABLE AC.SELECTFROM 学生 TO TABLE AD.SELECT*FROM 学生 TO DBF A8.假设每个歌手的“最后得分”的计算方法是:去掉一个最高分和一个最低分,取剩下分数的平均分。根据“评分”表求每个歌手的“最后得分”,并存储于表 TEMP 中,表 TEMF 中有两个字段:“歌手号”和“最后得分”,并且按最后得分降序排列,生成表 TEMP 的 SQL 语句是(分数:2.00)A.SELECT 歌手号,(COUNT(分数)-MAX(分数)-MIN(分数)(SUM(*)-2) 最后得分;FROM 评分 IN
7、TO DBF TEMP GROUP BY 歌手号 ORDER BY 最后得分 DESCB.SELECT 歌手号,(COUNT(分数)-MAX(分数)-MIN(分数)(SUM(*)-2) 最后得分;FROM 评分 INTO DBF TEMP GROUP BY 评委号 ORDER BY 最后得分 DESCC.SELECT 歌手号,(SUM(分数)-MAX(分数)-MIN(分数)(COUNT(*)-2) 最后得分;FROM 评分 INTO DBF TEMP GROUP BY 评委号 ORDER BY 最后得分 DESCD.SELECT 歌手号,(suM(分数)-MAX(分数)-MIN(分数)(COU
8、NT(*)-2) 最后得分;FROM 评分 INTO DBF TEMP GROUP BY 歌手号 ORDER BY 最后得分 DESC9.假设同一名称的产品有不同的型号和产地,则计算每种产品平均单价的 SQL 语句是(分数:2.00)A.SELECT 产品名称,AVG(单价)FROM 产品 GROUP BY 单价B.SELECT 产品名称,AVG(单价)FROM 产品 ORDER BY 单价C.SELECT 产品名称,AVG(单价)FROM 产品 ORDER BY 产品名称D.SELECT 产品名称,AVG(单价)FROM 产品 GROUP BY 产品名称10.在 Visual FoxPro
9、中,假设教师表 T(教师号,姓名,性别,职称,研究生导师)中,性别是 C 型字段,研究生导师是 L 型字段。若要查询“是研究生导师的女老师”信息,那么 SOL 语句“SELECT*FROM T WHERE逻辑表达式”中的逻辑表达式应是(分数:2.00)A.研究生导师 AND 性别 =“女“B.研究生导师 OR 性别 “女“C.性别=“女“ AND 研究生导师=FD.研究生导师=TOR 性别 = 女11.查询选修 C2 课程号的学生姓名,下列 SQL 语句中错误是(分数:2.00)A.SELECT 姓名 FROM S WHERE EXISTS(SELECT*FROM SC WHERE 学号=S学
10、号 AND 课程号=C2)B.SELECT 姓名 FROM S WHERE 学号 IN(SELECT 学号 FROM SC WHERE 课程号=C2、)C.SELECT 姓名 FROM S JOIN SC ON S学号=SC学号 WHERE 课程号=C2D.SELECT 姓名 FROM S WHERE 学号=(SELECT 学号 FROM SC WHERE 课程号=C2)12.“教师表”中有“职工号”、“姓名”、“工龄”和“系号”等字段,“学院表”中有“系名”和“系号”等字段,计算“计算机”系教师总数的命令是(分数:2.00)A.SELECT COUNT(*)FROM 教师表 INNER JO
11、IN 学院表;ON 教师表系号=学院表系号 WHERE 系名=“计算机“B.SELECT COUNT(*)FROM 教师表 INNER JOIN 学院表;ON 教师表系号=学院表系号 ORDER BY 教师表系号;HAVING 学院表系名=“计算机“C.SELECT SUM(*)FROM 教师表 INNER JOIN 学院表;ON 教师表系号=学院表系号 GROUP BY 教师表系号;HAVING 学院表系名=“计算机“D.SELECT SUM(*)FROM 教师表 INNER JOIN 学院表;ON 教师表系号=学院表系号 ORDER BY 教师表系号;HAVING 学院表系名=“计算机“1
12、3.查询尚未归还的图书编号和借书日期,正确的 SQL 语句是(分数:2.00)A.SELECT 图书编号,借书日期 FROM 借阅 WHERE 还书日期=“B.SELECT 图书编号,借书日期 FROM 借阅 WHERE 还书目期=NULLC.SELECT 图书编号,借书日期 FROM 借阅 WHERE 还书日期 IS NULLD.SELECT 图书编号,借书日期 FROM 借阅 WHERE 还书日期14.查询商品单价在 10 到 50 之间、并且日销售数量高于 20 的商品名、单价、销售日期和销售数量,查询结果按单价降序。正确命令是(分数:2.00)A.SELECT 商品名,单价,销售日期,
13、销售数量 FROM 商品 JOIN 销售 WHERE(单价 BETWEEN 10 AND 50)AND 销售数量20 ORDER BY 单价 DESCB.SELECT 商品名,单价,销售日期,销售数量 FROM 商品 JOIN 销售 WHERE(单价 BETWEEN 10AND 50)AND 销售数量20 ORDE RBY 单价C.SELECT 商品名,单价,销售日期,销售数量 FROM 商品,销售 WHERE(单价 BETWEEN 10 AND 50)AND 销售数量20 ON 商品商品号=销售商品号 ORDER BY 单价D.SELECT 商品名,单价,销售日期,销售数量 FROM 商品,
14、销售 WHERE(单价 BETWEEN 10 AND 50)AND 销售数量20 AND 商品商品号=销售商品号 ORDER BY 单价 DESC15.如果在 SQL 查询的 SELECT 短语中使用 TOP,则应该配合使用(分数:2.00)A.HAVING 短语B.GROU BY 短语C.WHERE 短语D.ORDERBY 短语16.设有读者(借书证号,单位,姓名,职称)和借阅(借书证号,图书编号,借书日期,还书日期)表,查询所有“工程师”读者借阅过的图书编号,正确的 SQL 语句是(分数:2.00)A.SELECT 图书编号 FROM 读者,借阅 WHERE 职称=“工程师“B.SELEC
15、T 图书编号 FROM 借阅 WHERE 图书编号=; (SELECT 图书编号 FROM 借阅 WHERE 职称=“工程师“)C.SELECT 图书编号 FROM 借阅 WHERE 借书证号 IN; (SELECT 借书证号 FROM 读者 WHERE 职称=“工程师“)D.SELECT 图书编号 FROM 读者,图书 WHERE 职称=“工程师“17.以下不属于 SQL 数据操作命令的是(分数:2.00)A.MODIFYB.INSERTC.UPDATED.DELETE18.基于图书表、读者和借阅表三个数据库表,它们的结构如下:图书(图书编号,书名,第一作者,出版社):图书编号、书名、第一作
16、者和出版社为 C 型字段,图书编号为主关键字;读者(借书证号,单位,姓名,职称):借书证号、单位、姓名、职称为 C 型字段,借书证号为主关键字;借阅(借书证号,图书编号,借书日期,还书日期):借书证号和图书编号为 C 型字段,借书日期和还书日期为 D 型字段,还书日期默认值为 NULL,借书证号和图书编号共同构成主关键字。查询“读者”表的所有记录并存储于临时表文件one 中的 SQL 语句是(分数:2.00)A.SELECT*FROM 读者 INTO CURSOR oneB.SELECT*FROM 读者 TO CURSOR oneC.SELECT*FROM 读者 INTO CURSOR DBF
17、 oneD.SELECT*FROM 读者 TO CURSOR one19.设有订单表 order(其中包含字段:订单号,客户号,职员号,签订日期,金额),删除 2002 年 1 月 1日以前签订的订单记录,正确的 SQL 命令是(分数:2.00)A.DELETE TABLE order WHERE 签订日期2002-1-1B.DELETE TABLE order WHILE 签订日期2002-1-1C.DELETE FROM order WHERE 签订日期2002-1-1D.DELETE FROM order WHILE 签订日期2002-1-120.在 Visual FoxPro 中,如果
18、要将学生表 S(学号,姓名,性别,年龄)的“年龄”属性删除,正确的 SOL语句是(分数:2.00)A.ALTER TABLE S DROP COLUMN 年龄B.DELETE 年龄 FROM SC.ALTER TABLE S DELETE COLUMN 年龄D.ALTER TABLE S DELETE 年龄21.SOL 的数据操作语句不包括(分数:2.00)A.INSERTB.UPDATEC.DELETED.CHANGE22.设有学生表 student(学号,姓名,性别,出生日期,院系)、课程表 course(课程号,课程名,学时、)和选课表 score(学号,课程号,成绩),删除学号为“20
19、091001”且课程号为“C1”的选课记录,正确命令是(分数:2.00)A.DELETE FROM score WHERE 课程号=C1AND 学号=20091001B.DELETE FROM score WHERE 课程号=C1OR 学号=20091001C.DELETE FORM score WHERE 课程号=C1AND 学号=20091001D.DELETE score WHERE 课程号=C1AND 学号=2009100123.在 SQL 语句中,删除一条记录采用的命令是(分数:2.00)A.INSERTB.DELETEC.UPDATED.DROP24.删除 Employee 表中职
20、工号为“19620426”的记录,正确的 SQL 语句是(分数:2.00)A.DELETE FROM Employee WHILE 职工号=“1 9620426“B.DELETE FOR Employee WHERE 职工号=“1 9620426“C.DELETE FOR Employee WHILE 职工号=“1 9620426“D.DELETE FROM Employee WHERE 职工号=“1 9620426“25.在 SQL 的 ALTERTABLE 语句中,为了增加一个新的字段应该使用短语(分数:2.00)A.CREATEB.APPENDC.COLUMND.ADD26.下列与修改表
21、结构相关的命令是(分数:2.00)A.INSERTB.ALTERC.UPDATED.CREATE27.建立一个视图 salary,该视图包括了系号和该系的平均工资两个字段,正确的 SQL 语句是(分数:2.00)A.CREATE VIEW salary AS 系号,AVG(I 资)AS 平均工资 FROM 教师 GROUP BY 系号B.CREATE VIEW salary AS SELECT 系号,AVG(I 资)AS 平均工资 FROM 教师 GROUP BY 系名C.CREATE VIEW salary SELECT 系号,AVG(工资)AS 平均工资 FROM 教师 GROUP BY
22、系号D.CREATE VIEW salaryAS SELECT 系号,AVG(工资)AS 平均工资 FROM 教师 GROUP BY 系号28.有表名为 Employee 的表结构(职工号,姓名,工资),为表 Employee 增加字段“住址”的 SQL 命令是(分数:2.00)A.ALTER DBF Employee ADD 住址 C(30)B.CHANGE DBF Employee ADD 住址 C(30)C.CHANGE TABLE Employee ADD 住址 C(30)D.ALTER TABLE Employee ADD 住址 C(30)国家二级 VF 机试(关系数据库标准语言 S
23、QL)模拟试卷 23 答案解析(总分:56.00,做题时间:90 分钟)一、选择题(总题数:28,分数:56.00)1.使用如下关系:客户(客户号,名称,联系人,邮政编码,电话号码)产品(产品号,名称,规格说明,单价)订购单(订单号,客户号,订购日期)订购单明细(订单号,序号,产品号,数量)假设客户表中有客户号(关键字)C1C10 共 10 条客户记录,订购单表有订单号(关键字)OR1OR8 共 8 条订购单记录,并且订购单表参照客户表。如下命令可以正确执行的是(分数:2.00)A.INSERT INTO 订购单 VALUES(OR5,C5,20081010)B.INSERT INTO 订购单
24、 VALUES(OR5,C11,20081010)C.INSERT INTO 订购单 VALUES(OR9,C11,20081010)D.INSERT INTO 订购单 VALUES(OR9,C5,20081010) 解析:解析:实体完整性是保证表中记录惟一的特性。即一个表中不允许有重复的记录。由于订购单表中已经存在 OR1OR8 的订单号,所以选项 A)和选项 B)的订单号 OR5 不可以进行插入操作。参照完整性是指当插入、删除或修改一个表中的数据时,通过参照引用相互关联的另一个表中的数据,来检查对表的数据操作是否正确。由于选项 C)中的客户号 C11 在客户表中并不存在,所以选项 C)也不
25、可以进行插入操作。因此正确的答案是 D)。2.查询“教师表”的全部记录并存储于临时文件 onedbf 中的 SQL 命令是(分数:2.00)A.SELECT*FROM 教师表 INTO CURSOR one B.SELECT*FROM 教师表 TO CURSOR oneC.SELECT*FROM 教师表 INTO CURSOR DBF oneD.SELECT*FROM 教师表 TO CURSOR DBF one解析:解析:在 SQL 语句中,将查询结果保存在临时表中应使用短语 INTO CURSOR。所以选项 A)为正确答案。3.使用如下三个表:商店(商店号,商店名,区域名,经理名)商品(商品
26、号,商品名,单价)销售(商店号,商品号,销售日期,销售数量)查询在“北京”和“上海”区域的商店信息的正确命令是(分数:2.00)A.SELECT*FROM 商店 WHERE 区域名=北京AND 区域名=上海B.SELECT*FROM 商店 WHERE 区域名=北京OR 区域名=上海 C.SELECT*FROM 商店 WHERE 区域名=北京AND上海D.SELECT*FROM 商店 WHERE 区域名=北京OR上海解析:解析:根据题意可知,要查询在“北京”或“上海”区域的商品信息,所以查询条件可以表示为:WHERE 区域名=“北京“OR 区域名=“上海“。4.在 SQL SELECT 语句中,
27、为了将查询结果存储到临时表,应该使用短语(分数:2.00)A.TO CURSORB.INTO CURSOR C.INTO DBFD.TO DBF解析:解析:SELECT 的查询结果可以存入临时表、永久表和数组等,使用短语 INTO CURSOR 可以将查询结果存放在临时表文件中。5.查询客户名称中有“网络”二字的客户信息的正确命令是(分数:2.00)A.SELECT*FROM 客户 FOR 名称 LIKE“网络“B.SELECT*FROM 客户 FOR 名称 =“网络“C.SELECT*FROM 客户 WHERE 名称 =“网络“D.SELECT*FROM 客户 WHERE 名称 LIKE“网
28、络“ 解析:解析:SQL SELECT 查询中有几个常用的特殊运算符,用来设置复杂的查询条件。如 like,是字符串匹配运算符,通配符“*”表示 0 个或多个字符,通配符“?”表示一个字符。6.使用如下数据表:学生DBF:学号(C,8),姓名(C,6),性别(C,2),出生日期(D)选课DBF:学号(C,8),课程号(C,3),成绩(N,5,1)设有学生(学号,姓名,性别,出生日期)和选课(学号,课程号,成绩)两个关系,计算刘明同学选修的所有课程的平均成绩,正确的 SQL 语句是(分数:2.00)A.SELECT AVG(成绩) FROM 选课 WHERE 姓名=“刘明“B.SELECT AV
29、G(成绩) FROM 学生,选课 WHERE 姓名=“刘明“C.SELECT AVG(成绩) FROM 学生,选课 WHERE 学生姓名=“刘明“D.SELECT AVG(成绩) FROM 学生,选课 WHERE 学生学号=选课学号 AND 姓名=“刘明“ 解析:解析:本题考查 select 语句的用法。要求计算刘明同学选修的所有课程的平均成绩,利用AVG()函数求得成绩字段的平均值,查询的数据源为学生和课程两个表,所以 FROM 后面要跟这两个表名。以同时满足“学生学号=选课学号”和“姓名=“刘明“”为筛选记录的条件。7.与“SELECT*FROM 学生 INTODBFA”等价的语句是、(分
30、数:2.00)A.SELECT*FROM 学生 INTO AB.SELECT*FROM 学生 INTO TABLE A C.SELECTFROM 学生 TO TABLE AD.SELECT*FROM 学生 TO DBF A解析:解析:本题考查查询结果的去向。若在 SELECT 语句中使用 INTO DBF|TABLE表名短语,则可以将查询的结果存放到表中,该表是自由表。8.假设每个歌手的“最后得分”的计算方法是:去掉一个最高分和一个最低分,取剩下分数的平均分。根据“评分”表求每个歌手的“最后得分”,并存储于表 TEMP 中,表 TEMF 中有两个字段:“歌手号”和“最后得分”,并且按最后得分降
31、序排列,生成表 TEMP 的 SQL 语句是(分数:2.00)A.SELECT 歌手号,(COUNT(分数)-MAX(分数)-MIN(分数)(SUM(*)-2) 最后得分;FROM 评分 INTO DBF TEMP GROUP BY 歌手号 ORDER BY 最后得分 DESCB.SELECT 歌手号,(COUNT(分数)-MAX(分数)-MIN(分数)(SUM(*)-2) 最后得分;FROM 评分 INTO DBF TEMP GROUP BY 评委号 ORDER BY 最后得分 DESCC.SELECT 歌手号,(SUM(分数)-MAX(分数)-MIN(分数)(COUNT(*)-2) 最后得
32、分;FROM 评分 INTO DBF TEMP GROUP BY 评委号 ORDER BY 最后得分 DESCD.SELECT 歌手号,(suM(分数)-MAX(分数)-MIN(分数)(COUNT(*)-2) 最后得分;FROM 评分 INTO DBF TEMP GROUP BY 歌手号 ORDER BY 最后得分 DESC 解析:解析:SQL 具备计算方式的检索,通过计数函数 COUNT()可以得到评委的人数,歌手平均分的计算应该是“评委总数-2”,即 COUNT(*)-2,而 SUM()函数用于求和,所以排除选项 A)和 B)。因为是计算歌手的平均分,应该按歌手号进行分组,使用 GROUP
33、 BY 短语可以对记录进行分组。9.假设同一名称的产品有不同的型号和产地,则计算每种产品平均单价的 SQL 语句是(分数:2.00)A.SELECT 产品名称,AVG(单价)FROM 产品 GROUP BY 单价B.SELECT 产品名称,AVG(单价)FROM 产品 ORDER BY 单价C.SELECT 产品名称,AVG(单价)FROM 产品 ORDER BY 产品名称D.SELECT 产品名称,AVG(单价)FROM 产品 GROUP BY 产品名称 解析:解析:SQL 查询语句中使用 GROUP BY 短语对查询结果进行分组。其中,有 WHERE 子句时,GROUP BY 子句一般放在
34、其后。计算平均值的函数表达式为 AvG()。10.在 Visual FoxPro 中,假设教师表 T(教师号,姓名,性别,职称,研究生导师)中,性别是 C 型字段,研究生导师是 L 型字段。若要查询“是研究生导师的女老师”信息,那么 SOL 语句“SELECT*FROM T WHERE逻辑表达式”中的逻辑表达式应是(分数:2.00)A.研究生导师 AND 性别 =“女“ B.研究生导师 OR 性别 “女“C.性别=“女“ AND 研究生导师=FD.研究生导师=TOR 性别 = 女解析:解析:根据题意,查询应该同时满足两个条件,即“研究生导师”和“女老师”,两个条件应该用AND 连接,故选项 B
35、)和选项 C)错误;由于“研究生导师”字段是逻辑型,对应表达式应写为“研究生导师=T”或者“研究生导师”。11.查询选修 C2 课程号的学生姓名,下列 SQL 语句中错误是(分数:2.00)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 课程号=C2D.SELECT 姓名 FROM S W
36、HERE 学号=(SELECT 学号 FROM SC WHERE 课程号=C2) 解析:解析:选项 A)中,使用 EXISTS 谓词来检查子查询中是否有结果返回,它的查询过程是:首先在外查询中,从 S 表中取出第一条记录,再在内查询中,针对该记录,在 SC 表中逐条记录判断是否存在符合where 条件(即“选修 C2 课程号的学生”)的记录,如果存在,则从外查询的 S 表中查找出该记录对应的“姓名”值;然后依次类推,从 S 表中取出第二条记录,在内查询中与 SC 表中的所有记录进行比较,直到将 S 表中的所有记录都处理完毕。选项 B)是嵌套查询,先在内查询中从 SC 表中获得选修了 C2 课程
37、号的学生的“学号”,再在外查询中从 S 表中查找出这些“学号”对应学生的“姓名”,由于选修了 C2 课程号的学生可能不止一个,因此在内查询中获得的“学号”是一个集合,因此应该使用运算符 IN。 选项C)是联接查询,将 S 表和 SC 表以“学号”字段相等为条件进行联接,查找出选修了 C2 课程号的学生。12.“教师表”中有“职工号”、“姓名”、“工龄”和“系号”等字段,“学院表”中有“系名”和“系号”等字段,计算“计算机”系教师总数的命令是(分数:2.00)A.SELECT COUNT(*)FROM 教师表 INNER JOIN 学院表;ON 教师表系号=学院表系号 WHERE 系名=“计算机
38、“ B.SELECT COUNT(*)FROM 教师表 INNER JOIN 学院表;ON 教师表系号=学院表系号 ORDER BY 教师表系号;HAVING 学院表系名=“计算机“C.SELECT SUM(*)FROM 教师表 INNER JOIN 学院表;ON 教师表系号=学院表系号 GROUP BY 教师表系号;HAVING 学院表系名=“计算机“D.SELECT SUM(*)FROM 教师表 INNER JOIN 学院表;ON 教师表系号=学院表系号 ORDER BY 教师表系号;HAVING 学院表系名=“计算机“解析:解析:由于题意中要求计算系名为“计算机”的教师总数,所以 SQL
39、 语句的 WHERE 子句应该为WHERE 系名=“计算机”,所以正确的是选项 A)。13.查询尚未归还的图书编号和借书日期,正确的 SQL 语句是(分数:2.00)A.SELECT 图书编号,借书日期 FROM 借阅 WHERE 还书日期=“B.SELECT 图书编号,借书日期 FROM 借阅 WHERE 还书目期=NULLC.SELECT 图书编号,借书日期 FROM 借阅 WHERE 还书日期 IS NULL D.SELECT 图书编号,借书日期 FROM 借阅 WHERE 还书日期解析:解析:在 SQL 语句中,空值查询用 IS NuLL。14.查询商品单价在 10 到 50 之间、并
40、且日销售数量高于 20 的商品名、单价、销售日期和销售数量,查询结果按单价降序。正确命令是(分数:2.00)A.SELECT 商品名,单价,销售日期,销售数量 FROM 商品 JOIN 销售 WHERE(单价 BETWEEN 10 AND 50)AND 销售数量20 ORDER BY 单价 DESCB.SELECT 商品名,单价,销售日期,销售数量 FROM 商品 JOIN 销售 WHERE(单价 BETWEEN 10AND 50)AND 销售数量20 ORDE RBY 单价C.SELECT 商品名,单价,销售日期,销售数量 FROM 商品,销售 WHERE(单价 BETWEEN 10 AND
41、 50)AND 销售数量20 ON 商品商品号=销售商品号 ORDER BY 单价D.SELECT 商品名,单价,销售日期,销售数量 FROM 商品,销售 WHERE(单价 BETWEEN 10 AND 50)AND 销售数量20 AND 商品商品号=销售商品号 ORDER BY 单价 DESC 解析:解析:可以用 JOINON语法进行超连结查询,也可以用 WHERE 直接表示数据表连接条件。ORDER BY 短语表示排序,DESC 短语表示降序。15.如果在 SQL 查询的 SELECT 短语中使用 TOP,则应该配合使用(分数:2.00)A.HAVING 短语B.GROU BY 短语C.W
42、HERE 短语D.ORDERBY 短语 解析:解析:TOP 表示排序后满足条件的前几条记录。所以需要和 ORDER BY 同时使用。16.设有读者(借书证号,单位,姓名,职称)和借阅(借书证号,图书编号,借书日期,还书日期)表,查询所有“工程师”读者借阅过的图书编号,正确的 SQL 语句是(分数:2.00)A.SELECT 图书编号 FROM 读者,借阅 WHERE 职称=“工程师“B.SELECT 图书编号 FROM 借阅 WHERE 图书编号=; (SELECT 图书编号 FROM 借阅 WHERE 职称=“工程师“)C.SELECT 图书编号 FROM 借阅 WHERE 借书证号 IN;
43、 (SELECT 借书证号 FROM 读者 WHERE 职称=“工程师“) D.SELECT 图书编号 FROM 读者,图书 WHERE 职称=“工程师“解析:解析:本题考查 SQL 的嵌套查询。嵌套查询是一类基于多个表的查询,查询的结果是出自一个表中的字段,但是查询的条件要涉及多个表。这种简单嵌套查询,可使用 IN 或 NOT IN 来判断在外层的查询条件中是否包含内层查询的结果。这里的 IN 相当于集合运算符。在选项 C)中,先在内查询中从读者表中查找出职称是“工程师”的读者的“借书证号”,然后以此为条件再在外查询中从借阅表中查找出对应的“图书编号”。17.以下不属于 SQL 数据操作命令
44、的是(分数:2.00)A.MODIFY B.INSERTC.UPDATED.DELETE解析:解析:SQL 语言是一种全面的数据库语言,包括数据查询、数据操作、数据定义和数据控制。数据操作命令是 INSERT、UPDATE、DELETE。18.基于图书表、读者和借阅表三个数据库表,它们的结构如下:图书(图书编号,书名,第一作者,出版社):图书编号、书名、第一作者和出版社为 C 型字段,图书编号为主关键字;读者(借书证号,单位,姓名,职称):借书证号、单位、姓名、职称为 C 型字段,借书证号为主关键字;借阅(借书证号,图书编号,借书日期,还书日期):借书证号和图书编号为 C 型字段,借书日期和还
45、书日期为 D 型字段,还书日期默认值为 NULL,借书证号和图书编号共同构成主关键字。查询“读者”表的所有记录并存储于临时表文件one 中的 SQL 语句是(分数:2.00)A.SELECT*FROM 读者 INTO CURSOR one B.SELECT*FROM 读者 TO CURSOR oneC.SELECT*FROM 读者 INTO CURSOR DBF oneD.SELECT*FROM 读者 TO CURSOR one解析:解析:将查询结果存放在 l 临时文件中应使用短语 INTO CURSOR CursorName 语句,其中CursorName 是临时文件名,该语句奖产生一个只读
46、的dbf 文件,当查询结束后该临时文件是当前文件。19.设有订单表 order(其中包含字段:订单号,客户号,职员号,签订日期,金额),删除 2002 年 1 月 1日以前签订的订单记录,正确的 SQL 命令是(分数:2.00)A.DELETE TABLE order WHERE 签订日期2002-1-1B.DELETE TABLE order WHILE 签订日期2002-1-1C.DELETE FROM order WHERE 签订日期2002-1-1 D.DELETE FROM order WHILE 签订日期2002-1-1解析:解析:在 SQL 语句中对表中的记录进行删除的基本格式为
47、:DELETE FROM表名WHERE条件,因为是要删除 2002 年 1 月 1 日以前签定的订单记录。20.在 Visual FoxPro 中,如果要将学生表 S(学号,姓名,性别,年龄)的“年龄”属性删除,正确的 SOL语句是(分数:2.00)A.ALTER TABLE S DROP COLUMN 年龄 B.DELETE 年龄 FROM SC.ALTER TABLE S DELETE COLUMN 年龄D.ALTER TABLE S DELETE 年龄解析:解析:SQL 定义语句中,删除属性的关键短语为 DROP,而 DELETE 命令一般用于表中的记录,从而可以排除选项 B)、选项 C
48、)和选项 D)。21.SOL 的数据操作语句不包括(分数:2.00)A.INSERTB.UPDATEC.DELETED.CHANGE 解析:解析:sQL 的数据操作功能包括数据的插入、更新和删除功能,选项 A)是数据插入,选项 B)是数据更新,选项 C)是数据删除。选项 D)是 Visual FoxPro 中表记录修改命令。22.设有学生表 student(学号,姓名,性别,出生日期,院系)、课程表 course(课程号,课程名,学时、)和选课表 score(学号,课程号,成绩),删除学号为“20091001”且课程号为“C1”的选课记录,正确命令是(分数:2.00)A.DELETE FROM score WHERE 课程号=C1AND 学号=20091001 B.DELETE FROM score WHERE 课程号=C1OR 学号=20091001C.DELETE FORM score WHERE 课程号=C1AND 学号=20091001D.DELETE score WHERE 课程号=C1AND 学号=20091001解析:解析:本题考查删除命令和与运算符。删除命令 DELETE,题目要求删除学号为“20091001”且课程号为“C1”的选课记录,所以学号字段与课程号字段之间是 and 的关系。所以