1、国家二级 VF 机试(关系数据库标准语言 SQL)模拟试卷 22 及答案解析(总分:56.00,做题时间:90 分钟)一、选择题(总题数:28,分数:56.00)1.使用如下关系:客户(客户号,名称,联系人,邮政编码,电话号码)产品(产品号,名称,规格说明,单价)订购单(订单号,客户号,订购日期)订购单明细(订单号,序号,产品号,数量)查询尚未最后确定订购单的有关信息的正确命令是(分数:2.00)A.SELECT 名称,联系人,电话号码,订单号 FROM 客户,订购单 WHERE 客户客户号=订购单客户号 AND 订购日期 IS NULLB.SELECT 名称,联系人,电话号码,订单号 FRO
2、M 客户,订购单 WHERE 客户客户号=订购单客户号 AND 订购日期=NULLC.SELECT 名称,联系人,电话号码,订单号 FROM 客户,订购单 FOR 客户客户号=订购单客户号 AND 订购日期 IS NULLD.SELECT 名称,联系人,电话号码,订单号 FROM 客户,订购单 FOR 客户客户号=订购单客户号 AND 订购日期=NULL2.与“SELECT*FROM 教师表 INTO BDF A”等价的语句是(分数:2.00)A.SELECT*FROM 教师表 To DBF AB.SELECT*FROM 教师表 To TABLE AC.SELECT*FROM 教师表 INTO
3、 TABLE AD.SELECT*FROM 教师表 INTO A3.使用如下三个数据库表:学生表:student(学号,姓名,性别,出生日期,院系)课程表:course(课程号,课程名,学时)选课成绩表:score(学号,课程号,成绩)其中出生日期的数据类型为日期型,学时和成绩为数值型,其他均为字符型。查询“计算机系”学生的学号、姓名、学生所选课程的课程名和成绩,正确的命令是(分数:2.00)A.SELECT s学号,姓名,课程名,成绩 FROM student s,score sc,course c WHERE s学号=sc学号,sc课程号=c课程号,院系=计算机系B.SELECT s学号,
4、姓名,课程名,成绩 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学号=sc学号 JOIN course c ON sc课程号=c课程号 WHERE 院系=计算机系4.使用如
5、下三个数据库表:图书(索书号,书名,出版社,定价,ISBN)借书证(借书证号,姓名,性别,专业,所在单位)借书记录(借阅号,索书号,借书证号,借书日期,还书目期)其中:定价是货币型,借书日期和还书日期是日期型,其他是字符型。查询所有借阅过“中国出版社”图书的读者的姓名和所在单位(分数:2.00)A.SELECT 姓名,所在单位 FORM 借书证,图书,借书记录 WHERE 图书索引号=借书记录索书号 AND 借书证借书证号=借书记录借书证号 AND 出版社:“中国出版社“B.SELECT 姓名,所在单位 FORM 借书证,图书 WHERE 图书索引号=借书证借书证号 AND 出版社=“中国出版
6、社“C.SELECT 姓名,所在单位 FORM 借书记录,图书 WHERE 图书索引号=借书记录索书号 AND 出版社=“中国出版社“D.SELECT 姓名,所在单位 FORM 借书证,借书记录 WHERE 借书证借书证号=借书记录借书证号 AND 出版社=“中国出版社“5.查询单价在 600 元以上的主机板和硬盘的正确命令是(分数:2.00)A.SELECT*FROM 产品 WHERE 单价600 AND(名称=主机板AND 名称=硬盘)B.SELECT*FROM 产品 WHERE 单价600 AND(名称=主机板OR 名称=硬盘)C.SELECT*FROM 产品 FOR 单价600 AND
7、(名称=主机板AND 名称=硬盘)D.SELECT*FROM 产品 FOR 单价600 AND(名称=主机板OR 名称=硬盘)6.查询所有 1982 年 3 月 20 日以后(含)出生、性别为男的学生,正确的 SQL 语句是(分数:2.00)A.SELECT*FROM 学生 WHERE 出生日期=1982-03-20ANO 性别=“男“B.SELECT*FROM 学生 WHERE 出生日期=1982-03-20AND 性别=“男“C.SELECT*FROM 学生 WHERE 出生日期=1982-03-20OR 性别=“男“D.SELECT*FROM 学生 WHERE 出生日期=1982-03-
8、20OR 性别=“男“7.下列关于 SELECT 短语的描述中错误的是(分数:2.00)A.SELECT 短语中可以使用别名B.SELECT 短语中只能包含表中的列及其构成的表达式C.SELECT 短语规定了结果集中的列顺序D.如果 FROM 短语引用的两个表有同名的列,则 SELECT 短语引用它们时必须使用表名前缀加以限定8.在 SQL 的 SELECT 查询的结果中,消除重复记录的方法是(分数:2.00)A.通过指定主索引实现B.通过指定惟一索引实现C.使用 DISTINCT 短语实现D.使用 WHERE 短语实现9.假设“订单”表中有订单号、职员号、客户号和金额字段,正确的 SQL 语
9、句只能是(分数:2.00)A.SELECT 职员号 FROM 订单;GROUP BY 职员号 HAVING COUNT(*)3 AND AVG_金额200B.SELECT 职员号 FROM 订单;GROUP BY 职员号 HAVING COUNT(*)3 AND AVG(金额)200C.SELECT 职员号 FROM 订单;GROUP BY 职员号 HAVING COUNT(*)3 WHERE AVG(金额)200D.SELECT 职员号 FROM 订单;GROUP BY 职员号 WHERE COUNT(*)3 AND AVG_金额20010.SQL 的 SELECT 语句中,“HAVING”
10、用来筛选满足条件的(分数:2.00)A.列B.行C.关系D.分组11.查询有选课记录,但没有考试成绩的学生的学号和课程号,正确的 SQL 语句是(分数:2.00)A.SELECT 学号,课程号 FROM sc WHERE 成绩=“B.SELECT 学号,课程号 FROM sc WHERE 成绩=NULLC.SELECT 学号,课程号 FROM sc WHERE 成绩 IS NULLD.SELECT 学号,课程号 FROM sc WHERE 成绩12.与“SELECT*FROM 教师表 INTO DBF A”等价的语句是(分数:2.00)A.SELECT*FROM 教师表 TO DBF AB.S
11、ELECT*FROM 教师表 TO TABLE AC.SELECT*FROM 教师表 INTO TABLE AD.SELECT*FROM 教师表 INTO A13.查询第一作者为“张三”的所有书名及出版社,正确的 SQL 语句是(分数:2.00)A.SELECT 书名,出版社 FROM 图书 WHERE 第一作者=张三B.SELECT 书名,出版社 FROM 图书 WHERE 第一作者=“张三“C.SELECT 书名,出版社 FROM 图书 WHERE“第一作者“=张三D.SELECT 书名,出版社 FROM 图书 WHERE“第一作者“=“张三“14.查询在“北京”和“上海”区域的商店信息的
12、正确命令是(分数:2.00)A.SELECT*FROM 商店 WHERE 区域名=北京AND 区域名=上海B.SELECT*FROM 商店 WHERE 区域名=北京OR 区域名=上海C.SELECT*FROM 商店 WHERE 区域名=北京AND上海D.SELECT*FROM 商店 WHERE 区域名=北京OR上海15.SQL 查询命令的结构是 SELECTFROMWHEREGROUPBYHAVINGORDERBY,其中 HAVING 必须配合使用的短语是(分数:2.00)A.FROMB.GROUPBYC.WHERED.ORDER BY16.查询 2009 年被借过书的图书编号和借书日期,正确
13、的 SQL 语句是(分数:2.00)A.SELECT 图书编号,借书日期 FROM 借阅 WHERE 借书日期=2009B.SELECT 图书编号,借书日期 FROM 借阅 WHERE year(借书日期)=2009C.SELECT 图书编号,借书日期 FROM 借阅 WHERE 借书日期=year(2009)D.SELECT 图书编号,借书日期 FROM 借阅 WHERE year(借书日期)=year(2009)17.当前盘当前目录下有数据库:大奖赛dbc,其中有数据库表“歌手dbf”、“评分dbf”。(分数:2.00)A.ALTER TABLE 歌手 ADD 最后得分 F(6,2)B.A
14、LTER DBE 歌手 ADD 最后得分 F6,2C.CHANGE TABLE 歌手 ADD 最后得分 F(6,2)D.CHANGE TABLE 学院 INSERT 最后得分 F(6,2)18.基于学生表 S 和学生选课表 SC 两个数据表,它们的结构如下:S(学号,性别,年龄)其中学号、姓名和性别为 C 型字段,年龄为 N 型字段。SC(学号,课程号,成绩),其中学号和课程号为 C 型字段,成绩为、N 型字段(初始为空值)。查询学生表 S 的全部记录并存储于临时表文件 one 中的 SQL 命令是(分数:2.00)A.SELECT*FEOM 学生表 INTO CURSOR oneB.SELE
15、CT*FEOM 学生表 TO CURSOR oneC.SELECT*FEOM 学生表 INTO CURSOR DBF oneD.SELECT*FEOM 学生表 TO CURSOR DBF one19.以下不属于 SQL 数据操作的语句是(分数:2.00)A.UPDATEB.INSERTC.APPENDD.DELETE20.设有关系 sf(syo,CNO,GRADE),其中,SNO、CNO 分别表示学号和课程号(两者均为字符型),GRADE表示成绩(数值型),若要把学号为“S101”的同学,选修课程号为“C11”,成绩为 98 分的记录插入到表SC 中,正确的语句是(分数:2.00)A.INSE
16、RT INTO SC(SNO,CNO,GRADE)VALUES(S101,C11,98)B.INSERT INTO SC(SNO,CNO,GRADE)VALUES(S101,C11,98)C.INSERT(S101,C11,98)INTO SCD.INSERT INTO SC VALUES(S101,C11,98)21.从“订单”表中删除签订日期为 2004 年 1 月 10 日之前(含)的订单记录,正确的 SQL 语句是(分数:2.00)A.DROP FROM 订单 WHERE 签订日期=2004-1-10B.DROP FROM 订单 FOR 签订日期=2004-1-10C.DELETE F
17、ROM 订单 WHERE 签订日期=2004-1-10D.DELETE FROM 订单 FOR 签订日期=2004-1-1022.正确的 SQL 插入命令的语法格式是(分数:2.00)A.INSERT INVALUESB.INSERT TOVALUESC.INSERT INTOVALUESD.INSERTVALUES23.使用 SQL 语句将学生表 S 中年龄(AGE)大于 30 岁的记录删除,正确的命令是(分数:2.00)A.DELETE FOR AGE30B.DELETE FROM S WHERE AGE30C.DELETE S FOR AGE30D.DELETE S WHERE AGE3
18、024.将表结构为(职工号,姓名,工资)的表 Employee 中所有职工的工资增加 20,正确的 SQL 命令是(分数:2.00)A.CHANGE Employee SET 工资=工资*12B.CHANGE Employee SET 工资 WITH 工资*12C.UPDATE Employee SET 工资=工资*12D.UPDATE Employee SET 工资 WITH 工资*1225.为“运动员”表增加一个字段“得分”的 SQL 语句是(分数:2.00)A.CHANGE TABLE 运动员 ADD 得分 1B.ALTER DATA 运动员 ADD 得分 1C.ALTER TABLE
19、运动员 ADD 得分 1D.CHANGE TABLE 运动员 INSERT 得分 126.根据“产品”表建立视图 myview,视图中含有包括了“产品号”左边第一位是“1”的所有记录,正确的 SQL 命令是(分数:2.00)A.CREATE VIEW myview AS SELECT*FROM 产品 WHERE LEFT(产品号,1)=“1“B.CREATE VIEW myviewAS SELECT*FROM 产品 WHERE LIKE(“1“,产品号)C.CREATE VIEW myview SELECT*FROM 产品 WHERE LEFT(产品号,1)=“1“D.CREATE VIEW
20、myview SELECT*FROM 产品 WHERE LIKE(“1“,产品号)27.创建一个表,使用的 SQL 命令是(分数:2.00)A.CREATE LISTB.CREATE DATEBASEC.CREATE TABLED.CREATE INDEX28.为 Employee 表增加一个字段“出生日期”,正确的 SQL 语句是(分数:2.00)A.CHANGE TABLE Employee ADD 出生日期 DB.ALTER DBF Employee ADD 出生日期 DC.ALTER TABLE Employee ADD 出生日期 DD.CHANGE TABLE Employee IN
21、SERT 出生日期 D国家二级 VF 机试(关系数据库标准语言 SQL)模拟试卷 22 答案解析(总分:56.00,做题时间:90 分钟)一、选择题(总题数:28,分数:56.00)1.使用如下关系:客户(客户号,名称,联系人,邮政编码,电话号码)产品(产品号,名称,规格说明,单价)订购单(订单号,客户号,订购日期)订购单明细(订单号,序号,产品号,数量)查询尚未最后确定订购单的有关信息的正确命令是(分数:2.00)A.SELECT 名称,联系人,电话号码,订单号 FROM 客户,订购单 WHERE 客户客户号=订购单客户号 AND 订购日期 IS NULL B.SELECT 名称,联系人,电
22、话号码,订单号 FROM 客户,订购单 WHERE 客户客户号=订购单客户号 AND 订购日期=NULLC.SELECT 名称,联系人,电话号码,订单号 FROM 客户,订购单 FOR 客户客户号=订购单客户号 AND 订购日期 IS NULLD.SELECT 名称,联系人,电话号码,订单号 FROM 客户,订购单 FOR 客户客户号=订购单客户号 AND 订购日期=NULL解析:解析:在 SQL SELECT 查询语句中,用 WHERE 说明查询条件。在表中尚未确定的值用。NULL 值表示,而 SQL 中查询空值时要用 IS NULL,不能用“=”。2.与“SELECT*FROM 教师表 I
23、NTO 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 DBF|TABLE TableName 可以将查询的结果存放到永久表中(dbf文件)。与题目含义相同应该是选项 C)。3.使用如下三个数据库表:学生表:student(学号,姓名,性别,出生日期,院系)课程表:course(课程号,课程名,学时)选课成绩表:score(学号,课程
24、号,成绩)其中出生日期的数据类型为日期型,学时和成绩为数值型,其他均为字符型。查询“计算机系”学生的学号、姓名、学生所选课程的课程名和成绩,正确的命令是(分数:2.00)A.SELECT s学号,姓名,课程名,成绩 FROM student s,score sc,course 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 (
25、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学号=sc学号 JOIN course c ON sc课程号=c课程号 WHERE 院系=计算机系解析:解析:本题考察的知识点是 SQL,连接查询。本题三个表格均使用到了,所以需要两个连接条件,选项 A)使用 WHERE 引出连接条件,但是多个条件间没有使用 AND 连接,选项 B)和选项 D)没有指明“学号”字段选自哪些表格。所
26、以选项 C)为正确答案。4.使用如下三个数据库表:图书(索书号,书名,出版社,定价,ISBN)借书证(借书证号,姓名,性别,专业,所在单位)借书记录(借阅号,索书号,借书证号,借书日期,还书目期)其中:定价是货币型,借书日期和还书日期是日期型,其他是字符型。查询所有借阅过“中国出版社”图书的读者的姓名和所在单位(分数:2.00)A.SELECT 姓名,所在单位 FORM 借书证,图书,借书记录 WHERE 图书索引号=借书记录索书号 AND 借书证借书证号=借书记录借书证号 AND 出版社:“中国出版社“ B.SELECT 姓名,所在单位 FORM 借书证,图书 WHERE 图书索引号=借书证
27、借书证号 AND 出版社=“中国出版社“C.SELECT 姓名,所在单位 FORM 借书记录,图书 WHERE 图书索引号=借书记录索书号 AND 出版社=“中国出版社“D.SELECT 姓名,所在单位 FORM 借书证,借书记录 WHERE 借书证借书证号=借书记录借书证号 AND 出版社=“中国出版社“解析:解析:从数据表中可以看出,所要查询的字段包括“姓名”和“所在单位”两个字段,这两个字段都属性“借书证”表,查询条件是所有人借阅过“中国出版社”图书的读者姓名和所在单位,又涉及到了“出版社”字段,此字段属性“图书”表,那么能不能就从“借书证”表和“图书”表这两个表中查询呢,不可以的,因为
28、这两个表没有一个公共字段用以建立两表之间的联系,所以要借用第三张表“借书记录”中的字段建立联系,也就是要通过这三个表建立查询,故选项 A)正确。5.查询单价在 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 AND(名称=主机板OR 名称=硬盘)
29、解析:解析:SQL SELECT 查询语句的基本语法是:selectfromwhere,用 where 子句说明查询条件,而在条件中 and 比 or 运算符的优先级高,所以(名称=“主机板“or 名称=“硬盘“)要加上括号。6.查询所有 1982 年 3 月 20 日以后(含)出生、性别为男的学生,正确的 SQL 语句是(分数:2.00)A.SELECT*FROM 学生 WHERE 出生日期=1982-03-20ANO 性别=“男“ B.SELECT*FROM 学生 WHERE 出生日期=1982-03-20AND 性别=“男“C.SELECT*FROM 学生 WHERE 出生日期=1982
30、-03-20OR 性别=“男“D.SELECT*FROM 学生 WHERE 出生日期=1982-03-20OR 性别=“男“解析:解析:题干中要求查询日期和性别同时满足给定条件的记录,要使两个条件同时成立,用 AND 进行连接,表达式是:出生日期=1982-03-20AND 性别=“男“,而 OR 表示的是或运算,即满足连接条件中的任意一个即可,与题目要求不符。7.下列关于 SELECT 短语的描述中错误的是(分数:2.00)A.SELECT 短语中可以使用别名B.SELECT 短语中只能包含表中的列及其构成的表达式 C.SELECT 短语规定了结果集中的列顺序D.如果 FROM 短语引用的两
31、个表有同名的列,则 SELECT 短语引用它们时必须使用表名前缀加以限定解析:解析:SELECT 查询命令的使用非常灵活,用它可以构造各种各样的查询。SQL 查询语句可以从表中指定不同字段输出,指定字段的输出次序,即列的次序可以重新排列,不需要与原数据表一致。SOL 的查询子句可以包含表中的表达式以及表的别名。如果 FROM 短语中引用的两个表有同名的列,则 SELECT 短语引用它们时必须使用表名前缀加以限定。8.在 SQL 的 SELECT 查询的结果中,消除重复记录的方法是(分数:2.00)A.通过指定主索引实现B.通过指定惟一索引实现C.使用 DISTINCT 短语实现 D.使用 WH
32、ERE 短语实现解析:解析:本题考查 SQL 查询的几个特殊选项。在 SOL-SELECT 语句中,DISTINCT 关键词用于消除查询结果中的重复记录。9.假设“订单”表中有订单号、职员号、客户号和金额字段,正确的 SQL 语句只能是(分数:2.00)A.SELECT 职员号 FROM 订单;GROUP BY 职员号 HAVING COUNT(*)3 AND AVG_金额200B.SELECT 职员号 FROM 订单;GROUP BY 职员号 HAVING COUNT(*)3 AND AVG(金额)200 C.SELECT 职员号 FROM 订单;GROUP BY 职员号 HAVING CO
33、UNT(*)3 WHERE AVG(金额)200D.SELECT 职员号 FROM 订单;GROUP BY 职员号 WHERE COUNT(*)3 AND AVG_金额200解析:解析:SQL 查询语句中使用 GROUP BY 短语用于对查询结果进行分组。而 HAVING 短语必须跟随GROUP BY 使用,它用来限定分组必须满足的条件,并且与 WHERE 子句不矛盾,在查询中先用 WHERE 子句限定元组。其中有 WHERE 子句时,GROUP BY 子句一般放在其后。计算平均值的函数表达式为 AVG()。10.SQL 的 SELECT 语句中,“HAVING”用来筛选满足条件的(分数:2.
34、00)A.列B.行C.关系D.分组 解析:解析:本题考查“HAVING”短语的含义。在 SOL 的 SELECT 语句中,GROUP BY分组字段 1,分组字段 2HAVING 分组限定条件,可以按一列或多列分组,还可以使用 HAVING 进一步限定分组的条件。HAVING 子句总是跟在 GROUP BY 子句之后,不可以单独使用。11.查询有选课记录,但没有考试成绩的学生的学号和课程号,正确的 SQL 语句是(分数:2.00)A.SELECT 学号,课程号 FROM sc WHERE 成绩=“B.SELECT 学号,课程号 FROM sc WHERE 成绩=NULLC.SELECT 学号,课
35、程号 FROM sc WHERE 成绩 IS NULL D.SELECT 学号,课程号 FROM sc WHERE 成绩解析:解析:查询空值时要使用 IS NULL,而=NULL 是无效的,因为空值不是一个确定的值,所以不能用“=”这样的运算符进行比较。12.与“SELECT*FROM 教师表 INTO DBF A”等价的语句是(分数:2.00)A.SELECT*FROM 教师表 TO DBF AB.SELECT*FROM 教师表 TO TABLE AC.SELECT*FROM 教师表 INTO TABLE A D.SELECT*FROM 教师表 INTO A解析:解析:使用短语 INTO D
36、BF|TABLE TableName 可以将查询结果存放到永久表中(dbf 文件)。生成的表文件是一个自由表。所以与“SELECT*FROM 教师表 INTO DBF A”等价的是“SELECT*FROM 教师表 INTO TABLE A”。13.查询第一作者为“张三”的所有书名及出版社,正确的 SQL 语句是(分数:2.00)A.SELECT 书名,出版社 FROM 图书 WHERE 第一作者=张三B.SELECT 书名,出版社 FROM 图书 WHERE 第一作者=“张三“ C.SELECT 书名,出版社 FROM 图书 WHERE“第一作者“=张三D.SELECT 书名,出版社 FROM
37、 图书 WHERE“第一作者“=“张三“解析:解析:本题考查 SELECT 语句的正确应用。要查询第一作者为“张三”的所有书名及出版社,那么书名及出版社是要查询的列,查询源是图书表,条件是第一作者为“张三”。所以应选 B。14.查询在“北京”和“上海”区域的商店信息的正确命令是(分数:2.00)A.SELECT*FROM 商店 WHERE 区域名=北京AND 区域名=上海B.SELECT*FROM 商店 WHERE 区域名=北京OR 区域名=上海C.SELECT*FROM 商店 WHERE 区域名=北京AND上海 D.SELECT*FROM 商店 WHERE 区域名=北京OR上海解析:解析:在
38、 SOL 语句中支持空值查询,用 IS NULL 表示。15.SQL 查询命令的结构是 SELECTFROMWHEREGROUPBYHAVINGORDERBY,其中 HAVING 必须配合使用的短语是(分数:2.00)A.FROMB.GROUPBY C.WHERED.ORDER BY解析:解析:在 SOL 查询中,HAVING 总是跟在 GROUP BY 之后,用来限定分组条件。16.查询 2009 年被借过书的图书编号和借书日期,正确的 SQL 语句是(分数:2.00)A.SELECT 图书编号,借书日期 FROM 借阅 WHERE 借书日期=2009B.SELECT 图书编号,借书日期 F
39、ROM 借阅 WHERE year(借书日期)=2009 C.SELECT 图书编号,借书日期 FROM 借阅 WHERE 借书日期=year(2009)D.SELECT 图书编号,借书日期 FROM 借阅 WHERE year(借书日期)=year(2009)解析:解析:根据题意,“借书日期”字段为日期型变量,用 YEAR()函数可求出“借书日期”的年份。17.当前盘当前目录下有数据库:大奖赛dbc,其中有数据库表“歌手dbf”、“评分dbf”。(分数:2.00)A.ALTER TABLE 歌手 ADD 最后得分 F(6,2) B.ALTER DBE 歌手 ADD 最后得分 F6,2C.CH
40、ANGE TABLE 歌手 ADD 最后得分 F(6,2)D.CHANGE TABLE 学院 INSERT 最后得分 F(6,2)解析:解析:修改字段属性的命令的语法格是:ALTER TABLE TableName1 ALTER FieldName2 FieldTypenFieldWidth,从 4 个候选项中可以看出,只有选项 A 是正确的。选项 C 和 D 关键字 CHANGE有误,而选项 B 用来指定表的短语 DBF 错误。18.基于学生表 S 和学生选课表 SC 两个数据表,它们的结构如下:S(学号,性别,年龄)其中学号、姓名和性别为 C 型字段,年龄为 N 型字段。SC(学号,课程号
41、,成绩),其中学号和课程号为 C 型字段,成绩为、N 型字段(初始为空值)。查询学生表 S 的全部记录并存储于临时表文件 one 中的 SQL 命令是(分数:2.00)A.SELECT*FEOM 学生表 INTO CURSOR one B.SELECT*FEOM 学生表 TO CURSOR oneC.SELECT*FEOM 学生表 INTO CURSOR DBF oneD.SELECT*FEOM 学生表 TO CURSOR DBF one解析:解析:Into cursor 短语将查询结果存放到临时表中,格式为 select*from 表名 into cursor cursomame。题目要求查
42、询学生表 S 的全部记录并存储于临时表文件 one 中,SOL 语句是 SELECT*from 学生表 INTO CURSOR one,即选项 A),其它选项语法均不正确。19.以下不属于 SQL 数据操作的语句是(分数:2.00)A.UPDATEB.INSERTC.APPEND D.DELETE解析:解析:DML(Date Manipulation Language,数据操作语言):用来插入,修改和删除数据库中的数据,如 insert,update 和 delete 等。所以答案为选项 C)。20.设有关系 sf(syo,CNO,GRADE),其中,SNO、CNO 分别表示学号和课程号(两者
43、均为字符型),GRADE表示成绩(数值型),若要把学号为“S101”的同学,选修课程号为“C11”,成绩为 98 分的记录插入到表SC 中,正确的语句是(分数:2.00)A.INSERT INTO SC(SNO,CNO,GRADE)VALUES(S101,C11,98)B.INSERT INTO SC(SNO,CNO,GRADE)VALUES(S101,C11,98)C.INSERT(S101,C11,98)INTO SCD.INSERT INTO SC VALUES(S101,C11,98) 解析:解析:Visual FoxPro 支持两种 SQL 插入格式,第一种为标准格式,第二种是 Vi
44、sual FoxPro 的特殊格式。第一种格式是:INSERT INTO表名(字段名 1,字段名 2,)VALUES(表达式 1,表达式2,)。其中,INSERT INTO表名说明向指定的表中插入记录。当插入的不是完整的记录时,可以用字段名 1,字段名 2,指定字段;VALLIES(表达式 1,表达式 2,)给出具体的记录值。本题中SNO、CNO 为字符型,所以其属性值需要加引号,而数值型数据则不需要。21.从“订单”表中删除签订日期为 2004 年 1 月 10 日之前(含)的订单记录,正确的 SQL 语句是(分数:2.00)A.DROP FROM 订单 WHERE 签订日期=2004-1-
45、10B.DROP FROM 订单 FOR 签订日期=2004-1-10C.DELETE FROM 订单 WHERE 签订日期=2004-1-10 D.DELETE FROM 订单 FOR 签订日期=2004-1-10解析:解析:SQL 从表中删除数据的命令格式是:DELETE FROM表名WHERE条件表达式。其中,FROM 指定从哪个表中删除数据。WHERE 指定被删除的记录所满足的条件,如果不使用 WHERE 子句,则表示删除该表中的全部记录。命令 DROP 的功能是删除指定的数据表。22.正确的 SQL 插入命令的语法格式是(分数:2.00)A.INSERT INVALUESB.INSE
46、RT TOVALUESC.INSERT INTOVALUES D.INSERTVALUES解析:解析:在 SQL 中用于插入记录的语法可简单表示为:INSERT INTO 表名 VALUES(插入记录各个字段值列表)。23.使用 SQL 语句将学生表 S 中年龄(AGE)大于 30 岁的记录删除,正确的命令是(分数:2.00)A.DELETE FOR AGE30B.DELETE FROM S WHERE AGE30 C.DELETE S FOR AGE30D.DELETE S WHERE AGE30解析:解析:SQL 从表中删除数据的命令格式是:DELETE FROM表名WHERE条件表达式。
47、其中,FROM 指定从哪个表中删除数据。WHERE 指定被删除的记录所满足的条件,如果不使用 WHERE 子句,则删除该表中的全部记录。24.将表结构为(职工号,姓名,工资)的表 Employee 中所有职工的工资增加 20,正确的 SQL 命令是(分数:2.00)A.CHANGE Employee SET 工资=工资*12B.CHANGE Employee SET 工资 WITH 工资*12C.UPDATE Employee SET 工资=工资*12 D.UPDATE Employee SET 工资 WITH 工资*12解析:解析:本题考查 SOL 的数据更新命令。格式如下 UPDATE T
48、ableName SET Column_Name1=eXpression1,Column_Name1=eXpression2 WHERE Condition 一般使用 WHERE 子具指定条件,以更新满足条件的一些记录的字段值,并且一次可以更新多个字段;如果不使用 WHERE 子句,则更新全部记录。 题目要求将表结构为(职工号,姓名,工资)的表 Employee 中所有职工的工资增加20,所以 SET 工资=工资*12。25.为“运动员”表增加一个字段“得分”的 SQL 语句是(分数:2.00)A.CHANGE TABLE 运动员 ADD 得分 1B.ALTER DATA 运动员 ADD 得分 1C.ALTER TABLE 运动员 ADD 得分 1 D.CHANGE TABLE 运动员 INSERT 得分 1解析:解析:在 SQL 语句中为表增加字段的格式为:ALTER TABLE表名ADD字段名,本题只有选项C)中包含 ALTER TABLE 命令关键字。26.根据“产品”表建立视图 myview,视图中含有包括了“产品号”左边第一位是“1”的所有记录,正确的 SQL 命令是