一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分)
1、在考生文件夹下建立数据库KS7;并将自由表SCOR加入数据库中。
2、按下面给出的表结构。给数据库添加表STUD
字段 字段名 类型 宽度 小数
1 学号 字符型 2
2 姓名 字符型 8
3 年龄 数值型 2 0
4 性别 字符型 2
5 院系号 字符型 2
3、为表STUD建立主索引,索引名为学号,索引表达式为学号
为表SCOR建立普通索引,索引名为学号,索引表达式为学号
4、STUD表和SCOR表必要的索引已建立,为两表建立永久性的联系。
本题的主要考核点:
数据库的建立、将自由表添加到数据库中、在数据库中建立新表、主索引和普通索引的建立、为已建立索引的表建立联系
解题思路:
1.建立数据库的常用方法:
在项目管理器中建立数据库;
通过"新建"对话框建立数据库;
使用命令交互建立数据库,命令为: CREATE DATABASE [DatabaseName|?]
将自由表添加到数据库中,可以在项目管理器或数据库设计器中完成。在数据库设计器中可以从"数据库"菜单或在数据库设计器上单击右键弹出的菜单中选择"添加表",然后在"打开"对话框中选择要添加到当前数据库的自由表。还可用ADD TABLE命令添加一个自由表到当前数据库中。
2.打开数据库设计器,在"数据库"菜单中或在数据库设计器上单击右键弹出的菜单中选择"新建表",新建表并输入字段。
3.在表设计器中的索引页面建立索引。
4.建立两个表的联系:在父表中选中主索引,按住鼠标拖动至子表相应的普通索引上,释放鼠标,联系即已建立。
二、简单应用(2小题,每题20分,计40分)
1、在考生文件夹中有一个学生数据库STU,其中有数据库表STUDENT存放学生信
息,使用菜单设计器制作一个名为STMENU的菜单,菜单包括"数据操
作"和"文件"两个菜单栏。
每个菜单栏都包括一个子菜单。菜单结构如下:
数据操作
数据输出
文件
保存
退出
其中:
数据输出子菜单对应的过程完成下列操作:打开数据库STU,使用SQL的
SELECT语句查询数据库表STUDENT 中所有信息,然后关闭数据库。
退出菜单项对应的命令为SET SYSMENU TO DEFAULT,使之可以返回到系统菜
单。保存菜单项不做要求。
2、在考生文件夹中有一个数据库SDB,其中有数据库表STUDENT2、SC和
COURSE2。三个表如下所示:
STUDENT2(学号,姓名,年龄,性别,院系编号)
SC(学号,课程号,成绩,备注)
COURSE2(课程号,课程名,先修课号,学分)
用SQL语句查询"计算机软件基础"课程的考试成绩在85分以下(含85分)的学
生的全部信息并将结果按学号升序存入 NOEX.DBF文件中。(库的结构同
STUDENT2,并在其后加入成绩字段)
第1题,本题的主要考核点是菜单的制作和数据库基本命令。
新建菜单可按下列步骤:选择"文件"菜单中的"新建"命令,在"新建"对话框中选择"菜单",单击"新建文件"按钮。在 "新建菜单"对话框中选择"菜单"按钮,调出"菜单设计器"。也可用CREATE MENU命令直接调出菜单设计器。在菜单名称中填入"数据操作",结果为子菜单,单击编辑;在子菜单的菜单名称中输入"�数据输出",结果为过程。在过程中输入下列命令:
OPEN DATA STU
SELECT * FROM STUDENT
CLOSE ALL
"文件"菜单同上,其中"退出"菜单对应结果为命令,命令为SET SYSMENU TO DEFAULT
第2题,本题的主要考核点是SQL语句的查询。查询如下。
SELECT Student2.*, Sc.成绩;
FROM sdb!student2 INNER JOIN sdb!sc;
INNER JOIN sdb!course2 ;
ON Sc.课程号 = Course2.课程号 ;
ON Student2.学号 = Sc.学号;
WHERE Course2.课程名 IN ("计算机软件基础");
AND Sc.成绩 <= 85;
ORDER BY Student2.学号;
INTO TABLE noex.dbf
三、综合应用(1小题,计30分)
现有医院数据库DOCT3,包括三个表文件:YISHENG.DBF(医生)、
YAO.DBF(药品)、CHUFANG.DBF(处方)。设计一个名为CHUFANG3的菜单,
菜单中有两个菜单项"查询"和"退出"。
程序运行时,单击"查询"应完成下列操作:查询同一处方中,包含"感冒"两个
字的药品的处方号、药名和生产厂,以及医生的姓名和年龄,把查询结果按处方
号升序排序存入JG9数据表中。JG9的结构为:(姓名,年龄,处方号,药名,生产
厂)。最后统计这些医生的人数(注意不是人次数),并在JG9中追加一条记录,将
人数填入该记录的处方号字段中。
单击"退出"菜单项,程序终止运行。
(注:相关数据表文件存在于考生文件夹下)
本题主要的考核点:
菜单的建立、结构化查询语言(SQL)中的联接查询、查询的去向等知识点
解题思路:
利用菜单设计器定义两个菜单项,在菜单名称为"查询"的菜单项的结果列中选择"过程",并通过单击"编辑"按钮打开一个窗口来添加"查询"菜单项要执行的命令。在菜单名称为"退出"的菜单项的结果列中选择"命令",并在后面的"选项"列中输入以下退出菜单的命令:SET SYSMENU TO DEFAULT
"查询"菜单项要执行的程序:
首先打开数据库文件 OPEN DATABASE DOCT3.DBC
我们分析最后的结果是要从三个有相互联系的表中得到信息,这自然要用到联接查询。可以通过表chufan和yao之间的联接我们得到,某一个处方所用到的药品的名字,进而我们可以得到处方中用到包含有"感冒"两个字的处方的处方号。我们也可以通过表chufang和 yisheng之间的联接来得到,某一个处方是那一个医生开出的。这样我便可以得到满足条件的查询。如下所示:SELECT 处方号,药名,生产厂,姓名,年龄 FROM yisheng,yao,chufang WHERE CHUFANG.药编号=YAO.药编号 AND CHUFANG.职工号=YISHENG.职工号 AND 药名 IN ("感冒").另外还要求要按照处方号的升序进行排序,这里要用到ORDER BY 处方号 DESC子句,另外还要求将结果存入JG9中,要用到INTO TABLE JG9.
通过以下的方式来得到生成的JG9中所包含的医生的人数,先生成一个临时表CurTable:SELECT * FROM JG9 GROUP BY 姓名 INTO CURSOR CurTable;然后我们得到临时表有多少条记录并写入变量j中,COUNT TO j
最后我们利用INSERT将变量j的内容做为一条新的记录插入到JG9中:INSET INTO JG9 (处方名) VALUES (j)。
责任编辑:小草