1、二级 VISUAL+FOXPRO-14-2及答案解析(总分:67.07,做题时间:90 分钟)一、B选择题/B(总题数:2,分数:44.00)第 31到第(35)题基于学生表 S和学生选课表 SC两个数据库表,它们的结构如下:S(学号,姓名,性别,年龄)其中学号、姓名和性别为 C型字段,年龄为 N型字段。SC(学号,课程号,成绩),其中学号和课程号为 C型字段,成绩为 N型字段(初始为空值)。(分数:21.06)(1).查询学生选修课程成绩小于 60分的学号,正确的 SQL语句是 _。 A. SELECT DISTINCT 学号 FROM SC WHERE“成绩“60 B. SELECT DI
2、STINCT 学号 FROM SC WHERE 成绩“60“ C. SELECT DISTINCT 学号 FROM SC WHERE 成绩60 D. SELECT DISTINCT“学号“FROM SC WHERE“成绩“60(分数:1.62)A.B.C.D.(2).查询学生表,S 的全部记录并存储于临时表文件 one中的 SQL命令是 _。 A. SELECT*FROM S INTO CURSOR one B. SELECT*FROM S TO CURSOR one C. SELECT*FROM S INTO CURSOR DBF one D. SELECT*FROM S TO CURSOR
3、 DBF one(分数:1.62)A.B.C.D.(3).查询成绩在 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(分数:1.62)A.B.C.D.(4).查询有选课记录,但没有
4、考试成绩的学生的学号和课程号,正确的 SQL语句是 _。 A. SELECT 学号,课程号 FROM sc WHERE 成绩=“ B. SELECT 学号,课程号 FROM sc WHERE 成绩=NULL C. SELECT 学号,课程号 FROM sc WHERE 成绩 IS NULL D. SELEC T学号,课程号 FROM sc WHERE 成绩(分数:1.62)A.B.C.D.(5).查询选修 C2课程号的学生姓名,下列 SQL语句中错误的是 _。 A. SELECT 姓名 FROM S WHERE EXISTS (SELECT*FROM SC WHERE 学号=S.学号 AND
5、课程号=C2) B. SELECT 姓名 FROM S WHERE 学号 IN (SELECT 学号 FROM SC WHERE 课程号=C2) C. SELECT 姓名 FROM S JOIN SC ON S.学号=SC.学号 WHERE 课程号=C2 D. SELECT 姓名 FROM S WHERE 学号= (SELECT 学号 FROM SC WHERE 课程号=C2)(分数:1.62)A.B.C.D.(6).下列关于类、对象、属性和方法的描述中错误的是U /U。 A. 类是对一类相似对象的描述,这些对象具有相同种类的属性和方法 B. 属性用于描述对象的状态,方法用于表示对象的行为 C
6、. 基于同一类产生的两个对象可以分别设置自己的属性值 D. 通过执行不同对象的同名方法,其结果必然是相同的(分数:1.62)A.B.C.D.(7).在窗体上有一个文本框控件,名称为 TxtTime;一个计时器控件,名称为 Timer1,要求每一秒在文本框中显示一次当前的时间。程序为Procedure Timer1 _()ThisForm.TxtTime.Value=TimeEndProc A. Enabled B. Visible C. Interval D. Timer(分数:1.62)A.B.C.D.(8).一些重要的程序语言(如 C语言和 Pascal语言)允许过程的递归调用。而实现递归
7、调用中的存储分配通常用 A.栈 B.堆 C.数组 D.链表 (分数:1.62)A.B.C.D.(9).设有订单表 order(订单号,客户号,职员号,签订日期,金额),查询 2011年所签订单的信息,并按金额降序排序,正确的 SQL命令是U /U。 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
8、D.SELECT*FROM order WHILE YEAR(签订日期)=2011 ORDER BY 金额 DESC(分数:1.62)A.B.C.D.(10).命令 DELETE FROM选课 WHERE成绩60 的功能是U /U。 A. 为表“选课”中成绩小于 60分的记录做删除标记 B. 从表“选课”中彻底删除成绩小于 60分的记录 C. 删除“选课”表 D. 删除“选课”表的年龄属性(分数:1.62)A.B.C.D.(11).统计只有 2名以下(含 2名)学生选修的课程情况,统计结果中的信息包括课程名称、开课院系和选修人数,并按选课人数排序。正确的命令是 ) SELECT 课程名称,开课
9、院系,COUNT(课程编号)AS 选修人数; FROM 学生成绩,课程 WHERE课程.课程编号=学生成绩.课程编号; GROUP BY 学生成绩.课程编号HAVING COUNT(*)2; ORDER BY COUNT(课程编号) ) SELECT 课程名称,开课院系,COUNT(学号)AS选修人数; FROM 学生成绩,课程 WHERE课程.课程编号=学生成绩.课程编号; GROUP BY 学生成绩.学号HAVING COUNT(*)2; ORDER BY COUNT(学号) ) SELECT 课程名称,开课院系,COUNT(学号)AS 选修人数; FROM 学生成绩,课程 WHERE课程
10、.课程编号=学生成绩.课程编号; GROUP BY 课程名称 HAVING COUNT(学号)2; ORDER BY 选修人数 ) SELECT 课程名称,开课院系,COUNT(学号)AS 选修人数; FROM学生成绩,课程 HAVING COUNT(课程编号)2; GROUP BY 课程名称 ORDER BY选修人数(分数:1.62)A.B.C.D.(12).打开一个数据库的命令是_。 A. USE B. USE DATABASE C. OPEN D. OPEN DATABASE(分数:1.62)A.B.C.D.(13).设有关系 R1和 R2,经过关系运算得到结果 S,则 S是 _。 A.
11、一个关系 B.一个表单 C.一个数据库 D.一个数组 第(34)(35)题使用如下图书管理数据库: 图书(总编号 C(6),分类号 C(8),书名C(16),作者 C(6),出版单位 C(20),单价 N(6,2) 读者(借书证号 C(4),单位 C(8),姓名 C(6),性别 C(2),职称 C(6),地址 C(20) 借阅(借书证号 C(4),总编号 C(6);借书日期 D(8)(分数:1.62)A.B.C.D.下列各题使用下列数据表。“班级”表;班级号 班级名11 信息 200801班12 信息 200802班21 计算机 200801班22 计算机 200802班“班级”表:教师编号
12、姓名 班级号 工资 职称 电话T11 李清 11 1500.00 讲师 65854587T22 王晓黎 12 2200.00 教授 63525876T33 欧倩倩 11 1600.00 讲师 65548478T44 刘宏 21 1200.00 助教 63252585T55 赵虎 22 2100.00 教授 68989854T66 胡丽丽 22 1400.00 讲师 65847952T77 刘纷 12 1100.00 助教 65847931(分数:23.01)(1).下列 SQL语句执行后,查询结果共显示几条记录U /U。SELECT姓名,MIN(工资)FROM 教师 GROUP BY班级号 A
13、.0 B.1 C.4 D.7(分数:1.77)A.B.C.D.(2).下列 SQL语句执行后,查询结果的第一条记录的“职工号”是U /U。SELECT班级号,姓名,工资FROM教师ORDER BY班级号,工资 DESC A.T11 B.T33 C.T55 D.T66(分数:1.77)A.B.C.D.(3).下列 SQL语句执行后,查询结果是U /U。SELECT班级班级名,SUM(工资)FROM班级,教师WHERE班级班级号=教师班级号GROUP BY班级班级号 A.各个班级教师工资的平均工资 B.各个班级教师的工资合计 C.所有教师丁资的平均工资 D.所有教师的工资合计(分数:1.77)A.
14、B.C.D.(4).下列 SQL语句执行后,执行结果的第一记录的值为U /U。SELECT班级班级名,COUNT(职称)AS 人数FROM班级,教师WHERE班级.班级号=教师.班级号 AND职称=“讲师“GROUP BY班级班级号ORDER BY 2 A.信息 200801班 B.信息 200802班 C.计算机 200801班 D.计算机 200802班(分数:1.77)A.B.C.D.(5).执行下列 SQL语句,Result 表中的记录个数是U /U。SELECT DISTINCT工资 FROM教师WHERE工资=(SELECT MAx(工资)FROM 教师)INTO TABLE Re
15、sult A.1 B.2 C.3 D.4(分数:1.77)A.B.C.D.(6).有关多表查询结果中,以下说法正确的是_。 A. 只可包含其中一个表的字段 B. 必须包含查询表的所有字段 C. 可包含查询表的所有字段,也可只包含查询表部分字段 D. 以上说法均不正确(分数:1.77)A.B.C.D.(7).在 Visual FoxPro中,以下有关 SQL,的 SELECT语句的叙述中,错误的是 A. SELECT子句中可以包含表中的列和表达式 B. SELECT子句中可以使用别名 C. SELECT子句规定了结果集中的列顺序 D. SELECT子句中列的顺序应该与表中列的顺序一致(分数:1.
16、77)A.B.C.D.(8).为了使模块尽可能独立,要求 A. 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强 B. 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱 C. 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱 D. 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(分数:1.77)A.B.C.D.(9).软件开发模型包括U /U。瀑布模型扇形模型快速原型法模型螺旋模型 A. 、 B. 、 C. 、 D. 、(分数:1.77)A.B.C.D.(10).在结构化方法中,用数据流程图(DFD) 作为描述工具的软件开发阶段是 _。 A. 可行性分析 B. 需求分析 C.
17、 详细设计 D. 程序编码(分数:1.77)A.B.C.D.(11).在 Visual FoxPro中,可以对字段设置默认值的表_。 A.必须是数据库表 B.必须是自由表 C.是自由表或数据库表 D.不能设置字段的默认值(分数:1.77)A.B.C.D.(12).软件工程方法中,表示软件处理流程的工具是 _。 A. 数据流程图 B. 系统流程图 C. 模块结构图 D. 业务流程图(分数:1.77)A.B.C.D.(13).表单的 Caption属性用于 A. 指定表单执行的程序 B. 指定表单的标题 C. 指定表单是否可用 D. 指定表单是否可见(分数:1.77)A.B.C.D.二、B填空题/
18、B(总题数:15,分数:23.00)1.MOD(17,-3)函数的返回值是 1。(分数:2.00)填空项 1:_2.为“金牌榜”表增加一个字段“奖牌总数”,同时为该字段设置有效性规则:奖牌总数=0,应使用SQL语句 ALTER TABLE 金牌榜.U U /U /U奖牌总数 1U U /U /U奖牌总数=0 (10)(12)题使用如下 3个数据库表: 金牌榜.DBF 国家代码 C(3),金牌数 1,银牌数1,铜牌数 1 获奖牌情况.DBF 国家代码 C(3),运动员名称 C(20),项目名称 C(30),名次 1 国家.DBF 国家代码 C(3),国家名称 C(20) “金牌榜”表中一个国家一
19、条记录:“获奖牌情况”表中每个项目中的各个名次都有一条记录,名次只取前 3名。(分数:1.00)填空项 1:_3.在 2号工作区打开数据表 xs.dbf,并设置别名为 student,应输入的命令是: USE xs.dbf IN2U U /U /Ustudent(分数:1.00)填空项 1:_4.在 Visual FoxPro中,让隐藏的 MyForm表单显示在屏幕上的命令是 1。(分数:2.00)填空项 1:_5.关系模型的数据操纵就是建立在关系上的数据操纵,一般有 1、增加、删除和修改四种操作。(分数:2.00)填空项 1:_6.顺序存储方法是把逻辑上相邻的结点存储在物理位置U U /U
20、/U的存储单元中。(分数:1.00)填空项 1:_7.单击表单中的命令按钮,要求弹出一个“祝考试顺利!”的消息对话框,应该在命令按钮的 Click事件中编写代码:_(“祝考试顺利!“)(分数:2.00)填空项 1:_8.打开非结构单索引文件或非结构复合索引文件使用的命令是U U /U /U。(分数:1.00)填空项 1:_9.在“选课”表中删除字段“成绩”的有效性规则,SQL 命令为: ALTER TABLE 选课 ALTER 成绩U U /U /U。(分数:2.00)填空项 1:_10.实现算法所需的存储单元多少和算法的工作量大小分别称为算法的 1。(分数:1.00)填空项 1:_11.若有
21、一个计算类型的程序,它的输入量只有一个 X,其范围是1.0,1.0。现从输入的角度考虑设计一组测试该程序的测试实例为-1.001,-1.0,1.0,1.0001,设计这组测试实,例的方法是U U /U /U。(分数:1.00)填空项 1:_12.设有学生表文件,要查找学生表中还没有输入姓名的记录,则 SQL语句为: SELECT *FROM 学生表 WHERE 姓名 _。(分数:2.00)填空项 1:_13.在 Visual FoxPro中进行参照完整性设置时,要想设置成:当更改父表中的主关键字字段或候选关键字字段时,自动更改所有相关子表中的对应值,应选择 1。(分数:2.00)填空项 1:_
22、14.数据库设计分为 6个设计阶段:需求分析阶段、 1、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。(分数:2.00)填空项 1:_15.命令?LOWER(“Xy2A“)的结果是U U /U /U。(分数:1.00)填空项 1:_二级 VISUAL+FOXPRO-14-2答案解析(总分:67.07,做题时间:90 分钟)一、B选择题/B(总题数:2,分数:44.00)第 31到第(35)题基于学生表 S和学生选课表 SC两个数据库表,它们的结构如下:S(学号,姓名,性别,年龄)其中学号、姓名和性别为 C型字段,年龄为 N型字段。SC(学号,课程号,成绩),其中学号和课程号为 C型字段
23、,成绩为 N型字段(初始为空值)。(分数:21.06)(1).查询学生选修课程成绩小于 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(分数:1.62)A.B.C. D.解析:解析 SQL 中查询语句的用法 评析 题意要求查询学生选修课程成绩小于 60分的学号,要查询的
24、字段是学号字段,条件是成绩字段的值小于 60分,学号和成绩字段在 SC表中,所以查询应基于 SC表进行,字段即字段变量是变量名,不需要加双引号,所以排除 A、D 选项。成绩字段为 N型字段,即为数值型数据,不需要加任何的定界符。所以选项 B也是不正确的,正确的 SQL语句是 SELECT DISTINCT 学号 FROM SC WHERE 成绩60,即选项 C。(2).查询学生表,S 的全部记录并存储于临时表文件 one中的 SQL命令是 _。 A. SELECT*FROM S INTO CURSOR one B. SELECT*FROM S TO CURSOR one C. SELECT*F
25、ROM S INTO CURSOR DBF one D. SELECT*FROM S TO CURSOR DBF one(分数:1.62)A. B.C.D.解析:解析 指定查询去向评析 Into cursor 短语将查询结果存放到临时表中,格式为:select*fromInto cursor cursorname。题目要求查询学生表 S的全部记录并存储于临时表文件 one中,SQL 命令为:SELECT*FROM S INTO CURSOR one,所以选项 A是正确的,其它选项语法均不正确。(3).查询成绩在 70分至 85分之间学生的学号、课程号和成绩,正确的 SQL语句是 _。 A. S
26、ELECT 学号,课程号,成绩 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(分数:1.62)A. B.C.D.解析:解析 BetweenAnd 的含义 评析 查询成绩在 70分至 85分之间学生的学号、课程号和成绩,这三个字段都在 SC表中,因此查询结果应该是从 SC表,成绩在 70到 8
27、5分之间是指包括边界 70分和 85分,A 选项“WHERE 成绩 BETWEEN 70 AND 85”等价于“成绩=70 and 成绩=85”,是符合题意的,所以选项 A是正确的。成绩在 70到 85之间指成绩既要大于等于 70又要小于等于 85,两个条件之间的关系应该为“且”的关系,所以选项 B、C 均不正确。成绩小于等于 85应该指明字段的字段名,所以选项 D的表达式也是不正确的。(4).查询有选课记录,但没有考试成绩的学生的学号和课程号,正确的 SQL语句是 _。 A. SELECT 学号,课程号 FROM sc WHERE 成绩=“ B. SELECT 学号,课程号 FROM sc
28、WHERE 成绩=NULL C. SELECT 学号,课程号 FROM sc WHERE 成绩 IS NULL D. SELEC T学号,课程号 FROM sc WHERE 成绩(分数:1.62)A.B.C. D.解析:解析 空值查询 评析 在 SC表中成绩字段为数值型数据且初始为空值,本题要求查询出有选课记录,但没有考试成绩的学生的学号和课程号,只要成绩记录为空就说明没有考试成绩,即查询成绩字段为空值。查询空值时要使用 IS NULL,而=NULL 是无效的,因为空值不是一个确定的值,所以不能使用“=”这样的运算符进行比较,所以选项 C的语法是正确的。(5).查询选修 C2课程号的学生姓名,
29、下列 SQL语句中错误的是 _。 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 课程号=C2 D. SELECT 姓名 FROM S WHERE 学号= (SELECT 学号 FROM SC WHERE 课程号=C2)(分数:1.62)A.B.C.D. 解析:解析 嵌套
30、查询,连接查询 评析 要求查询选修 C2课程号的学生的姓名,姓名字段在 S表中,而课程号在 SC表中,可知查询的结果来自一张表,而条件来自另一张表,所以这里可以用简单的连接查询或者用嵌套查询。 选项 A使用谓语 EXISTS进行查询,EXISTS 或 NOT EXISTS是用来检查在子查洵中是否有结果返回(即存在元组或不存在元组)。选项 A先查询出 SC表中选修了 C2课程的所有信息,并指定SC表和 S表通过学号公共字段建立联系,接着查询出姓名字段所对应的值,这种查询是可以达到目的的。选项 B是一个嵌套查询,首先在 SC表中查出选修了 C2课程的学生的学号,接着找出这些学号在 S表中所对应的学
31、生的姓名,从而查询出选修了 C2课程的学生的姓名。 选项 C是一个连接查询,SC 表和 S表首先通过学号字段建立连接,再找出选修了 C2课程的学生的姓名。 选项 D中先找出选修了 C2课程的学生的学号,因为选修 C2课程的学生可能不止一个,因此不能直接用“=”号,而应该用“IN“,IN 相当于集合运算符,所以选项 D是错误的。(6).下列关于类、对象、属性和方法的描述中错误的是U /U。 A. 类是对一类相似对象的描述,这些对象具有相同种类的属性和方法 B. 属性用于描述对象的状态,方法用于表示对象的行为 C. 基于同一类产生的两个对象可以分别设置自己的属性值 D. 通过执行不同对象的同名方法
32、,其结果必然是相同的(分数:1.62)A.B.C.D. 解析:解析 类是具有相同属性和相同操作的对象的集合。对每个基类,系统都规定了应具有的属性,指定了可使用方法和驱动事件。同一类产生的不同对象的属性可以分别设置,属性用于描述类的性质、状态,而方法是用于表示对象的行为。(7).在窗体上有一个文本框控件,名称为 TxtTime;一个计时器控件,名称为 Timer1,要求每一秒在文本框中显示一次当前的时间。程序为Procedure Timer1 _()ThisForm.TxtTime.Value=TimeEndProc A. Enabled B. Visible C. Interval D. Ti
33、mer(分数:1.62)A.B.C.D. 解析:解析 本题考查的是计时器控件的事件。计时器控件的事件 Timer每隔一定的时间间隔发生一次,时间间隔由 Interval决定,将定时器的 Interval属性设置为 1000即可,然后编写程序代码。(8).一些重要的程序语言(如 C语言和 Pascal语言)允许过程的递归调用。而实现递归调用中的存储分配通常用 A.栈 B.堆 C.数组 D.链表 (分数:1.62)A. B.C.D.解析:解析 一些较流行的程序语言允许过程的递归调用。递归调用就是过程调用本身。递归实现的是:当过程每一次执行后,都能返回到最近一次调用它的过程中。这样各调用点之间形成一
34、种后进先出关系,而栈结构正适合来存储这些调用点。(9).设有订单表 order(订单号,客户号,职员号,签订日期,金额),查询 2011年所签订单的信息,并按金额降序排序,正确的 SQL命令是U /U。 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 WHI
35、LE YEAR(签订日期)=2011 ORDER BY 金额 DESC(分数:1.62)A. B.C.D.解析:解析 本题考查 SQL排序查询。根据 SQL查询语句的基本结构,可以很容易发现选项 B和选项 D中,用来指定查询条件的 WHERE关键字错误,首先排除这两个选项。然后根据题目要求,需要按金额降序排序查询结果,在排序语句中,ASC 短语表示升序排序,是默认的排序方式,可省略;而 DESC短语表示降序排序,不可以缺少,选项 A和 C中,A 采用的是降序排序,与题目要求相符,故正确答案为 A。(10).命令 DELETE FROM选课 WHERE成绩60 的功能是U /U。 A. 为表“选
36、课”中成绩小于 60分的记录做删除标记 B. 从表“选课”中彻底删除成绩小于 60分的记录 C. 删除“选课”表 D. 删除“选课”表的年龄属性(分数:1.62)A. B.C.D.解析:解析 在 Visual FoxPro中,DELETE-SQL 的命令主要是给指定的删除记录做标记,具体语法格式如下: DELETE FROM DatabaseName! TableName WHERE FilterCondition1AND | OR FilterCondition2. DELETE FROM DatabaseName!TableName指定要给其中的记录加删除标记的表;WHERE Filter
37、Condition1AND | OR FilterCondition2.指定只给某些记录做删除标记, FilterCondition1指定要做删除标记的记录必须满足的条件。 带有删除标记的记录在执行 PACK之前并不从表中做物理删除,可以用 RECALL命令恢复(清除标记)带有删除标记的记录。 本题是删除条件是成绩小于 60分,为这些满足条件的记录做标记。(11).统计只有 2名以下(含 2名)学生选修的课程情况,统计结果中的信息包括课程名称、开课院系和选修人数,并按选课人数排序。正确的命令是 ) SELECT 课程名称,开课院系,COUNT(课程编号)AS 选修人数; FROM 学生成绩,课
38、程 WHERE课程.课程编号=学生成绩.课程编号; GROUP BY 学生成绩.课程编号HAVING COUNT(*)2; ORDER BY COUNT(课程编号) ) SELECT 课程名称,开课院系,COUNT(学号)AS选修人数; FROM 学生成绩,课程 WHERE课程.课程编号=学生成绩.课程编号; GROUP BY 学生成绩.学号HAVING COUNT(*)2; ORDER BY COUNT(学号) ) SELECT 课程名称,开课院系,COUNT(学号)AS 选修人数; FROM 学生成绩,课程 WHERE课程.课程编号=学生成绩.课程编号; GROUP BY 课程名称 HAV
39、ING COUNT(学号)2; ORDER BY 选修人数 ) SELECT 课程名称,开课院系,COUNT(学号)AS 选修人数; FROM学生成绩,课程 HAVING COUNT(课程编号)2; GROUP BY 课程名称 ORDER BY选修人数(分数:1.62)A.B.C. D.解析:解析 统计人数可以使用 COUNT()函数。在本题中由于学号是惟一的,因而统计人数就可以通过统计学生学号的个数来实现,四个选项中可以排除 A、B 两个选项,这两个语句都缺少按选修人数进行排序的子句,选项 D的错误在于没有设定查询条件。(12).打开一个数据库的命令是_。 A. USE B. USE DAT
40、ABASE C. OPEN D. OPEN DATABASE(分数:1.62)A.B.C.D. 解析:解析 在 Visual FoxPro中,打开数据库的命令是 OPEN DATABASE,其具体的语法格式是 OPEN DATABASEFileName|?EXCLUSIVE|SHAREDNOUPDATEVALIDATE,其中各参数和选项的含义如下。 FileName:要打开的数据库名,可以缺省数据库文件扩展名.dbc,如果不指定数据库名或使用问号“?”,则显示“打开”对话框。 EXCLUSIVE:以独占方式打开数据库,即不允许其他用户在同一时刻打开或者使用该数据库。 SHARED:以共享方式打
41、开数据库,即允许其他用户在同一时刻使用该数据库。 NOUPDATE:指定数据库按只读方式打开,即不允许对数据库进行修改,默认的打开方式是读/写方式,即可修改。 VALIDATE:指定 Visual FoxPro检查在数据库中引用的对象是否合法,例如检查数据库中的表和索引是否可用。(13).设有关系 R1和 R2,经过关系运算得到结果 S,则 S是 _。 A.一个关系 B.一个表单 C.一个数据库 D.一个数组 第(34)(35)题使用如下图书管理数据库: 图书(总编号 C(6),分类号 C(8),书名C(16),作者 C(6),出版单位 C(20),单价 N(6,2) 读者(借书证号 C(4)
42、,单位 C(8),姓名 C(6),性别 C(2),职称 C(6),地址 C(20) 借阅(借书证号 C(4),总编号 C(6);借书日期 D(8)(分数:1.62)A. B.C.D.解析:解析 集合的并运算 评析关系运算有两种,一种是传统的集合运算(并;差、交、广义笛卡尔积等),它不仅涉及关系的水平方向(即二维表的行),而且涉及关系的垂直方向(即二维表的列);另一种是专门的关系运算(选择、投影、连接),关系运算的操作对象是关系,运算的结果仍为关系;下列各题使用下列数据表。“班级”表;班级号 班级名11 信息 200801班12 信息 200802班21 计算机 200801班22 计算机 20
43、0802班“班级”表:教师编号 姓名 班级号 工资 职称 电话T11 李清 11 1500.00 讲师 65854587T22 王晓黎 12 2200.00 教授 63525876T33 欧倩倩 11 1600.00 讲师 65548478T44 刘宏 21 1200.00 助教 63252585T55 赵虎 22 2100.00 教授 68989854T66 胡丽丽 22 1400.00 讲师 65847952T77 刘纷 12 1100.00 助教 65847931(分数:23.01)(1).下列 SQL语句执行后,查询结果共显示几条记录U /U。SELECT姓名,MIN(工资)FROM
44、教师 GROUP BY班级号 A.0 B.1 C.4 D.7(分数:1.77)A.B.C. D.解析:解析 进行 SQL计算查询时,还可以加上 GROUP BY子句进行分组计算查询。 通常,一个计算函数的范围是满足 WHERE子句指定条件的所有记录。当加上 GROUP BY子句后,系统会将查询结果按指定列分成集合组。当一个计算函数和一个 GROUP BY子句一起使用时,计算函数的范围变为每组所有的记录。 本题通过 GROUP BY短语将记录按“班级号”分组,然后通过 MIN()函数求每个班级中工资最少的教师信息。不难看出“教师”表中共有 4个不同的班级号,就相当于对 4组记录进行计算求每细中的
45、最小工资,因此。最后得到的结果也有 4条记录。(2).下列 SQL语句执行后,查询结果的第一条记录的“职工号”是U /U。SELECT班级号,姓名,工资FROM教师ORDER BY班级号,工资 DESC A.T11 B.T33 C.T55 D.T66(分数:1.77)A.B. C.D.解析:解析 在 SQL查询中,可以通过 ORDER BY短语对查询的结果进行排序,利用 ASC或 DESC短语指定排序方式,其中 ASC表示按升序排序,此为默认排序方式,DESC 短语表示按降序方式排序。 本题中SQL语句的功能是检索“教师”表中教师的“班级号”、“姓名”和“工资”的信息,查询结果首先按“班级号”
46、字段升序排序,再按“工资”字段降序排序。(3).下列 SQL语句执行后,查询结果是U /U。SELECT班级班级名,SUM(工资)FROM班级,教师WHERE班级班级号=教师班级号GROUP BY班级班级号 A.各个班级教师工资的平均工资 B.各个班级教师的工资合计 C.所有教师丁资的平均工资 D.所有教师的工资合计(分数:1.77)A.B. C.D.解析:解析 本题 SQL语句的功能是通过 GROUP BY短语按“班级号”对记录进行分组;然后通过 SUM()函数求每个班的教师工资的总和;最后输出结果包括“班级”表中的“班级名”和每个班的工资总和字段。两个表进行连接的字段为“班级号”,在 WHERE条件中指出。(4).下列 SQL语句执行后,执行结果的第一记录的值为U