2022年二级Visual+FoxPro关系数据库标准语言SQL .pdf
1 模拟 二级 Visual FoxPro关系数据库标准语言SQL 选择题第 1 题:以下不属于 SQL数据操作命令的是()。A.MODIFY B.INSERT C.UPDATE D.DELETE 参考答案: A SQL 可以完成数据库操作要求的所有功能,包括数据查询、 数据操作、 数据定义和数据控制,是一种全能的数据库语言。其中,数据操作功能所对应的命令为INSERT 、UPDATE、DELETE 。故本题答案为 A)。第 2 题:SQL的数据操作语句不包括()。A.INSERT B.UPDATE C.DELETE D.CHANGE 参考答案: D SQL 可以完成数据库操作要求的所有功能,包括数据查询、 数据操作、 数据定义和数据控制,是一种全能的数据库语言。其中,数据操作功能所对应的命令为INSERT 、UPDATE、DELETE ,因此本题正确答案为D)。第 3 题:SQL语言的查询语句是()。A.INSERT B.UPDATE C.DELETE D.SELECT 参考答案: D SQL 的核心是查询。SQL 的查询命令也称作SELECT 命令,它的基本形式由SELECT FROM WHERE 查询块组成,多个查询块可以嵌套执行。故本题D)选项正确。第 4 题:以下有关 SELECT 短语的叙述中错误的是()。A.SELECT 短语中可以使用别名B.SELECT 短语中只能包含表中的列及其构成的表达式C.SELECT 短语规定了结果集中列的顺序D.如果 FROM 短语引用的两个表有同名的列,则SELECT 短语引用它们时必名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 29 页 - - - - - - - - - 2 须使用表名前缀加以限定参考答案: B SELECT 短语中除了包含表中的列及其构成的表达式外,还可以包括常量等其他元素,在 SELECT 短语中可以使用别名, 并规定了结果集中的列顺序,如果 FROM 短语中引用的两个表有同名的列,则 SELECT 短语引用它们时必须使用表名前缀加以限定。因此本题正确答案为B)。第 5 题:查询在“北京”和“上海”出生的学生信息的SQL语句是()。A.SELECT * FROM 学生 WHERE 出生地 =北京 AND 上海B.SELECT * FROM 学生 WHERE 出生地 =北京 OR 上海C.SELECT * FROM 学生 WHERE 出生地 =北京 AND 出生地 =上海D.SELECT * FROM 学生 WHERE 出生地 =北京 OR 出生地 =上海参考答案: D SQL 的核心是查询,它的基本形式由SELECT FROM WHERE 查询块组成。其中 SELECT 说明要查询的字段, FROM 说明要查询的字段来自哪个表或哪些表,可以对单个表或多个表进行查询, WHERE 说明查询条件, 即选择元组的条件。 AND 表示“且”, OR 表示“或”,本题要求查询在“北京”和“上海”出生的学生信息,应设置条件为“出生地= 北京 OR 出生地 = 上海”,即D )选项正确。第 6 题:在 SQL的 SELECT 查询的结果中,消除重复记录的方法是()。A.通过指定主索引实现B.通过指定唯一索引实现C.使用 DISTINCT 短语实现D.使用 WHERE 短语实现参考答案: C SQL 的核心是查询。SQL 的查询命令也称作SELECT 命令,它的基本形式由SELECT FROM WHERE 查询块组成。其中 SELECT 说明要查询的字段,如果查询的字段需去掉重复值,则要用到DISTINCT 短语; FROM 说明要查询的字段来自哪个表或哪些表,可以对单个表或多个表进行查询;WHERE 说明查询条件,即选择元组的条件。因此C)为正确选项。第 7 题:假设有选课表 SC (学号,课程号,成绩),其中学号和课程号为C型字段,成绩为 N型字段,查询学生有选修课程成绩小于60 分的学号,正确的 SQL语句是()。A.SELECT DISTINCT 学号 FROM SC WHERE 成绩 60 B.SELECT DISTINCT 学号 FROM SC WHERE 成绩 60 C.SELECT DISTINCT 学号 FROM SC WHERE 成绩 60 D.SELECT DISTINCT 学号 FROM SC WHERE 成绩 60 参考答案: C 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 29 页 - - - - - - - - - 3 SQL 查询的基本格式为SELECT FROM WHERE ,DISTINCT 语句用于去掉重复值。本题查询成绩小于60 分的学号, WHERE 指定的条件应为“ WHERE 成绩 60 ”,因此 C)选项正确。第 8 题:学生表中有“学号”、“姓名”和“年龄”三个字段,SQL语句“ SELECT 学号FROM 学生”完成的关系操作称为()。A.选择B.投影C.连接D.并参考答案: B 投影运算是从一个关系中选出若干指定字段的值的操作,从列的角度进行的运算。选择运算是从一个关系中找出满足给定条件的记录的操作,从行的角度进行的运算。连接关系是把两个关系中的记录按一定条件横向结合,生成一个新的关系。并运算要求有两个表。“SELECT 学号 FROM 学生”指从“学生”表中查询字段“学号”,因此为投影运算。第 9 题:查询第一作者为“张三”的所有书名及出版社,正确的SQL语句是()。A.SELECT 书名, 出版社 FROM 图书 WHERE 第一作者 = 张三B.SELECT 书名, 出版社 FROM 图书 WHERE 第一作者 = 张三 C.SELECT 书名, 出版社 FROM 图书 WHERE 第一作者 = 张三D.SELECT 书名, 出版社 FROM 图书 WHERE 第一作者 = 张三 参考答案: B 简单查询是基于一个表进行的查询,是由SELECT 和 FROM 短语构成的无条件查询,或由 SELECT 、FROM 和 WHERE 短语构成的条件查询。 本题查询第一作者为张三,条件应该是“第一作者= 张三”,因此 B)为正确选项。第 10 题:消除 SQL SELECT 查询结果中的重复记录,可采取的方法是()。A.通过指定主关键字B.通过指定唯一索引C.使用 DISTINCT 短语D.使用 UNIQUE 短语参考答案: C SQL 的核心是查询。 SQL 的查询命令也称作SELECT 命令, 它的基本形式由SELECT FROM WHERE 查询块组成。其中 SELECT 说明要查询的字段,如果查询的字段需去掉重复值,则要用到DISTINCT 短语,因此, C)为正确选项。第 11 题:查询单价在 600 元以上的主机板和硬盘的正确SQL命令是()。A.SELECT * FROM 产品 WHERE 单价 600 AND ( 名称=主机板 AND 名称=硬盘 ) B.SELECT * FROM 产品 WHERE 单价 600 AND ( 名称=主机板 OR 名称名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 29 页 - - - - - - - - - 4 =硬盘 ) C.SELECT * FROM 产品 FOR 单价 600 AND ( 名称=主机板 AND 名称=硬盘 ) D.SELECT * FROM 产品 FOR 单价 600 AND ( 名称=主机板 OR 名称=硬盘 ) 参考答案: B SQL 语句的基本格式为SELECT FROM WHERE ,其中 SELECT 说明要查询的字段, FROM 说明要查询的字段来自哪个表或哪些表,WHERE 说明查询条件。查询主机板和硬盘信息应使用“OR ”连接。故本题答案为B)。第 12 题:查询所有 1982 年 3 月 20 日以后(含)出生、性别为男的学生,正确的SQL语句是()。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 性别= 男 参考答案: A SQL 的基本形式由 SELECT FROM WHERE 查询块组成。其中 SELECT 说明要查询的字段, FROM 说明要查询的字段来自哪个表或哪些表,WHERE 说明查询条件。要求时间为1982 年 3 月 20 日以后,对应的SQL 语句应为 WHERE 出生日期 =1982-03-20 ,AND 表示“且”,故本题A)选项正确。第 13 题:在 Visual FoxPro中,假设教师表 T(教师号,姓名,性别,职称,研究生导师)中,性别是 C型字段,研究生导师是L 型字段。若要查询“是研究生导师的女老师”信息,那么SQL语句“ SELECT * FROM T WHERE 逻辑表达式 ”中的逻辑表达式应是()。A.研究生导师 AND 性别 = 女 B.研究生导师 OR 性别 = 女 C.性别 = 女 AND 研究生导师 = .F. D.研究生导师 = .T. OR 性别 = 女参考答案: A 本题要查询“是研究生导师的女老师”信息,筛选条件应设置为研究生导师,且性别为女,对应的 SQL 语句中的逻辑表达式即是“研究生导师 AND 性别 = 女 ”,因此 A)选项正确。第 14 题:设有学生选课表 SC (学号,课程号,成绩),用SQL命令检索同时选修了课程号为“ C1”和“ C5 ”课程的学生的学号的正确命令是()。A.SELECT 学号 FROM SC WHERE 课程号 = C1 AND 课程号 = C5 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 29 页 - - - - - - - - - 5 B.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 ) 参考答案: D 这个查询不能用简单的查询实现,要用到嵌套查询, 在嵌套查询中内外层的嵌套用 IN 而不用“ =”,D)选项正确。第 15 题:查询客户名称中有“网络”二字的客户信息的正确SQL命令是()。A.SELECT * FROM 客户 FOR 名称 LIKE % 网络% B.SELECT * FROM 客户 FOR 名称 = % 网络% C.SELECT * FROM 客户 WHERE 名称 = % 网络% D.SELECT * FROM 客户 WHERE 名称 LIKE % 网络% 参考答案: D LIKE 为字符串匹配运算符,可以能配符“% ”和“_”一起使用。“ % ”表示与任意多个字符匹配,“ _”表示与任意一个字符匹配。查询客户名称中有“网络”二字的客户信息可用“ LIKE% 网络%”表示,正确的选项为D)。第 16 题:在 SQL语句中,与表达式“年龄 BETWEEN 12 AND 46 ”功能相同的表达式是()。A.年龄= 12 OR = 46 B.年龄= 12 AND = 46 C.年龄= 12 OR 年龄 = 46 D.年龄= 12 AND 年龄 = 46 参考答案: D BETWEENAND 表示在“和之间” ,其中包含等于, 即大于等于 AND 前面的数,小于等于 AND 后面的数。题干表达式的含义为在12 和 46 之间的数字,而AND 表示“且”, OR 表示“或”,只有D )选项与此功能相同。第 17 题:与 “SELECT * FROM 歌手 WHERE NOT( 最后得分9.00 OR 最后得分 8.00) ”等价的语句是()。A.SELECT * FROM 歌手 WHERE 最后得分 BETWEEN 9.00 AND 8.00 B.SELECT * FROM 歌手 WHERE 最后得分=8.00 AND 最后得分 =9.00 C.SELECT * FROM 歌手 WHERE 最后得分9.00 OR 最后得分 8.00 D.SELECT * FROM 歌手 WHERE 最后得分 =8.00 AND 最后得分=9.00 参考答案: B 题干的 SQL 语句的含义是,从 “歌手”表中查询最后得分在8 和 9 之间的记录。表示在和之间, 其中包含等于,即大于等于 AND 前面的数,小于等于 AND 后名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 29 页 - - - - - - - - - 6 面的数,因此 A)选项的条件错误,应该为“BETWEEN 8.00 AND 9.00”。正确答案为 B)第 18 题:查询成绩在 70 分至 85 分之间学生的学号、课程号和成绩,正确的SQL语句是()。A.SELECT 学号, 课程号 , 成绩 FROM sc WHERE 成绩 BETWEEN 70 AND 85 B.SELECT 学号, 课程号 , 成绩FROM sc WHERE 成绩= 70 OR 成绩 = 85 C.SELECT 学号, 课程号 , 成绩 FROM sc WHERE 成绩= 70 OR = 85 D.SELECT 学号, 课程号 , 成绩 FROM sc WHERE 成绩= 70 AND = 85 参考答案: A 简单查询是基于一个表进行的查询,是由SELECT 和 FROM 短语构成的无条件查询,或由 SELECT 、FROM 和 WHERE 短语构成的条件查询。 BETWEENAND 为常用运算符,表示在和之间, 其中包含等于, 即大于等于 AND 前面的数, 小于等于 AND 后面的数。本题查询成绩在70 分至 85 分之间学生的学号、课程号和成绩,WHERE 指定的条件应为“ WHERE 成绩 BETWEEN 70 AND 85”,因此 A)选项正确。第 19 题:查询单位名称中含“北京”字样的所有读者的借书证号和姓名,正确的SQL语句是()。A.SELECT 借书证号 , 姓名 FROM 读者 WHERE 单位= 北京% B.SELECT 借书证号 , 姓名 FROM 读者 WHERE 单位= 北京* C.SELECT 借书证号 , 姓名 FROM 读者 WHERE 单位 LIKE 北京* D.SELECT 借书证号 , 姓名 FROM 读者 WHERE 单位 LIKE % 北京% 参考答案: D 简单查询是基于一个表进行的查询,是由SELECT 和 FROM 短语构成的无条件查询,或由 SELECT 、FROM 和 WHERE 短语构成的条件查询。 LIKE 为字符串匹配运算符,可与通配符“ % ”和“ _”一起使用。“ % ”表示与任意多个字符匹配;“_”表示与任意一个字符匹配。因此本题D)选项格式正确。第 20 题:从“选课”表中检索成绩大于等于60 并且小于 90 的记录信息(成绩是整数),正确的 SQL命令是()。A.SELECT * FROM 选课 WHERE 成绩 BETWEEN 60 AND 89 B.SELECT * FROM 选课 WHERE 成绩 BETWEEN 60 TO 89 C.SELECT * FROM 选课 WHERE 成绩 BETWEEN 60 AND 90 D.SELECT * FROM 选课 WHERE 成绩 BETWEEN 60 TO 90 参考答案: A 简单查询是基于一个表进行的查询,是由SELECT 和 FROM 短语构成的无条件查询,或由 SELECT 、FROM 和 WHERE 短语构成的条件查询。 BETWEENAND 表示在和之间,其中包含等于,即大于等于AND 前面的数,小于等于AND 后面名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 29 页 - - - - - - - - - 7 的数。因此排除 B)、D)选项,本题要求成绩是大于等于60 且小于 90 的整数,因此 A)选项正确。第 21 题:在 SQL SELECT 语句的 ORDER BY 短语中如果指定了多个字段,则()。A.无法进行排序B.只按第一个字段排序C.按从左至右优先依次排序D.按从右至左优先依次排序参考答案: C ORDER BY 短语中如果指定了多个字段,则按照从左至右的顺序依次排序。第 22 题:设有订单表 order (订单号 , 客户号 , 职员号 , 签订日期 , 金额),查询 2011年所签订单的信息并按金额降序排序,正确的SQL命令是()。A.SELECT * FROM order WHERE YEAR( 签订日期 )=2011 ORDER BY 金额 DESC B.SELECT * FROM order WHILE YEAR( 签订日期 )=2011 ORDER BY 金额 ASC C.SELECT * FROM order WHERE YEAR( 签订日期 )=2011 ORDER BY 金额 ASC D.SELECT * FROM order WHILE YEAR( 签订日期 )=2011 ORDER BY 金额 DESC 参考答案: A 本题考查 SQL 排序查询。根据 SQL 查询语句的基本结构,可以很容易发现选项B)和选项 D )中,用来指定查询条件的WHERE 关键字错误,首先排除这两个选项。然后,根据题目要求,需要按金额降序排序查询结果,在排序语句中,ASC 短语表示升序排序,是默认的排序方式,可省略;而DESC 短语表示降序排序,不可以省略,选项 A)和 C )中,A)采用的是降序排序,与题目要求相符,故正确答案为 A)。第 23 题:在 SQL SELECT 查询中,为了使查询结果排序必须使用短语()。A.ASC B.DESC C.GROUP BY D.ORDER BY 参考答案: D ORDER BY 是对最终的查询结果进行排序,用ORDER BY 短语可将查询结果按升序(ASC )或降序( DESC )排列。 GROUP BY 短语用于对查询结果进行分组。第 24 题:设有学生表 S(学号 , 姓名, 性别, 年龄),查询所有年龄小于等于18岁的女同学、并按年龄进行降序排序生成新的表WS ,正确的 SQL命令是()。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 WS C.SELECT * FROM S WHERE 性别= 女 AND 年龄 = 18 ORDER BY 年名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 29 页 - - - - - - - - - 8 龄 DESC INTO TABLE WS D.SELECT * FROM S WHERE 性别= 女 OR 年龄 = 18 ORDER BY 年龄 ASC INTO TABLE WS 参考答案: A 由查询语句的格式可知,ORDER BY 短语后面应该用字段,因此不用加单引号,故排除 C )、D )。查询结果中需对年龄进行降序排列,故排除B)。因此,本题答案选 A)。第 25 题:检索“投中 3 分球”小于等于 5 个的运动员中“得分”最高的运动员的“得分”,正确 SQL命令是()。A.SELECT MAX( 得分) 得分 FROM 运动员 WHERE 投中 3 分球 =5 B.SELECT MAX( 得分) 得分 FROM 运动员 WHEN 投中 3 分球 =5 C.SELECT 得分= MAX( 得分) FROM 运动员 WHERE 投中 3 分球 =5 D.SELECT 得分= MAX( 得分) FROM 运动员 WHEN 投中 3 分球 =5 参考答案: A 本题考查 SQL 语句的简单计算查询。求最大值的函数是MAX( ),使用计算函数后,会改变原来的用于计算的字段名,如果要指定新的字段名, 可以在该计算函数后通过 AS 短语指定新的字段名,也可以省略AS 短语直接输入新字段名作为输出显示的字段名称。本题选项C)和 D )中,使用计算函数的表达方式错误;而选项 B)中,条件短语的关键字出错,应该是WHERE,故而不是 WHEN,正确答案是 A)。第 26 题:设有学生(学号 , 姓名, 性别, 出生日期)和选课(学号 , 课程号 , 成绩)两个关系,计算刘明同学选修的所有课程的平均成绩,正确的SQL语句是()。A.SELECT AVG( 成绩) FROM 选课 WHERE 姓名= 刘明 B.SELECT AVG( 成绩) FROM 学生, 选课 WHERE 姓名= 刘明 C.SELECT AVG( 成绩) FROM 学生, 选课 WHERE 学生. 姓名= 刘明 D.SELECT AVG( 成绩) FROM 学生, 选课 WHERE 学生. 学号= 选课. 学号AND 姓名= 刘明 参考答案: D SQL 的核心是查询,它的基本形式由SELECT FROM WHERE 查询块组成。其中 SELECT 说明要查询的字段, FROM 说明要查询的字段来自哪个表或哪些表,可以对单个表或多个表进行查询,WHERE 说明查询条件, 即选择元组的条件。 要计算刘明同学选修的所有课程的平均成绩,应设置WHERE 条件为 WHERE 学生. 学号= 选课. 学号 AND 姓名=“刘明”,即 D )选项正确。第 27 题:与“SELECT DISTINCT 产品号 FROM 产品 WHERE 单价 =ALL(SELECT 单价FROM 产品 WHERE SUBSTR(产品号 ,1,1)=2)”等价的 SQL命令是()。A.SELECT DISTINCT 产品号FROM 产品WHERE 单价 =; (SELECT MAX( 单价) FROM 产品 WHERE SUBSTR( 产品号 ,1,1)=2) B.SELECT DISTINCT 产品号FROM 产品WHERE 单价 = ; (SELECT 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 29 页 - - - - - - - - - 9 MIN( 单价) FROM 产品 WHERE SUBSTR( 产品号 ,1,1)=2) C.SELECT DISTINCT 产品号 FROM 产品 WHERE 单价 = ANY; (SELECT 单价 FROM 产品 WHERE SUBSTR( 产品号 ,1,1)=2) D.SELECT DISTINCT 产品号 FROM 产品 WHERE 单价 = SOME ; (SELECT 单价 FROM 产品 WHERE SUBSTR( 产品号 ,1,1)=2) 参考答案: A SUBSTR( 字符表达式, 起始位置 , 长度 ) 为取子串函数,从指定表达式值的指定起始位置取指定长度的子串作为函数值。DISTINCT 语句用来去掉重复值。本题主要考查嵌套查询,与题目含义等价的应为A)选项。第 28 题:设有学生(学号 , 姓名, 性别, 出生日期)和选课(学号 , 课程号 , 成绩)两个关系,并假定学号的第3、4 位为专业代码。要计算各专业学生选修课程号为“101”课程的平均成绩,正确的SQL语句是()。A.SELECT 专业 AS SUBS( 学号,3,2), 平均分 AS AVG( 成绩) FROM 选课WHERE 课程号 =101 GROUP BY 专业B.SELECT SUBS( 学号,3,2) AS 专业, AVG( 成绩) AS 平均分 FROM 选课WHERE 课程号 =101 GROUP BY 1 C.SELECT SUBS( 学号,3,2) AS 专业, AVG( 成绩) AS 平均分 FROM 选课WHERE 课程号 =101 ORDER BY 专业D.SELECT 专业 AS SUBS( 学号,3,2 ), 平均分 AS AVG( 成绩) FROM 选课WHERE 课程号 =101 ORDER BY 1 参考答案: B SUBSTR( 字符表达式, 起始位置 , 长度 )为取子串函数,从指定表达式值的指定起始位置取指定长度的子串作为函数值。要计算各专业学生选修课程号为“ 101”课程的平均成绩,应按学号分组,即GROUP BY 1。因此B)选项正确。第 29 题:SQL的 SELECT 语句中,“ HAVING 条件表达式”用来筛选满足条件的()。A.列B.行C.关系D.分组参考答案: D 在 SQL 的 SELECT 语句中 HAVING 短语要结合 GROUP BY 使用,用来进一步限定满足分组条件的元组,因此D)选项正确。第 30 题:在 SELECT 语句中,以下有关HAVING 短语的正确叙述是()。A.HAVING 短语必须与 GROUP BY 短语同时使用B.使用 HAVING 短语的同时不能使用WHERE 短语C.HAVING 短语可以在任意的一个位置出现名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 29 页 - - - - - - - - - 10 D.HAVING 短语与 WHERE 短语功能相同参考答案: A HAVING 子句总是跟在 GROUP BY 子句之后,而不可以单独使用,HAVING 子句和WHERE 子句并不矛盾,在查询中是先用WHERE 子句限定元组,然后进行分组,最后再用 HAVING 子句限定分组。因此本题正确答案为A)。第 31 题:假设“订单”表中有订单号、职员号、客户号和金额字段,如下SQL命令可以正确执行的是()。A.SELECT 职员号 FROM 订单 GROUP BY 职员号 HAVING COUNT(*) 3 AND AVG_ 金额 200 B.SELECT 职员号 FROM 订单 GROUP BY 职员号 HAVING COUNT(*) 3 AND AVG( 金额) 200 C.SELECT 职员号 FROM 订单 GROUP BY 职员号 HAVING COUNT(*) 3 WHERE AVG( 金额) 200 D.SELECT 职员号 FROM 订单 GROUP BY 职员号 WHERE COUNT(*) 3 AND AVG_ 金额 200 参考答案: B SQL 中的查询是由 SELECT 和 FROM 短语构成的无条件查询,或由SELECT 、FROM和 WHERE 短语构成的条件查询。其基本格式为:SELECT 字段名表 FROM 表名表 WHERE 条件 GROUP BY 字段 HAVING 条件 ORDER BY 字段 INTO DBF|TABLE | 。GROUP BY 语句用来分组, HAVING 语句用来限定分组必须满足的条件。因此C)、D )选项格式错误。取字段的平均值应用“( ) ”而非“ _”,所以本题选 B)。第 32 题:假设同一名称的产品有不同的型号和产地,则计算每种产品平均单价的SQL命令是()。A.SELECT 产品名称 , AVG( 单价) FROM 产品 GROUP BY 单价B.SELECT 产品名称 , AVG( 单价) FROM 产品 ORDER BY 单价C.SELECT 产品名称 , AVG( 单价) FROM 产品 ORDER BY 产品名称D.SELECT 产品名称 , AVG( 单价) FROM 产品 GROUP BY 产品名称参考答案: D 使用 GROUP BY 短语首先依据产品名称对产品进行分组,然后再计算每种产品的平均单价( AVG )。ORDER BY 短语则用来排序。因此本题D)选项正确。第 33 题:查询有选课记录,但没有考试成绩(成绩字段是空值)的学生的学号和课程号,正确的 SQL语句是()。A.SELECT 学号, 课程号 FROM sc WHERE 成绩 = B.SELECT 学号, 课程号 FROM sc WHERE 成绩 = NULL C.SELECT 学号, 课程号 FROM sc WHERE 成绩 IS NULL D.SELECT 学号, 课程号 FROM sc WHERE 成绩参考答案: C 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 29 页 - - - - - - - - - 11 本题查询没有考试成绩的学号和课程号,可以使用空值(IS NULL)查询, NULL 或 NOT NULL 说明字段允许或不允许为空值。因此选项C )格式正确。第 34 题:查询尚未最后确定订购单的(订购日期尚未确定)有关信息的正确命令是()。A.SELECT 名称, 联系人 , 电话号码 , 订单号FROM 客户, 订购单WHERE 客户. 客户号 = 订购单. 客户号 AND 订购日期 IS NULL B.SELECT 名称, 联系人 , 电话号码 , 订单号FROM 客户, 订购单WHERE 客户. 客户号 = 订购单. 客户号 AND 订购日期 = NULL C.SELECT 名称, 联系人, 电话号码 , 订单号 FROM 客户, 订购单 FOR 客户. 客户号 = 订购单 . 客户号 AND 订购日期 IS NULL D.SELECT 名称, 联系人, 电话号码 , 订单号 FROM 客户, 订购单 FOR 客户. 客户号 = 订购单 . 客户号 AND 订购日期 = NULL 参考答案: A 查询尚未最后确定订购单的有关信息,可使用空值查询,IS NULL 为空值, NULL 或 NOT NULL 说明字段允许或不允许为空值。因此本题A)格式正确。第 35 题:查询尚未归还(还书日期为空值)的图书编号和借书日期,正确的SQL语句是()。A.SELECT 图书编号 , 借书日期 FROM 借阅 WHERE 还书日期 = B.SELECT 图书编号 , 借书日期 FROM 借阅 WHERE 还书日期 =NULL C.SELECT 图书编号 , 借书日期 FROM 借阅 WHERE 还书日期 IS NULL D.SELECT 图书编号 , 借书日期 FROM 借阅 WHERE 还书日期参考答案: C SQL 的核心是查询,简单查询是由SELECT 和 FROM 短语构成的无条件查询,或由 SELECT 、FROM 和 WHERE 短语构成的条件查询。其基本格式为:SELECT 字段名表 FROM 表名表 WHERE 条件 GROUP BY 字段 HAVING 条件 ORDERBY 字段 INTO DBF|TABLE| 。本题查询尚未归还的图书编号和借书日期,可利用空值查询,使用IS NULL 字符,因此选项 C)正确。第 36 题:设有学生(学号 , 姓名, 性别, 出生日期)和选课(学号 , 课程号 , 成绩)两个关系,查询选修课程号为“101”课程得分最高的同学,正确的SQL语句是()。A.SELECT 学生. 学号, 姓名 FROM 学生 , 选课 WHERE 学生. 学号= 选课. 学号 AND 课程号 =101 AND 成绩 =ALL(SELECT 成绩 FROM 选课)B.SELECT 学生. 学号, 姓名FROM 学生, 选课WHERE 学生. 学号=选课. 学号AND 成绩 =ALL (SELECT 成绩 FROM 选课 WHERE 课程号 =101) C.SELECT 学生. 学号, 姓名 FROM 学生 , 选课 WHERE 学生. 学号= 选课. 学号 AND 成绩 =ANY(SELECT 成绩 FROM 选课 WHERE 课程号 =101) D.SELECT 学生. 学号, 姓名 FROM 学生 , 选课 WHERE 学生. 学号= 选课. 学号 AND 课程号 =101 AND 成绩 =ALL (SELECT 成绩 FROM 选课 WHERE 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 29 页 - - - - - - - - - 12 课程号 =101) 参考答案: D 查询的基本形式由SELECT FROM WHERE 查询块组成。其中SELECT 说明要查询的字段, FROM 说明要查询的字段来自哪个表或哪些表,WHERE 说明查询条件, 即选择元组的条件。内层 “SELECT 成绩 FROM 选课 WHERE 课程号=101 ”语句查询出了选修课程号为101 的成绩,外层格式正确的为D)选项。第 37 题:设有 S(学号,姓名,性别)和SC (学号,课程号,成绩)两个表,如下SQL语句检索选修的每门课程的成绩都高于或等于85 分的学生的学号、姓名和性别,正确的 SQL命令是()。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 学号,姓名,性别 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) 参考答案: D 本题考查内外层嵌套查询以及使用量词和谓词的查询。EXISTS 是谓词, EXISTS 或 NOT EXISTS 是用来检查在子查询中是否有结果返回,即存在元组或不存在元组。其本身并没有进行任何运算或比较,只用来返回子查询结果。 本题要检索选修的每门课程的成绩都高于或等于85 分的学生的学号、姓名和性别,SELECT * FROM sc WHERE SC. 学号 = S. 学号 AN