第四章数据库与表的创建和操作实验一自由表的建立一、实验目的(1)掌握在表设计器中建立和修改表结构。(2)掌握在编辑或浏览窗口输入数据,重点掌握逻辑型字段、日期/日期时间型数据、备注/通用型字段数据输入的注意事项。(3)掌握用USE命令打开或关闭表。(4)掌握表数据添加/删除的方法。二、实验内容1.建立学生表student.dbf,其结构和数据如下所示:学生表student.dbf结构字段名类型宽度小数位数学号字符型10姓名字符型10性别字符型2出生日期日期型8党员否逻辑型1院系字符型20专业编号字符型6入学总分数值型51简历备注型4照片通用型4学生表student.dbf记录学号姓名性别出生日期党员否院系入学总分专业编号简历照片1081180101刘丽女06/12/90T电气与电子工程学院575.0080601memogen1081180102李淑子女09/02/90F电气与电子工程学院589.5080601memogen1081150102宋洪博男09/02/91F能源与动力工程学院550.0080501memogen1071150104刘向志男11/07/89T能源与动力工程学院563.0080501memogen1081160520李媛媛女04/05/91F控制与计算机工程学院547.5080605memogen1081160503张函女01/01/90F控制与计算机工程学院538.0080605memogen1081120118侯明斌男07/18/91F经济与管理学院527.0110201memogen步骤要求:在“我的电脑”建立自己的文件夹。打开vfp后,在工具/选项/文件位置选项卡中将其设为默认路径。建立表文件,可以通过项目管理器或文件菜单两种方式建立。结构输入完毕,单击“确定”命令按钮,会弹出对话框提示,选择“是”,则立即打开编辑或浏览窗口输入数据,选择“否”,则以后准备好记录再打开表输入,输入时,需要选择显示/追加方式命令。“刘丽”同学简历字段输入“2009年度获校级三好学生”,并自行添加照片字段,图片自定。2.表数据添加/删除(1)表数据添加在表尾添加新记录,“108113110”,“李艳艳”,“女”,{01/01/91},“经济与管理学院”,534,“110201”。在表尾添加新记录,有“追加新记录”和“追加方式”两种。前者通过“表/追加新记录”命令实现,是在表尾添加一条记录;后者通过“显示/追加方式”命令实现,意思是在表尾连续添加多条记录。(2)表数据删除将表尾新添加的记录,“108113110”,“李艳艳”,“女”,{01/01/91},“经济与管理学院”,534,“110201”删除。3.用USE命令打开、关闭表。4.表结构的修改先以独占方式打开表。再选择显示/表设计器命令打开表设计器进行修改。增加”班级C(16)”字段,将姓名字段字节宽度改为20。将以上两项修该恢复原样。5.表数据修改先以独占方式打开表。再选择显示/编辑命令打开编辑或浏览窗口进行修改。实验二数据库的创建一、实验目的(1)掌握数据库创建的方法。(2)掌握数据库的基本操作。二、实验内容(1)项目管理器创建数据库。创建项目文件“学生成绩管理”。打开“学生成绩管理”项目管理器,选择“数据库”选项卡,单击“新建”命令按钮,在打开的数据库设计器中完成“学生成绩管理”数据库的设计,包含学生表student.dbf、课程表kc.dbf、成绩表cj.dbf、专业表zy.dbf。其中表结构和记录详见书第四章。(2)文件菜单创建数据库。(选作)从菜单中选择【文件/新建】命令,在弹出的“新建”对话框,选定“数据库”文件类型,单击“新建文件”按钮。在打开的对话框中,输入文件名“学生成绩管理”,选择保存位置,单击“保存”。数据库设计器窗口完成“学生成绩管理”数据库的设计,内容同上。(3)打开、关闭数据库打开“学生成绩管理”数据库。关闭“学生成绩管理”数据库。(4)新建、添加、移去表。在“学生成绩管理”数据库设计器中,移去课程表kc.dbf、成绩表cj.dbf。将移去的两张表添加到“学生成绩管理”数据库中。学生成绩管理数据库实验三数据库表属性设置一、试验目的(1)掌握数据词典的概念。(2)掌握数据库表设计器与自由表设计器的异同。(3)掌握在数据库表设计器中如何对字段扩展属性、记录扩展属性的设置方法。二、实验内容1.打开学生表student.dbf,观察其数据库表设计器窗口。2.字段属性设置。(1)字段的显示属性:格式、输入掩码和标题student.dbf中,要求:“学号”字段C(10),只输入数字,不能输入字符;入学总分字段N(5,1),整数位数为3位,小数位数为1位,只接受数字,并指出小数点的位置。设置其输入掩码。(2)字段有效性规则student.dbf表中,要求:“学号”字段首位必须为“1”,在出错提示信息框中显示“学生学号首位必须为1”,设置其字段有效性规则。成绩表cj.dbf中,要求:“成绩”字段不能为负,且不能超过100,在出错提示信息框中显示“成绩非负”,设置其字段有效性规则。3.记录有效性规则课程表kc.dbf中,要求:学分为学时数除以16,设置其记录有效性规则。4.触发器课程表kc.dbf,要求:只允许每年9月添加新记录,每月28号进行删除和修改,设置其触发器。学生表Student.dbf中,要求:只允许修改、添加、删除“党员”的纪录,设置其触发器。实验四索引的建立与使用一、实验目的(1)掌握索引的概念。(2)掌握在表设计器中建立、修改结构复合索引文件的方法。(3)掌握在工作区窗口设置主控索引的方法。二、实验内容1.索引的建立与修改(1)学生表student.dbf中,在表设计器中建立结构复合索引文件student.cdx。包含3个索引标识:按“学号”字段建立主索引,索引标识为xh;按“专业编号”字段建立普通索引,索引标识为zybh;按“总分”字段建立普通索引,索引标识为zongfen。(2)成绩表cj.dbf中,在表设计器中建立结构复合索引文件cj.cdx。包含2个索引标识:按”学号”字段建立普通索引,标识为xh;按”课程编号”字段建立普通索引,标识为kcbh;(3)课程表kc.dbf中,在表设计器中建立结构复合索引文件kc.cdx。包含一个索引标识:按“课程编号”字段建立候选索引,标识为kcbh。(4)专业表zy.dbf中,在表设计器中建立结构复合索引文件kc.cdx。包含一个索引标识:按”专业编号”字段建立候选索引,标识为zybh;2.索引的使用打开学生表student.dbf,在工作区属性对话框中将xh索引标识设为主控索引,浏览表中数据。打开学生表student.db,在工作区属性对话框中将zongfen索引标识设为主控索引,浏览表中数据。实验五数据库与表操作常用命令一、实验目的(1)熟悉vfp命令常用格式。(2)熟练掌握范围子句、FIELDS、FOR子句的使用。(3)掌握数据库与表操作常用命令。二、实验内容1.vfp命令常用格式命令动词[FIELDS表达式][范围][FOR条件][WHILE条件]注意:vfp命令书写规范,一行只能写一条命令,一行写不下,可以写续行符;vfp命令各子句之间可以颠倒顺序;命令不区分大小写。2.list/display命令练习:(1)打开学生表,显示第1条到第3条记录的学生信息。(2)显示所有电气与电子工程学院的学生的学号,姓名。(3)显示第4条记录的信息。(4)显示所有党员的学生记录信息。(5)显示所有1991年之前出生的学生记录信息。(6)显示所有性“刘”的学生记录信息。(7)显示所有入学总分在550分的学生姓名、学号、性别。(8)显示专业编号前4位是”0806”的学生的姓名,学号和院系。3.数据库操作命令(1)数据库的建立、打开CREATEDATABASE数据库名OPENDATABASE数据库名USE数据库名.DBC(2)在数据库中创建、添加、删除表练习:用命令方式打开已经建立好的“学生成绩管理”数据库;将学生表student.dbf从数据库中移去,观察数据库设计器的内容;再将学生表student.dbf添加到数据库中。(3)数据库的关闭CLOSEDATABASE[数据库名]CLOSEALL4.表的操作命令(1)表的打开和关闭USE表文件名USECLOSEALL(2)表文件复制COPYTO文件名[FIELDS字段列表/FIELDSLIKE通配字段名/;FIELDSEXCEPT通配字段名][范围][FOR条件][WHILE条件][[TYPE];[SDF/DELIMITED/XLS]]练习:将控制与计算机工程学院学生的记录复制到新表student_1.dbf中,且新表只包含学号,姓名,院系三个字段;浏览student_1.dbf表中数据。以数据格式将Student表中的前4个记录复制到文本文件并显示文本文件内容。(3)表结构复制COPYSTRUCTURETO文件名[FIELDS字段名表]练习:复制student表结构到student_2.dbf中,新表只包括编号,名称,价格3个字段;显示新表结构。复制一个仅有姓名,编号,院系,性别4个字段的表结构到student_3.dbf中。实验六表的操作命令一、实验目的(1)熟练掌握表记录操作命令:LIST、BROWSE、SKIP/GO、INSERT、DELETE/PACK、REPLACE。(2)逻辑表的设置。二、实验内容1.记录浏览:BROWSE练习:UsestudentBrowsefields姓名,学号,出生日期for党员Browsefields姓名:H=”学生姓名”,学号,出生日期for党员比较以上两条命令的显示结果。2.记录指针移动:GOTOP/BOTTOM;GO数值表达式;SKIP[数值表达式]练习:打开学生表,显示第3条记录到第7条记录的信息。指针指向最后一条记录,再上移3个记录,显示当前记录的信息。执行如下命令,观察屏幕运行结果:UseStudent?Recno()?Bof()Skip-1?Recno()?Bof()GoBottomSkip?eof()3.记录添加:APPEND[BLANK];INSERT[BLANK][BEFORE]练习:复制student.dbf到新的表文件,打开新表;在新表表尾追加一个空白记录;在新表表尾追加一条记录,字段值自行输入;在新表的第3条记录之前插入一条记录,字段值自行输入;4.记录删除与恢复:DELETE[范围][FOR条件][WHILE条件]PACKRECALL[范围][FOR条件][WHILE条件]ZAP练习:复制student.dbf到新的表文件,打开新表;将新表第3条记录打上删除标记;将第5条记录以及之后的所有记录逻辑删除;显示表记录;恢复第3条记录;彻底删除带有删除标记的记录;浏览表中信息;5.记录字段值修改REPLACE字段名1WITH表达式1[ADDITIVE][…][范围][FOR条件][WHILE条件]练习:复制student.dbf到新的表文件,打开新表;将student表所有学生的入学总分字段提高10%;将第3条记录的备注字段添加“2007年评为三好学生”;单个记录与数组间的数据传送:SCATTER[FIELDS字段名表/FIELDSLIKE通配字段名/FIELDSEXCEPT通配字段名][MEMO]TO数组名[BLANK]/MEMVAR[BLANK]GATHERFROM数组名/MEMVAR[FIELDS字段名表/FIELDSLIKE通配字段名/FIELDSEXCEPT通配字段名][MEMO]练习:打开刚刚建立的新表文件,用命令方式实现第一条记录和最后一条记录互换;将新表中第4个记录发送给一组内存变量,并将该同学