在考生文件夹下完成如下简单应用:
(1)在SCORE MANAGER数据库中统计选修了课程的学生人数(选修多门时,只计算1次),将统计结果保存在新表NEW_TABLE中,表中只有一个字段,字段名为“学生人数”。
(2)使用一对多报表向导建立报表。要求:父表为“学生”,子表为“课程”,从父表中选择“姓名”字段,从子表中选择全部字段,通过“学号”为两个表建立联系;按“学号”降序排序;生成的报表名为studen_report。
[微步骤] (1)打开Visual FoxPro程序,在命令窗口输入如下命令,并按Encer键执行该程序。 SELECT CT COUNT(DIST INCT 学号) AS 学生人数 FROM SCORE1 INTO TABLE NEW_TABLE (2)按照题千的要求建立报表,如图1.4所示。 [bbc2d082985e6283282d55e23f01ca02.jpg]
Score Manager数据库中有3个数据库表,它们分别是Student、Score1和CourseE。
为了对Score_Manager数据库中的数据进行查询,设计一个表单Myform3(表单文件名为Myform3,表单名为form1)。表单标题为“成绩查询”;表单中有“查询”和“退出”(名称为C0mmand1和Command2)两个命令按钮。表单运行时,单击“查询”按钮,查询每门课程的最高分,查询结果中含“课程名”和“最高分”字段,结果按课程名升序保存在表NEW_TABLE3中。
单击“退出”按钮,关闭表单。
注意:完成表单设计后要运行表单的所有功能。
[微步骤] 步骤1:执行“文件”|“打开”菜单命令,或单击常用工具栏中的“打开”按钮,打开考生文件夹下的Score_manager数据库。 步骤2:按照题干的要求新建一个表单,然后向表单中添加两个命令按钮,并按照如图1.5所示的步骤对表单进行修改。 [8121503bf63e2300525ec8d872b0b05f.jpg] 提示:查询命令按钮的Click事件代码如下。 ********************************** SELECT Course.课程名,MAX(score1.成绩) AS 最高分; FROM course INNER JOIN score1; INNER JOIN student; ON Student.学号=Score1.学号; ON Course.课程号=Score1.课程号; GROUP BY Course.课程名; INTO TABLE NEW TABLE3 **********************************
(1)在下根据SCORE_MANAGER数据库,使用查询向导建立一个含有“姓名”和“出生日期”的标准查询QUERY3_1.QPR。
(2)从SCORE_MANAGER数据库中删除名为NEW_VIEW3的视图。
(3)用SQL命令向SCORE1表中插入一条记录:学号为“993503433”、课程号为“0001”、成绩为99。
(4)打开表单MYFORM3_4,向其中添加一个“关闭”命令按钮(名称为Command1),表单运行时,单击此按钮关闭表单(不能有多余的命令)。
[微步骤] (A)打开考生文件夹下名为“SCORE_MANAGER”的数据库。单击“向导”按钮,新建一个查询。根据向导的提示,先从名为“STUDENT”的表中选择“姓名”和“出生日期”两个字段,然后根据提示单击“完成”按钮,在弹出的“另存为”对话框中输入文件名“QUERYC_A.QPR”,具体步骤如图B.A所示。 [4cb4deaf2ab113d8080fdadd54119e8e.jpg] (B)打开名为“SCORE_MANAGER”的数据库,在数据库设计器中选中NEW_VIEWC,右击选择“删除”命令,操作步骤如图B.B所示。 [ffb197a1fd7835089aac45472dd989b4.jpg] (C)将下列代码输入到命令窗口中,然后按Enter键执行以下代码。 INSERT INTO SCOREA(学号,课程号,成绩) VALUES("IICE0CDCC", "000A", II) (D)打开名为MYFORMC_D的表单,通过表单控件工具栏添加一个命令按钮到表单中,在表单属性工具栏中将其Caption属性改为“关闭”,然后双击命令按钮,编写其Click事件代码:“ThisForm.Relecqse”。最后保存表单并运行。答案考生文件夹[解析] 本题关键字有:使用查询向导建立查询,删除视图,利用SQL语句插入元组,编写退出表单的代码。通过查询向导来完成查询的创建,在数据库设计器中删除视图(注意“移去”与“删除”的区别),执行SQL的插入语句,最终完成表单的制作。
在考生文件夹下完成如下简单应用:
(1)建立一个名为NEW_VIEW的视图,该视图含有选修了课程但没有参加考试(成绩字段值为NULL)的学生信息(包括“学号”、“姓名”和“系部”3个字段)。
(2)建立表单MYFORM3,在表单上添加一个表格控件(名称为grdCourse),并通过该控件显示表COURSE的内容(要求RecordSourceType属性必须为0)。
[微步骤] (1)本题操作步骤如下。 步骤1:打开名为“Score_manager”的数据库,右键单击数据库空白处,单击“新建本地视图”命令,将“student”和“score1”数据表添加到视图设计器中,具体步骤如图2.3所示。 [21e49eba8859e9c30d120b14c6d2ada3.jpg] 步骤2:将“student 学号”、“student 姓名”和“student 系部”3个字段添加到“选定字段”中,如图2.4所示。 [619d4da3faeb96a72ff3936baa91e0c9.jpg] 步骤3:按照题目要求,在“筛选”选项卡中设置筛选条件,如图2.5所示。 [b6d23a3aeac77cffcfd0cd1491d3a2b7.jpg] 步骤4:保存视图并命名为“NEW_VIEW”,然后运行视图查看结果。 (2)本题操作步骤如下。 步骤1:新建一个表单,向其中添加一个表格控件,将其Name属性改为“grdcourse”,如图2.6所示。 [ebd871746b672995b58e88ac2eaf612d.jpg] 步骤2:选中表格控件,右击选择“生成器”命令,在打开的表格生成器窗口中,将“表格项”选项卡下所有COURSE表的字段添加到选定字段中,如图2.7所示。 [dd43b23c15311ef3d8441cc1009e98a3.jpg] 步骤3:将表格控件的RecordSourceType属性值设置为“0-表”。 步骤4:保存表单并命名为“MYFORM3SCX”,然后运行表单查看结果。
利用菜单设计器建立一个菜单TJ_MENU3,要求如下:
(1)主菜单(条形菜单)的菜单项中有“统计”和“退出”两项。
(2)“统计”菜单下只有一个“平均”菜单项,该菜单项用来统计各门课程的平均成绩,统计结果包含“课程名”和“平均成绩”两个字段,并将统计结果按课程名升序保存在表NEW_TABLE32中。
(3)“退出”菜单项的功能是返回Visual FoxPro系统菜单(只能在命令框中填写相应命令)。
菜单建立后,运行该菜单中的各个菜单项。
[微步骤] 通过“新建”窗口新建一个菜单,根据题目要求进行如下操作,具体步骤如图2.8所示。 [dc7ebf536564fb82ff269f33df9a48fe.jpg] “平均”菜单项的结果是“过程”,“退出”菜单项的结果是“命令”。 提示:平均菜单项下的代码如下。 ********************************** SELECT Course 课程名,MAX(score1.成绩) AS 最高分; FROM course INNER JOIN score1; INNER JOIN student; ON Student.学号=Score1.学号; ON Course.课程号=Score1.课程号; GROUP BY Course.课程名; INTO TABLE NEW TABLE3 **********************************
(1)在下建立数据库BOOKAUTH.DBC,把表BOOKS和AUTHORS添加到该数据库中。
(2)为AUTHORS表建立主索引,索引名为“PK”,索引表达式为“作者编号”。
(3)为BOOKS表建立两个普通索引,第一个索引名为“PK”,索引表达式为“图书编号”;第二个索引名和索引表达式均为“作者编号”。
(4)建立AUTHORS表和BOOKS表之间的永久性联系。
[微步骤] (1)新建一个数据库,根据题目要求向数据库中添加表,具体操作步骤如图3.1所示。 [98cfb1dd1c1ab5eca871d87a02ce0725.jpg] [3eb3644a215df3e2945e5dd293f2bbaf.jpg] (2)为“AUTHORS”表建立主索引,如图3.2所示。 [4fdd1530917576ef72cb6d69e2fc023a.jpg] (3)为BOOKS表建立两个普通索引,如图3.3所示。 [a01d89d389be588803082f0dea90732c.jpg] (4)为AUTHORS表和BOOKS表建立永久联系,如图3.4所示。 [ac0b28ed34bcd60833a6f34b52446a11.jpg] 提示:第4小题中要将从主索引“pk”拖动到普通索引作者编号中,拖动顺序不可颠倒。
在考生文件夹下完成如下简单应用。
(1)打开表单MYFORM4_4,把表单(名称为Form1)标题改为“欢迎您”,将文本“欢迎您访问系统”(名称为Label1的标签)改为25号黑体。最后在表单上添加“关闭”(名称为Command1)命令按钮,单击此按钮关闭表单。
保存并运行表单。
(2)设计一个表单MYFORM4,表单中有两个命令按钮“查询”和“退出”(名称分别为Command1和Command2)。
①单击“查询”命令按钮,查询BOOKAUTH数据库中出版过3本以上(含3本)图书的作者信息,查询信息包括作者姓名和所在城市;查询结果按作者姓名升序保存在表NEW_VIEW4中。
②单击“退出”命令按钮关闭表单。
注意:完成表单设计后要运行表单的所有功能。
[微步骤] (1)操作步骤如下。 步骤1:打开名为MYFORM4_4的表单,根据题目要求修改表单标题,步骤如图3.5所示。 [3b589a1a6e5f512878d09660d7c2b2c2.jpg] [6c29fd4a0a0e25f8e3d4c1a5fb511568.jpg] 步骤2:在表单设计器窗口中,根据题目要求修改文本的相关属性,具体步骤如图3.6所示。 [a2a6efcc91f78e34ecc3a38dcf54a68c.jpg] 步骤3:添加一个命令按钮,将Caption属性设为“关闭”,在Click事件中输入代码“thisform.release”,具体步骤如图3.7所示。 [05bccf4e11f3e98516a811da3c632119.jpg] (2)操作步骤如下。 步骤1:根据题目要求新建一个表单,命名为“MYFORM4”,添加名控件并设置名控件相关属性,步骤如图3.8所示。 [2dd228e52268110f9a1ba956094086b3.jpg] [c0cafc6d983f7a28f0e0d17def7b1b3f.jpg] 步骤2:编写两个命令按钮的Click事件代码。 **********“查询”按钮的Click事件代码********** SELECT 作者姓名,所在城市; FROM authors; WHERE 作者编号 IN (SELECT 作者编号 FROM books GROUP BY 作者编号 HAVING COUNT(*)>=3); ORDERBY 作者姓名; INTO TABLE NEW_VIEW4 ************************************* **********“退出”按钮的Click事件代码********** THISFORM RELEASE ************************************* 步骤3:保存表单并命名为“MYFORM4”,然后运行表单,如图3.9所示。 [f127dd27ab3a371ffff3b0b871c7a743.jpg] 提示:按根据目要求通过查询设计器建立查询,再打开查询设计器工具栏中的工具按钮,把SQL语句复制到指定的程序文件中,也可以完成查询的设计。区分Caption属性和Name属性。不要忘记完成表单后运行表单。
(1)在考生文件夹下,将BOOKS表中所有书名中含有“计算机”3个字的图书复制到BOOKS_BAK表中,以下操作均在BOOKS_BAK表中完成。
(2)复制后的图书价格在原价格的基础上降低5%。
(3)从图书均价高于25元(含25)的出版社中,查询并显示图书均价最低的出版社名称及均价,查询结果保存在new_table4表中(字段名为出版单位和均价)。
[微步骤]
步骤1:将BOOKS表中满足条件的记录复制到BOOKS_BAK表中,并按Enter键,在命令窗口中输入如下代码。
********************************
SELECT * FROM BOOKS WHERE 书名 LIKE "% 计算机 %" INTO TABLE BOOKS BAK
********************************
步骤2:在命令窗口中输入如下代码,更新BOOKS_BAK表中的价格字段,并按Enter键。
********************************
UPDATE BOOKS_BAK SET 价格=价格 * (1-005)
********************************
步骤3:在命令窗口中输入如下代码,并按Enter键。
********************************
&&选择查询字段,通过AS短语指定显示字段,avg()函数用于求平均值
SELECT TOP 1 Books_bak. 出版单位,avg(books bak.价格) as 均价;
&&指定字段来源
FROM books_bak;
&&Group By子句用于按出版单位分组
GROUP BY Books_bak出版单位;
&&Having子句限定分组条件
HAVING 均价>=25;
&&查询结果按均价升序排列
ORDER BY 2;
&&将查询结果存储到new_table4.dbf中
INTO TABLE new_table4 dbf
********************************
提示:建立一个查询然后查看其SQL语句也可获得步骤1与步骤3的代码。其中,步骤3通过查询设计器来完成会更简单。
提示:在BOOKS_BAK表的基础上进行步骤2和步骤3的操作;在步骤3中需注意“TOP”短语的使用,其基本格式为“TOP nExpr[PERCENT]”以此短语来查询均价最低的记录。该短语中,nExDr是数字表达式,如果不使用PERCENT,说明显示前几个记录,如果使用PERCENT,说明显示结果中前百分之几的记录。
基本操作题为4道SQL题,请将每道题的SQL命令粘贴到sq1.txt文件,每条命令占一行,第1道题的命令是第1行,第2道题的命令是第2行,以此类推;如果某道题没有做,相应行为空。
注意:必须使用SQL语句操作且SQL语句必须按次序保存在sq1.txt文件中,其他方法不得分。
在下完成下列操作:
(1)利用SQL SELECT语句将表stock_s1.dbf复制到表stock_bk.dbf中。
(2)利用SQL INSERT语句插入记录("600028",4.36,4.60,5500)到stock_bk表中。
(3)利用SQL UPDATE语句将stock_bk.dbf表中“股票代码”为“600007”的股票“现价”改为888。
(4)利用SQL DELETE语句删除stock_bk.dbf表中“股票代码”为“600000”的股票。
[微步骤] (A)在命令窗口中分别输入下列命令,并按Enter键以执行。 ①SELECT * FROM stock_sA INTO DBF stock_bk 或SELECT * FROM stock_sA INTO TABLE stock_bk ②INSERT INTO stock_bk VALUES("F000BH", D.CF, D.F0, EE00) ③UPDATE stock_bk SET 现价=HHH WHERE 股票代码="F0000G" ④DELETE FROM stock_bk WHERE 股票代码="F00000" (B)新建一个txt文件sqA.txt,将命令按题目要求复制到此文件中,如图D.A所示。 [6ba746d691e61830e37b1c888f8f9158.jpg]答案考生文件夹[解析] 本题关键字有:SQL的查询功能、SQL的插入功能、SQL的更新功能和SQL的删除功能。
在考生文件夹下完成如下简单应用:
(1)根据表stock_name和stock_s1建立一个查询,该查询包含字段:股票代码、股票简称、买入价、现价和持有数量,要求按股票代码升序排序,并将查询保存为query_stock.qpr。注意:股票代码来源于表stock_name中的股票代码。
(2)modi.prq中的SQL语句用于计算“银行”的股票(股票简称中有“银行”二字)的总盈余,现在该语句中的3处错误分别出现在第1行、第4行和第6行,请改正。
注意:不要改变语句的结构、分行,直接在相应处修改。
[微步骤] (1)通过“新建”对话框新建一个查询,将表stock_Name和stock_s1表添加到查询设计器中,添加字段stock_Name.股票代码、stock_Name.股票简称、stock_s1.买入价、stock_s1.现价以及stock_s1.持有数量到选定字段中,并设置按stock_Name.股票代码升排列。 最后保存查询并命名为query_stock。具体步骤如图4.2所示。 [3851f75ef0b592df1a2a2f10e03737f5.jpg] (2)打开考生文件夹下的“modi.prg”文件,修改程序中的如下错误。 第1处错误:SELECT COUNT((现价-买入价) * 持有数量); 改为:SELECT SUM((现价-买入价) * 持有数量); 第2处错误:=; 改为:IN; 第3处错误:WHERE "银行" LIKE 股票简称 改为:WHERE 股票简称 LIKE "%银行%/