1、国家二级 VF 机试(关系数据库标准语言 SQL)模拟试卷 19 及答案解析(总分:58.00,做题时间:90 分钟)一、选择题(总题数:29,分数:58.00)1.在 Visual FoxPro 中,如下描述正确的是(分数:2.00)A.对表的所有操作,都不需要使用 USE 命令先打开表B.所有 SQL 命令对表的所有操作都不需使用 USE 命令先打开表C.部分 SQL 命令对表的所有操作都不需使用 USE 命令先打开表D.传统的 FoxPro 命令对表的所有操作都不需使用 USE 命令先打开表2.基于学生表 S 和学生选课表 SC 两个数据表,它们的结构如下:S(学号,性别,年龄)其中学号
2、、姓名和性别为 C 型字段,年龄为 N 型字段。SC(学号,课程号,成绩),其中学号和课程号为 C 型字段,成绩为 N型字段(初始为空值)。查询学生选修课程成绩小于 60 分的学号,正确的 SQL 语句是(分数:2.00)A.SELECT DISTINCT 学号 FROM SC WHERE“成绩“60B.SELECT DISTINCT 学号 FROM SC WHERE 成绩“60“C.SELECT DISTINCT 学号 FROM SC WHERE 成绩60D.SELECT DISTINCT“学号“FROM SC WHERE“成绩“603.基于图书表、读者和借阅表三个数据库表,它们的结构如下:
3、图书(图书编号,书名,第一作者,出版社):图书编号、书名、第一作者和出版社为 C 型字段,图书编号为主关键字;读者(借书证号,单位,姓名,职称):借书证号、单位、姓名、职称为 C 型字段,借书证号为主关键字;借阅(借书证号,图书编号,借书日期,还书日期):借书证号和图书编号为 C 型字段,借书日期和还书日期为 D 型字段,还书日期默认值为 NULL,借书证号和图书编号共同构成主关键字。查询第一作者为“张三”的所有书名及出版社,正确的 SQL 语句是(分数:2.00)A.SELECT 书名,出版社 FROM 图书 WHERE 第一作者=张三B.SELECT 书名,出版社 FROM 图书 WHER
4、E 第一作者=“张三“C.SELECT 书名,出版社 FROM 图书 WHERE“第一作者“=张三D.SELECT 书名,出版社 FROM 图书 WHERE“第一作者“=“张三“4.使用如下三个表:商店(商店号,商店名,区域名,经理名)商品(商品号,商品名,单价)销售(商店号,商品号,销售日期,销售数量)查询商品单价在 10 到 50 之间、并且日销售数量高于 20 的商品名、单价、销售日期和销售数量,查询结果按单价降序。正确命令是(分数:2.00)A.SELECT 商品名,单价,销售日期,销售数量 FROM 商品 JOIN 销售 WHERE (单价 BETWEEN 10 AND 50)AND
5、 销售数量20 ORDER BY 单价 DESCB.SELECT 商品名,单价,销售日期,销售数量 FROM 商品 JOIN 销售 WHERE (单价 BETWEEN 10 AND 50) 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
6、 商品商品号=销售商品号 ORDER BY 单价 DESC5.设有订单表 order(其中包含字段:订单号,客户号,职员号,签订日期,金额),查询 2007 年所签订单的信息,并按金额降序排序,正确的 SQL 命令是(分数:2.00)A.SELECT*FROM order WHERE YEAR(签订日期)=2007 ORDER BY 金额 DESCB.SELECT*FROM order WHILE YEAR(签订日期)=2007 ORDER BY 金额 ASCC.SELECT*FROM order WHERE YEAR(签订日期)=2007 ORDER BY 金额 ASCD.SELECT*FR
7、OM order WHILE YEAR(签订日期)=2007 ORDER BY 金额 DESC6.设有学生表 S(学号,姓名,性别,年龄),查询所有年龄小于等于 18 岁的女同学,并按年龄进行降序排序,生成新的表 WS,正确的 SQL 语句是(分数:2.00)A.SELECT*FROM S:WHERE 性别=女AND 年龄=18 ORDER BY 4 DESC INTO TABLE WSB.SELECT*FROM S;WHERE 性别=女AND 年龄=18 ORDER BY 年龄 INTO TABLE WSC.SELECT*FROM S;WHERE 性别=女AND 年龄=18 ORDER BY
8、年龄DESC INTO TABLE WSD.SELECT*FROM S;WHERE 性别=女OR 年龄=18 ORDER BY年龄ASC INTO TABLE WS7.使用如下数据表:学生DBF:学号(C,8),姓名(C,6),性别(C,2),出生日期(D)选课DBF:学号(C,8),课程号(C,3),成绩(N,5,1)假定学号的第 3、4 位为专业代码,要计算各专业学生选修课程号为“101”课程的平均成绩,正确的 SQL 语句是(分数:2.00)A.SELECT 专业 AS SUBS(学号,3,2),平均分 AS AVG(成绩) FROM 选课;WHERE 课程号=“101“GROUP BY
9、 专业B.SELECT SUBS(学号,3,2)AS 专业,AVG(成绩)AS 平均分 FROM 选课;WHERE 课程号=“101“GROUPBY1C.SELECT SUBS(学号,3,2)AS 专业,AVG(成绩)AS 平均分 FROM 选课;WHERE 课程号=“101“ORDER BY 专业D.SELECT 专业 AS SUBS(学号,3,2),平均分 AS AVG(成绩) FROM 选课;WHERE 课程号=“101“ORDERBY18.查询在“北京”和“上海”出生的学生信息的 SQL 语句是(分数:2.00)A.SELECT*FROM 学生 WHERE 出生地=北京AND上海B.S
10、ELECT*FROM 学生 WHERE 出生地:北京OR上海C.SELECT*FROM 学生 WHERE 出生地=北京AND 出生地=上海D.SELECT*FROM 学生 WHERE 出生地=北京OR 出生地=上海9.与“SELECT*FROM 歌手 WHERE NOT(最后得分900 OR 最后得分800)”等价的语句是(分数:2.00)A.SELECT*FROM 歌手 WHERE 最后得分 BETWEEN 900 AND 800B.SELECT*FROM 歌手 WHERE 最后得分=800 AND 最后得分=900C.SELECT*FROM 歌手 WHERE 最后得分900 OR 最后得分
11、800D.SELECT*FROM 歌手 WHERE 最后得分=800 AND 最后得分=90010.设有 S(学号,姓名,性别)和 SC(学号,课程号,成绩)两个表,用下列 SQL 语句检索选修的每门课程的成绩都高于或等于 85 分的学生的学号、姓名和性别,正确的是(分数:2.00)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 成绩
12、=85)C.SELECT 学号,姓名,性别 FROM 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)11.查询学生选修课程成绩小于 60 分的学号,正确的 SQL 语句是(分数:2.00)A.SELECT DISTINCT 学号 FROM SC WHERE“成绩“60B.SELECT DISTINCT 学号 FROM SC WHERE 成绩“60“C.SELECT DI
13、STINCT 学号 FROM SC WHERE 成绩60D.SELECT DISTINCT“学号“FROM SC WHERE“成绩“6012.在 SQL SELECT 语句中与 INTO TABLE 等价的短语是(分数:2.00)A.INTO DBFB.TO TABLEC.INTO FORMD.INTO FILE13.“教师表”中有“职工号”、“姓名”、“工龄”和“系号”等字段,“学院表”中有“系名”和“系号”等字段,求教师总数最多的系的教师人数,正确的命令序列是(分数:2.00)A.SELECT 教师表系号,COUNT(*)AS 人数 FROM 教师表,学院表;GROUP BY 教师表系号
14、INTO DBF TEMP SELECT MAX(人数) FROM TEMPB.SELECT 教师表系号,COUNT(*)FROM 教师表,学院表;WHERE 教师表系号=学院表系号 GROUP BY 教师表系号 INTO DBF TEMP SELECT MAX(人数) FROM TEMPC.SELECT 教师表系号,COUNT(*)AS 人数 FROM 教师表,学院表;WHERE 教师表系号=学院表系号 GROUP BY 教师表系号 TO FILE TEMP SELECT MAX(人数) FROM TEMPD.SELECT 教师表系号,COUNT(*)AS 人数 FROM 教师表,学院表;W
15、HERE 教师表系号=学院表系号 GROUP BY 教师表系号 INTO DBF TEMP SELECT MAX(人数) FROM TEMP14.查询“读者”表的所有记录并存储于临时表文件 one 中的 SQL 语句是(分数:2.00)A.SELECT*FROM 读者 INTO CURSOR oneB.SELECT*FROM 读者 TO CURSOR oneC.SELECT*FROM 读者 INTO CURSOR DBF oneD.SELECT*FROM 读者 TO CURSOR DBF one15.查询销售金额合计超过 20000 的商店,查询结果包括商店名和销售金额合计。正确命令是(分数:
16、2.00)A.SELECT 商店名,SUM(销售数量*单价)AS 销售金额合计 FROM 商店,商品,销售 WHERE 销售金额合计 20000B.SELECT 商店名,SUM(销售数量*单价)AS 销售金额合计20000 FROM 商店,商品,销售 WHERE 商品商品号=销售商品号 AND 商店商店号=销售商店号C.SELECT 商店名,SUM(销售数量*单价)AS 销售金额合计 FROM 商店,商品,销售 WHERE 商品商品号=销售商品号 AND 商店商店号=销售商店号 AND SUM(销售数量枣单价)20000 GROUP BY 商店名D.SELECT 商店名,SUM(销售数量*单价
17、)AS 销售金额合计 FROM 商店,商品,销售 WHERE 商品商品号=销售商品号 AND 商店商店号=销售商店号 GROUP BY 商店名 HAVING SUM(销售数量*单价)2000016.设有学生表 student(学号,姓名,性别,出生日期,院系)、课程表 course(课程号,课程名,学时)和选课表 score(学号,课程号,成绩),查询“计算机系”学生的学号、姓名、学生所选课程的课程名和成绩,正确的命令是(分数:2.00)A.SELECT s学号,姓名,课程名,成绩 FROM student s,score sc,course c;WHERE s学号=sc学号,sc课程号=c课
18、程号,院系=计算机系B.SELECT 学号,姓名,课程名,成绩 FROM student s,score sc,course c;WHERE s学号=sc学号 AND sc课程号=c课程号 AND 院系=计算机系C.SELECT s学号,姓名,课程名,成绩 FROM(student s JOIN score sc;ON s学号=sc学号)JOIN course c ON sc课程号=c课程号;WHERE 院系=计算机系D.SELECT 学号,姓名,课程名,成绩 FROM(student s JOIN score sc;ON s学号=sc学号)JOIN course c ON sc课程号=c课程
19、号:WHERE 院系=计算机系17.当前盘当前目录下有数据库:学员dbc,其中有“教师”表和“学院”表。 (分数:2.00)A.CHANGE TABLE 学院 ADD 教师人数 IB.ALTER STRU 学院 ADD 教师人数 IC.ALTER TABLE 学院 ADD 教师人数 ID.CHANGE TABLE 学院 INSERT 教师人数 I18.以下有关 SELECT 短句的叙述中错误的是(分数:2.00)A.SELECT 短句中可以使用别名B.SELECT 短句中只能包含表中的列及其构成的表达式C.SELECT 短句规定了结果集中的列顺序D.如果 FROM 短句引用的两个表有同名的列,
20、则 SELECT 短句引用它们时必须使用表名前缀加以限定19.使用如下三个数据库表:图书(索书号,书名,出版社,定价,ISBN)借书证(借书证号,姓名,性别,专业,所在单位)借书记录(借阅号,索书号,借书证号,借书日期,还书日期)其中:定价是货币型,借书日期和还书日期是日期型,其他是字符型。从借书证表中删除借书证号为“1001”的记录,正确的 SQL语句是(分数:2.00)A.DROP FEOM 借书证 WHERE 借书证号=“1001“B.DROP FEOM 借书证 FOR 借书证号=“1001“C.DELETE FEOM 借书证 WHERE 借书证号=“1001“D.DELETE FEOM
21、 借书证 FOR 借书证号=“1001“20.计算每名运动员的“得分”的正确 SQL 语句是(分数:2.00)A.UPDATE 运动员 FIELD 得分=2*投中 2 分球+3*投中 3 分球+罚球B.UPDATE 运动员 FIELD 得分 WTTH 2*投中 2 分球+3*投中 3 分球+罚球C.UPDATE 运动员 SET 得分 wTTH 2*投中 2 分球+3*投中 3 分球+罚球D.UPDATE 运动员 SET 得分=2*投中 2 分球+3*投中 3 分球+罚球21.设有关系歌手(歌手号,姓名,最后得分)和关系评分(歌手号,分数,评委号),每个歌手的最后得分是所有评委给出的分数的平均值
22、,则计算歌手“最后得分”的 SQL 语句是(分数:2.00)A.UPDATE 歌手 SET 最后得分=(SELECT AVG(分数)FROM 评分 WHERE 歌手号=歌手歌手号)B.UPDATE 歌手 SET 最后得分 EXISTS(SELECT AVG(分数)FROM 评分 WHERE 歌手号=歌手歌手号)C.UPDATE 歌手 SET 最后得分=(SELECT AVG(分数)FROM 评分)D.UPDATE 歌手 SET 最后得分=(SELECT AVG(分数)FROM 评分 GROUP BY 评委号)22.假设“图书”表中有 C 型字段“图书编号”,要求将图书编号以字母 A 开头的图书
23、记录全部打上删除标记,可以使用 SQL 命令(分数:2.00)A.DELETE FROM 图书 FOR 图书编号=“A“B.DELETE FROM 图书 WHERE 图书编号=“A“C.DELETE FROM 图书 FOR 图书编号=“A*“D.DELETE FROM 图书 WHERE 图书编号 LIKE“A“23.删除表 s 中字段 c 的 SQL 命令是(分数:2.00)A.ALTER TABLE s DELETE cB.ALTER TABLE s DROP cC.DELETE TABLE s DELETE cD.DELETE TABLE s DROP c24.向 student 表插入一
24、条新记录的正确 SQL 语句是(分数:2.00)A.APPEND INTO student VALUES(0401,王芳,女,1 8)B.APPEND student VALUES(0401,王芳,女,18)C.INSERT INTO student VALUES(0401,王芳,女,18)D.INSERT student VALUES(0401,王芳,女,18)25.将 Employee 表中职工号为“19620426”的记录中“单位号”修改为“003”正确的 SQL 语句是(分数:2.00)A.UPDATE Employee SET 单位号=“003“WHERE 职工号 IS“196204
25、26“B.UPDATE Employee WHERE 职工号 IS“19620426“SET 单位号=“003“C.UPDATE Employee SET 单位号=“003“WHERE 职工号=“19620426“D.UPDATE Employee 单位号 WITH“003“WHERE 职工号=“19620426“26.为“歌手”表增加一个字段“最后得分”的 SQL 语句是(分数:2.00)A.ALTER TABLE 歌手 ADD 最后得分 F(6,2)B.ALTER DBF 歌手 ADD 最后得分 F6,2C.CHANGE TABLE 歌手 ADD 最后得分 F(6,2)D.CHANGE T
26、ABLE 歌手 INSERT 最后得分 F6,227.假设有 student 表,可以正确添加字段“平均分数”的命令是(分数:2.00)A.ALTER T ABL E studentADD 平均分数 F(6,2)B.ALTER DBF studentADD 平均分数 F 6,2C.CHANGE TABLE student ADD 平均分数 F(6,2)D.CHANGE TABLE student INSERT 平均分数 6,228.创建一个视图,使用的 SQL 命令是(分数:2.00)A.CREATEB.CREATE DATEBASEC.CREATE VIEWD.CREATE TABLE29.
27、建立表 Employee 的视图 Em_view,正确的 SQL 命令是(分数:2.00)A.CREATE VIEW Em_view WHLIE SELECT 职工号,工资 FROM EmployeeB.CREATE AS Em_view VIEW SELECT 职工号,工资 FROM EmployeeC.CREATE VIEW Em_view AS SELECT 职工号,工资 FROM EmployeeD.CREATE VIEW Em_view SELECT 职工号,工资 FROM Employee国家二级 VF 机试(关系数据库标准语言 SQL)模拟试卷 19 答案解析(总分:58.00,
28、做题时间: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 和学生选课表 SC 两个数据表,它们的结构如下:S(学
29、号,性别,年龄)其中学号、姓名和性别为 C 型字段,年龄为 N 型字段。SC(学号,课程号,成绩),其中学号和课程号为 C 型字段,成绩为 N型字段(初始为空值)。查询学生选修课程成绩小于 60 分的学号,正确的 SQL 语句是(分数:2.00)A.SELECT DISTINCT 学号 FROM SC WHERE“成绩“60B.SELECT DISTINCT 学号 FROM SC WHERE 成绩“60“C.SELECT DISTINCT 学号 FROM SC WHERE 成绩60 D.SELECT DISTINCT“学号“FROM SC WHERE“成绩“60解析:解析:题目要求查询学生选修
30、课程成绩小于 60 分的学号,要查询的字段是学号字段,条件是成绩字段的值小于 60 分,学号和成绩字段在 SC 表中,所以查询应基于 SC 表进行,字段即字段变量是变量名,不需要加双引号,所以排除 A、D 选项。成绩字段为 N 型字段,即为数值型为数据,不需要加任何的定界符,所以选项 B)也是不正确的,正确的 SQL 语句是 SELECT DISTINCT 学号 FROM SC WHERE 成绩60,即选项 C)。3.基于图书表、读者和借阅表三个数据库表,它们的结构如下:图书(图书编号,书名,第一作者,出版社):图书编号、书名、第一作者和出版社为 C 型字段,图书编号为主关键字;读者(借书证号
31、,单位,姓名,职称):借书证号、单位、姓名、职称为 C 型字段,借书证号为主关键字;借阅(借书证号,图书编号,借书日期,还书日期):借书证号和图书编号为 C 型字段,借书日期和还书日期为 D 型字段,还书日期默认值为 NULL,借书证号和图书编号共同构成主关键字。查询第一作者为“张三”的所有书名及出版社,正确的 SQL 语句是(分数:2.00)A.SELECT 书名,出版社 FROM 图书 WHERE 第一作者=张三B.SELECT 书名,出版社 FROM 图书 WHERE 第一作者=“张三“ C.SELECT 书名,出版社 FROM 图书 WHERE“第一作者“=张三D.SELECT 书名,
32、出版社 FROM 图书 WHERE“第一作者“=“张三“解析:解析:本题考察的知识点是 SQL 查询,在 SQL,语句中,字段名不需要加引号,字段的取值则需要加引号。所以本题答案为 B)。4.使用如下三个表:商店(商店号,商店名,区域名,经理名)商品(商品号,商品名,单价)销售(商店号,商品号,销售日期,销售数量)查询商品单价在 10 到 50 之间、并且日销售数量高于 20 的商品名、单价、销售日期和销售数量,查询结果按单价降序。正确命令是(分数:2.00)A.SELECT 商品名,单价,销售日期,销售数量 FROM 商品 JOIN 销售 WHERE (单价 BETWEEN 10 AND 5
33、0)AND 销售数量20 ORDER BY 单价 DESCB.SELECT 商品名,单价,销售日期,销售数量 FROM 商品 JOIN 销售 WHERE (单价 BETWEEN 10 AND 50) 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 销售数量2
34、0 AND 商品商品号=销售商品号 ORDER BY 单价 DESC 解析:解析:可以用 JOINON语法进行超连接查询,也可以用 WHERE 直接表示数据表连接条件。ORDER BY 短语表示排序,DESC 短语表示降序。5.设有订单表 order(其中包含字段:订单号,客户号,职员号,签订日期,金额),查询 2007 年所签订单的信息,并按金额降序排序,正确的 SQL 命令是(分数:2.00)A.SELECT*FROM order WHERE YEAR(签订日期)=2007 ORDER BY 金额 DESC B.SELECT*FROM order WHILE YEAR(签订日期)=2007
35、 ORDER BY 金额 ASCC.SELECT*FROM order WHERE YEAR(签订日期)=2007 ORDER BY 金额 ASCD.SELECT*FROM order WHILE YEAR(签订日期)=2007 ORDER BY 金额 DESC解析:解析:根据 SQL 查询语句的基本结构,可以很容易发现选项 B 和选项 D 中,用来指定查询条件的WHERE 关键字错误,首先排除这两个选项,然后,根据题目要求,需要按金额降序排序查询结果,在排序语句中,ASC 短语表示升序排序,是默认的排序方式,可省略;而 DESC 短语表示降序排序,不可以缺少,选项 A)和 C)中,选项 A)
36、采用的是降序排序,与题目要求相符,正确答案为 A)。6.设有学生表 S(学号,姓名,性别,年龄),查询所有年龄小于等于 18 岁的女同学,并按年龄进行降序排序,生成新的表 WS,正确的 SQL 语句是(分数:2.00)A.SELECT*FROM S:WHERE 性别=女AND 年龄=18 ORDER BY 4 DESC INTO TABLE WS B.SELECT*FROM S;WHERE 性别=女AND 年龄=18 ORDER BY 年龄 INTO TABLE WSC.SELECT*FROM S;WHERE 性别=女AND 年龄=18 ORDER BY年龄DESC INTO TABLE WS
37、D.SELECT*FROM S;WHERE 性别=女OR 年龄=18 ORDER BY年龄ASC INTO TABLE WS解析:解析:题干中要求按年龄降序排列,在 SQL SELECT 中用来排序的关键短语是 ORDER BY,可以指定排序方式为升序(ASC)或降序(DESC)。另外,字段名是变量,所以不能加引号,否则是表示一个字符型常量。7.使用如下数据表:学生DBF:学号(C,8),姓名(C,6),性别(C,2),出生日期(D)选课DBF:学号(C,8),课程号(C,3),成绩(N,5,1)假定学号的第 3、4 位为专业代码,要计算各专业学生选修课程号为“101”课程的平均成绩,正确的
38、SQL 语句是(分数:2.00)A.SELECT 专业 AS SUBS(学号,3,2),平均分 AS AVG(成绩) FROM 选课;WHERE 课程号=“101“GROUP BY 专业B.SELECT SUBS(学号,3,2)AS 专业,AVG(成绩)AS 平均分 FROM 选课;WHERE 课程号=“101“GROUPBY1 C.SELECT SUBS(学号,3,2)AS 专业,AVG(成绩)AS 平均分 FROM 选课;WHERE 课程号=“101“ORDER BY 专业D.SELECT 专业 AS SUBS(学号,3,2),平均分 AS AVG(成绩) FROM 选课;WHERE 课程
39、号=“101“ORDERBY1解析:解析:题干要求对各专业计算平均分,所以先要把不同专业的学生进行分组,然后再计算平均分。其中,SQL SELECT 中的 GROUP BY 短句用于对查询结果进行分组,利用 AVG()函数求得指定字段的平均值,其中“GROUP BY1”表示按输出结果的第一个字段进行分组。8.查询在“北京”和“上海”出生的学生信息的 SQL 语句是(分数:2.00)A.SELECT*FROM 学生 WHERE 出生地=北京AND上海B.SELECT*FROM 学生 WHERE 出生地:北京OR上海C.SELECT*FROM 学生 WHERE 出生地=北京AND 出生地=上海D.
40、SELECT*FROM 学生 WHERE 出生地=北京OR 出生地=上海 解析:解析:一个学生的出生地,要么在“北京”,要么在“上海”,所以两者的关系是“或”,用关键字 or。9.与“SELECT*FROM 歌手 WHERE NOT(最后得分900 OR 最后得分800)”等价的语句是(分数:2.00)A.SELECT*FROM 歌手 WHERE 最后得分 BETWEEN 900 AND 800B.SELECT*FROM 歌手 WHERE 最后得分=800 AND 最后得分=900 C.SELECT*FROM 歌手 WHERE 最后得分900 OR 最后得分800D.SELECT*FROM 歌
41、手 WHERE 最后得分=800 AND 最后得分=900解析:解析:SELECT 查询命令的使用非常灵活,用它可以构造各种各样的查询。本题中给出的查询语句的功能是检索出最后得分不大于 900 或者不小于 800,即小于或等于 900 和大于或等于 800 的歌手记录。10.设有 S(学号,姓名,性别)和 SC(学号,课程号,成绩)两个表,用下列 SQL 语句检索选修的每门课程的成绩都高于或等于 85 分的学生的学号、姓名和性别,正确的是(分数:2.00)A.SELECT 学号,姓名,性别 FROM s WHERE EXISTS;(SELECT*FROM sc WHERE sc学号=s学号 A
42、ND 成绩=85)B.SELECT 学号,姓名,性别 FROM s WHERE NOT EXISTS;(SELECT*FROM sc WHERE sc学号=s学号 AND 成绩=85)C.SELECT 学号,姓名,性别 FROM 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) 解析:解析:题目中给出的四个选项为利用 SQL 谓词查询实现题干要求,正确的语句应该是: SE
43、LECT 学号,姓名,性别 FROM S WHERE NOT EXISTS: (SELECT*FROM SC WHERE SC学号=S学号 AND 成绩85) 或者: SELECT 学号,姓名,性别 FRoM S WHERE EXISTS: (SELECT*FROM SC WHERE SC学号=S学号AND 成绩=85)。11.查询学生选修课程成绩小于 60 分的学号,正确的 SQL 语句是(分数:2.00)A.SELECT DISTINCT 学号 FROM SC WHERE“成绩“60B.SELECT DISTINCT 学号 FROM SC WHERE 成绩“60“C.SELECT DIST
44、INCT 学号 FROM SC WHERE 成绩60 D.SELECT DISTINCT“学号“FROM SC WHERE“成绩“60解析:解析:查询条件“课程成绩小于 60 分”对应的条件表达式应该书写为“成绩60”。12.在 SQL SELECT 语句中与 INTO TABLE 等价的短语是(分数:2.00)A.INTO DBF B.TO TABLEC.INTO FORMD.INTO FILE解析:解析:SOL SELECT。语句中 INTO TABLE 短语和 INTO DBF 短语都可用来定义将查询结果存放到永久表中。另外,INTO ARRAY 将查询结果存放到数组,INTO CURS
45、OR 将查询结果存放到临时表,TO FILE 将查询结果存放到文本文件中。13.“教师表”中有“职工号”、“姓名”、“工龄”和“系号”等字段,“学院表”中有“系名”和“系号”等字段,求教师总数最多的系的教师人数,正确的命令序列是(分数:2.00)A.SELECT 教师表系号,COUNT(*)AS 人数 FROM 教师表,学院表;GROUP BY 教师表系号 INTO DBF TEMP SELECT MAX(人数) FROM TEMPB.SELECT 教师表系号,COUNT(*)FROM 教师表,学院表;WHERE 教师表系号=学院表系号 GROUP BY 教师表系号 INTO DBF TEMP
46、 SELECT MAX(人数) FROM TEMPC.SELECT 教师表系号,COUNT(*)AS 人数 FROM 教师表,学院表;WHERE 教师表系号=学院表系号 GROUP BY 教师表系号 TO FILE TEMP SELECT MAX(人数) FROM TEMPD.SELECT 教师表系号,COUNT(*)AS 人数 FROM 教师表,学院表;WHERE 教师表系号=学院表系号 GROUP BY 教师表系号 INTO DBF TEMP SELECT MAX(人数) FROM TEMP 解析:解析:由于“教师表”与“学院表”是通过“系号”进行关系的连接,而选项 A)没有 WHERE
47、子句,所以选项 A)是错误的。选项 B)中,由于接下来的 SQL 语句“SELECT MAX(人数)FROM TEMP”的字段名称为“人数”,而第一条 SQL 语句没有对查询的结果进行重命名,会产生错误。选项 C)中的 SQL 语句使用短语 INTO FILE FileNameADDITIVE可以将查询结果存放到文本文件中,FileName 是文件名,默认扩展名是 txt,接下来的 SOL 语句“SELECT MAX(人数)FROM TEMP”会产生错误。14.查询“读者”表的所有记录并存储于临时表文件 one 中的 SQL 语句是(分数:2.00)A.SELECT*FROM 读者 INTO
48、CURSOR oneB.SELECT*FROM 读者 TO CURSOR oneC.SELECT*FROM 读者 INTO CURSOR DBF one D.SELECT*FROM 读者 TO CURSOR DBF one解析:解析:在 SQL 语句中,空值查询用 IS NULL。15.查询销售金额合计超过 20000 的商店,查询结果包括商店名和销售金额合计。正确命令是(分数:2.00)A.SELECT 商店名,SUM(销售数量*单价)AS 销售金额合计 FROM 商店,商品,销售 WHERE 销售金额合计 20000B.SELECT 商店名,SUM(销售数量*单价)AS 销售金额合计20000 FROM 商店,商品,销售 WHERE 商品商品号=销售商品号 AND 商店商店号=销售商店号C.SELECT 商店名,SUM(销售数量*单价)AS 销售金额合计 FROM 商店,商品,销售 WHERE 商品商品号=销售商品号 AND 商店商店号=销售商店号 AND SUM(销售数量枣单价)20000 GROUP BY 商店名D.SELECT 商店名,SUM(销售数量*单价)AS 销售金额合计 FROM 商店,商品,销售 WHERE 商品商品号=销售商品号 AND 商店商店号=销售商店号 GROUP BY 商店名 HAVING SUM(销售数量*单价)20000 解析:解析:用