一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)
在考生文件夹下,打开顾客数据库CDB,完成如下操作:
1.在会员表CUS中增加一个字段,字段名为手机号,数据类型为"字符",宽度为11;在会员购货明细表CBC中分别给"数量"和"单价"字段设置有效性规则,要求:数量大于等于1,默认值为1;单价大于等于1,默认值为1。
2.在会员购货明细表CBC中创建一个主索引,索引名为cbc,对应的索引表达式为会员号、商品号和日期字段的组合(会员号+商品号+DTOC(日期));注意,日期字段是日期型数据类型,在索引表达式使用DTOC函数将日期字段转换为字符型。
3.在会员购货明细表CBC中创建两个普通索引(升序),索引名分别为会员号和商品号,对应索引表达式分别为会员号和商品号。建立会员表CUS与会员购货明细表CBC之间的永久联系;建立商品表COMM与会员购货明细表CBC之间的永久联系。
4.使用SQL的SELECT语句查询会员表CUS中会员号、会员名和单位字段,将查询结果存储为NCUS表,并将SQL的SELECT语句存储到名为ONE.PRG的文件中。
注意,查询结果不要排序。
解题思路:
1、打开CUS表设计器,将光标移动到最后的空字段格中,输入新的字段名、字段类型和宽度。再打开CBC表设计器,选择"数量"字段,在其字段有效性规则栏中输入:数量>=1,在默认值栏中输入:1;选择"单价"字段,在其字段有效性规则栏中输入:单价>=1,在默认值栏中输入:1。
2、打开CBC表的表设计器,打开"索引"选项卡,在索引名处输入:cbc,类型选择"主索引",表达式为:会员号+商品号+DTOC(日期)。
3、接着在索引名处输入:会员号,类型选择"普通索引",升序,表达式为:会员号;再在索引名处输入:商品号,类型选择"普通索引",升序,表达式为:商品号。在数据库设计器中,选中CUS表中的索引"会员号"并拖动到CBC表的"会员号"的索引上并松开,这样两个表之间就建立起了永久联系。再用同样的方法设置COMM与CBC间的永久联系。
4、使用SQL语句查询相应的记录值,SQL命令为:
SELECT 会员号,会员名,单位 FROM cus INTO TABLE ncus.dbf
二、简单应用(2小题,每题20分,计40分)
在考生文件夹下,打开会员数据库CDB,完成如下简单应用:
1.使用查询设计器设计一个名称为TWO的查询,查询2003年会员购买商品的情况,将结果按会员号排序(升序)并输出(查询去向)到TWO表中。TWO表中的字段名分别为:会员号、会员名、商品名、金额,其中:会员号来自会员表CUS,金额通过"数量*单价"计算。设计完成后,运行该查询。
2.修改一个名称为THREE.PRG的命令文件。该命令文件查询累计消费金额在5000元以上、每次购买数量大于或等于10的"女"会员的会员号、会员名、单位和电话,结果输出到表THREE中。该命令文件在第3行、第6行、第7行有错误,打开该命令文件,直接在错误处修改,不允许增加和删除行。修改完成后,运行该命令文件。
本题主要考核点:利用查询设计器建立查询、修改程序文件。
解题思路:
第1题:建立查询可以使用"文件"菜单完成,选择文件--新建--查询--新建文件,将"COMM"、"CBC"和"CUS"表添加到查询中,从字段选项卡中依次选择"会员号"、"会员名、"商品名",在"函数和表达式"中输入"数量*单价 AS 金额",并添加到选定字段中;切换到"筛选"选项卡,在表达式中输入:"year(Cbc.日期)","条件"选择"=","实例"中输入2003;切换到"排序依据"选项卡并在其中选择字段"会员号",排序选项为"升序";单击查询菜单下的"查询去向",选择表,在"表名"右边的对话框中输入表名TWO,最后运行该查询。
第2题:利用"文件"菜单下的"打开"命令打开程序文件THREE.PRG。将命令文件修改为:
SELECT 会员号,会员名,单位,电话;
FROM cus;
WHERE 性别 别="女" and 会员号=ANY;
( SELECT 会员号;
FROM cbc;
WHERE 数量>=10;
GROUP BY 会员号 HAVING SUM(数量*单价)>=5000);
INTO TABLE THREE
三、综合应用(1小题,计30分)
在考生文件夹下,打开会员数据库CDB,完成如下综合应用:
1.建立文件名为form的表单,在表单中设计"统计"和"退出"两个按钮。要求如下:
(1)在"统计"按钮(Command1)中,编写程序,根据会员统计时所购买商品的总金额(数量*单价),确定该会员为"金卡会员"、"银卡会员"、"铜卡会员"或"普通会员",并将其写入会员表CUS的"会员类型"字段中。
金卡会员,总金额>=15000元;
银卡会员,总金额<15000 and="">=10000元;
铜卡会员,总金额<10000 and="">=5000元;
普通会员,总金额<5000元
(2)单击"退出"按钮(Command2)时,关闭表单。
(3)表单设计完成后,运行表单,单击"统计"按钮进行统计,然后单击"退出"按钮关闭表单。
本题主要考核点:表单文件的创建、控件的属性的修改、SQL语句运用。
解题思路:
①建立表单:可通过"文件"菜单下的"新建"命令或用命令CREATE FORM打开表单设计器。
②在表单上添加两个命令按钮,并进行适当的布置和大小调整。
③设置命令按钮的Caption属性值。
④设置"统计"按钮的Click事件代码:
UPDATE CUS SET 会员类型="金卡会员" WHERE 会员号=ANY(SELECT 会员号 FROM cbc GROUP BY 会员号 HAVING SUM(数量*单价)>=15000)
UPDATE CUS SET 会员类型="银卡会员" WHERE 会员号=ANY(SELECT 会员号 FROM cbc GROUP BY 会员号 HAVING SUM(数量*单价)<15000 and="" sum="">=10000)
UPDATE CUS SET 会员类型="铜卡会员" WHERE 会员号=ANY(SELECT 会员号 FROM cbc GROUP BY 会员号 HAVING SUM(数量*单价)<10000 and="" sum="">=5000)
UPDATE CUS SET 会员类型="普通会员" WHERE 会员号=ANY(SELECT 会员号 FROM cbc GROUP BY 会员号 HAVING SUM(数量*单价)<5000)
⑤设置"退出"按钮的Click事件代码:
Release Thisform
⑥保存表单并运行,单击"统计"按钮,再单击"退出"按钮。[ 结 束 ]