第 3 章 Visual FoxPro 数据库与表的基本操作
实验 1 创建与管理数据库
一、实验目的 1.熟练掌握利用项目管理器创建数据库的方法; 2.熟练掌握使用菜单操作方法创建数据库的方法; 3.熟练掌握使用命令创建数据库的方法; 4.熟练掌握打开和关闭数据库的操作方法。 二、实验内容 1.利用三种方法创建三个数据库 (1)使用项目管理器创建数据库,数据库文件名为“学生信息管理” ; 1)打开项目管理器中,并单击“数据”选项卡; 2)在“数据”选项卡中选择“数据库” ,单击右侧的“新建”命令按钮; 3)输入数据库名称“学生信息管理”即可。 (2)使用菜单操作方法创建数据库,数据库文件名为“成绩信息管理” ; 1)单击“文件”→“新建” ,打开“新建”对话框; 2)选择“数据库”然后单击“新建文件”打开“创建”对话框; 3)输入数据库名称“成绩信息管理”即可。 (3)使用命令方式创建数据库,数据库文件名为“课程信息管理” 。 CREATE DATABASE 课程信息管理 2.数据库的打开与关闭 当数据库建好后,要对数据库操作,例如,要向数据库中添加数据表等,必须先打开相 应的数据库。 (1)使用命令方式打开数据库。 OPEN DATABASES 学生信息管理 (2)使用命令方式关闭数据库。 CLOSE DATABASES 或: CLOSE ALL (3)使用菜单方式打开数据库。 ①单击系统菜单“文件”菜单,然后选择“打开”菜单项,将打开“打开”对话框,如 图 31 所示。 ②在“文件类型(T) ”中选择“数据库(*.dbc) ”选项,选择要打开的数据库文件名或在“文件名(N) ”对话框中输入要打开的数据库文件名,即可打开“数据库设计器” 。 图 31 “打开”对话框 (4)使用菜单方式关闭数据库。 单击系统菜单“文件”菜单,然后选择“关闭”菜单项,即可关闭“数据库设计器” 。
实验 2 创建数据库表
一、实验目的 1.熟练掌握新建数据库表的方法和步骤; 2.熟练掌握表设计器的使用。 二、实验内容 本实验创建如表 31 至表 35 的表结构: 表 31 “学生”表结构 字段名 字段类型 宽度 索引 空值 学号 C 9 主索引 姓名 C 8 性别 C 2 出生日期 D 8 允许为空,默认 NULL 民族 C 20 允许为空,默认 NULL 所属院系 C 20 表 32 “成绩”表结构 字段名 字段类型 宽度 索引 空值 学号 C 9 普通索引 课程号 C 2 普通索引 成绩 N 6,2 允许为空,默认 0表 33 “课程”表结构 字段名 字段类型 宽度 索引 空值 课程名 C 10 课程号 C 2 主索引 学分 N 3,1 学时 N 2 表 34 “授课”表结构 字段名 字段类型 字段宽度 索引 空值 教师号 字符型 4 普通索引↑ 否 课程号 字符型 4 普通索引↑ 否 上课地点 字符型 10 允许为空,默认 NULL 上课时间 字符型 10 允许为空,默认 NULL 表 35 “教师”表结构 字段名 字段类型 宽度 索引 空值 教师号 C 3 主索引 教师姓名 C 6 所属院系 C 10 职称 D 6 允许为空,默认 NULL 创建数据库表有以下三种方法: (1)使用项目管理器创建数据库表“学生” 。 1)新建一个项目“学生管理” ; 2)将数据库“学生信息管理”添加到项目管理器中; 3)选择数据库下的表,然后单击右侧的“新建”命令按钮; 4)输入表名“学生” ,单击“确定”按钮,则打开数据库表“学生”的表设计器,按照 给定的表结构新建表。 (2)打开“学生信息管理”的数据库设计器,在数据库设计器中新建表“成绩”和“课程” 。 1)打开“学生信息管理”数据库设计器,在数据库设计器的空白处右击,在弹出的快捷 菜单中选择“新建表”选项; 2)打开“创建”对话框,输入表名,单击“确定”按钮,则打开表设计器,按照给定的 表结构新建表即可。 (3)使用命令方式在数据库“学生信息管理”中新建“授课”和“教师”表。 OPEN DATABASE 学生信息管理 CREATE 授课 CREATE 教师
实验 3 操作表中数据
一、实验目的 1.掌握数据的输入方法; 2.掌握数据的浏览方法; 3.掌握表记录的增加、删除、修改等基本操作。 二、实验内容 1.按照表 36 至表 310 中内容所示分别输入各表记录。 表 36 表“学生”的记录 学号 姓名 性别 出生日期 民族 所属院系 201331001 付海东 男 19990222 汉 外语 201331002 王晓荣 女 19870512 回 外语 201331003 郭梅 女 19880806 汉 计算机 201331004 王晓东 男 19871104 满 数学 201331009 张天栋 男 19900729 汉 通信 201331010 孙明明 男 .NULL. 回 计算机 表 37 表“成绩”的记录 学号 课程号 成绩 201331001 02 91 201331001 05 88 201331001 03 85 201331004 05 95 201331005 01 94 201331005 03 76 201331006 01 83 表 38 表“课程”的记录 课程名称 课程号 学分 学时 计算机基础 01 2 64 国际商务 02 2.5 86 大学英语 03 3 96 高等数学 04 3 96 电子商务 05 1 52表 39 表“授课”的记录 教师号 课程号 上课地点 上课时间 001 01 1#108 12 002 03 2#223 34 002 01 1#430 12 003 04 1#522 78 004 05 3#102 34 表 310 表“教师”的记录 教师号 教师姓名 所属院系 职称 001 高爱平 计算机系 教授 002 孙祥华 数学系 助教 003 李明珑 英语系 讲师 004 张强 数学系 讲师 005 朱俊峰 计算机系 副教授 2.使用浏览器方式浏览“学生”表中记录,并修改表中数据,将学号为“201331003” 的民族改为“藏” 。 (1)打开“学生”表浏览窗口。 USE 学生 BROWSE (2)在浏览窗口选择要修改的数据,进行修改。 3.使用命令方式操作表中的数据: (1)使用命令将数据库表“学生”中的记录追加到数据库表“student”中。 操作步骤如下: USE student APPEND FROM 学生 (2)使用命令在“学生”表的第三条纪录前插入一条新记录(201331015,肖慧,女, 19940916,英语,上海)。 操作步骤如下: GO 3 INSERT BEFORE (3)使用命令显示“学生”表中出生日期在 1988 年 12 月 12 日之前的学生的姓名,出 生日期和家庭住址。 操作步骤如下: USE 学生 LIST 姓名,出生日期,家庭住址 FOR 出生日期<{^19881212} (4)使用命令显示“学生”表中出生日期在 1988 年 12 月 12 日之后的学生的姓名、出 生日期和家庭住址。 操作步骤如下: USE 学生 LIST 姓名,出生日期,家庭住址 FOR 出生日期>{^19881212}
(5)使用命令将“学生”表中性别为“女”的记录逻辑删除。 操作步骤如下: USE 学生 DELETE FOR 性别="女" (6)使用命令将“成绩”表中的成绩降低 20%。 操作步骤如下: USE 成绩 REPLACE ALL 成绩 WITH 成绩*0.8 (7)使用 DISPLAY 命令在 VFP 主屏幕显示数据库表“课程”中的课程编号、课程名字段。 操作步骤如下: USE 课程 DISPLAY 课程号,课程名称 (8)使用命令显示数据库表“教师”的表结构。 操作步骤如下: USE 教师 LIST STRUCTRUE (9)使用命令显示数据库表“课程”的全部记录,不显示记录号。 操作步骤如下: USE 课程 LIST OFF
实验 4 修改表结构
一、实验目的 1.掌握修改表结构的方法; 2.掌握复制表结构的方法。 二、实验内容 1.修改表结构 (1)在“数据库设计器”中,选中表“学生.dbf” ,右击选择“修改”菜单,调出“表设 计器” ,在表设计器中完成下列修改: ①将“学号”字段宽度改为“9” 。 ②设置“学生”数据表的“民族”字段默认值为“汉族” 。 ③设置“学生”数据表的“性别”字段,使其值只能是“男”或“女” ,否则显示错误信 息“性别只能是男或女” 。 ④单击“确定”按钮保存修改。 (2)在“数据库设计器”中,选中表“课程.dbf” ,右击选择“修改”菜单,调出“表设 计器” ,在表设计器中完成下列修改: ①为“学时”字段设置约束规则:学时>0,违背规则时的提示信息是“学时必须大于零” 。②为字段“课程号”输入格式,第一个字符必须为字母,后九个字符必须为数字。 (3)使用命令方式修改“教师”表结构,设置“教师”数据表的“职称”字段默认值为 “助教” 。 open database 学生信息管理 &&打开数据库学生信息管理 use 教师 modify structure 打开“教师”表设计器,修改“职称”字段默认值为“助教” 。 2.复制表结构 (1)基于“学生”表结构,创建一个“student”表结构,其中包括“学号、姓名、性别、 民族、所属院系”5 个字段,将其保存在数据库“学生信息管理”中。 Open database 学生信息管理 Use 学生 Copy structure to student filds 学号,姓名,性别,民族,所属院系 Browse Use (2)复制“学生”表中的全部内容,包括“学生”表结构和“学生”表中的所有信息。 Open database 学生信息管理 Use 学生 Copy to student2 Browse Use
实验 5 索引与数据完整性
一、实验目的 1.熟练掌握索引的设置方法与功能; 2.熟练掌握实体完整性的设置方法与功能; 3.熟练掌握域完整性的设置方法与功能; 4.熟练掌握参照完整性的设置方法与功能; 二、实验内容 1.为数据库表设置索引 (1)将数据库表“学生”的“学号”字段设为主索引,索引名为“xh” ,索引表达式为 “学号” 。 操作步骤如下: ① 在数据库设计器中,选中数据库表“学生”然后右击,在快捷菜单中选择“修改”选 项,则打开表“学生”的表设计器; ② 在表设计器选中“学号”字段,将其索引项设为升序; ③ 在表设计器中,单击“索引”选项卡,输入索引名“xh” ,然后选择索引类型为主索 引,最后单击“确定”按钮即可。(2)将数据库表“成绩”的“学号”字段设为普通索引,索引名为“xh” ,索引表达式 为“学号” ,并将“课程号”字段设为普通索引,索引名和索引表达式均采用默认值。 操作步骤如下: ① 在数据库设计器中,选中数据库表“成绩”然后右击,在快捷菜单中选择“修改”选 项,则打开表“成绩”的表设计器; ② 在表设计器,将“学号”字段与“课程号”字段的索引项设为升序; ③ 在表设计器中,单击“索引”选项卡,将索引名“学号”改为“xh” ,然后选择索引 类型为普通索引,最后单击“确定”按钮即可。 (3)将数据库表“课程”的“课程号”字段设为主索引,索引名为“课程号” ,索引 表达式为“课程号” 。将“教师号”字段设为普通索引,索引名为“jsh” ,索引表达式为“教 师号” 。 操作步骤如下: ① 在数据库设计器中,选中数据库表“课程”然后右击,在快捷菜单中选择“修改”选 项,则打开表“课程”的表设计器; ② 在表设计器,将“课程号”字段与“教师号”字段的索引项设为升序; ③ 在表设计器中,单击“索引”选项卡,将索引名为“课程号”的索引类型设为主索引, 将索引名“教编号”改为“jsh” ,最后单击“确定”按钮即可。 (4)将数据库表“授课”的“教师号”字段设为普通索引,索引名为“jsh” , 索引表达 式为“教师号” ,并将“课程号”字段设为普通索引,索引名和索引表达式均采用默认值。 操作步骤如下: ① 在数据库设计器中,选中数据库表“授课”然后右击,在快捷菜单中选择“修改”选 项,则打开表“授课”的表设计器; ② 在表设计器中,将“教师号”与“课程号”字段的索引项设为升序; ③ 在表设计器中,单击“索引”选项卡,将索引名“教师号”改为“jsh” ,最后单击“确 定”按钮即可。 (5)将数据库表“教师”的“教师号”字段设为主索引,索引名为“jsh” ,索引表达式 为“教师号” 。 操作步骤如下: ① 在数据库设计器中,选中数据库表“教师”然后右击,在快捷菜单中选择“修改”选 项,则打开表“教师”的表设计器; ② 在表设计器中,将“教师号”字段的索引项设为升序; ③ 在表设计器中,单击“索引”选项卡,将索引名“教师号”改为“jsh” ,最后单击“确 定”按钮即可。 2.在数据库设计器中建立表之间的联系 (1)通过索引项“xh”建立数据库表“学生”和“成绩”之间的联系。 方法:打开“学生信息管理”数据库设计器,将数据库表“学生”的主索引“xh”拖拽 到数据库表“成绩”的普通索引“xh”上面即可。 (2)通过索引项“课程号”建立数据库表“成绩”和“课程”之间的联系。 方法:打开“学生信息管理”数据库设计器,将数据库表“课程”的主索引“课程号” 拖拽到数据库表“成绩”的普通索引“课程号”上面即可。
(3)通过索引项“课程号”建立数据库表“课程”和“授课”之间的联系。 方法:打开“学生信息管理”数据库设计器,将数据库表“课程”的主索引“课程号” 拖拽到数据库表“授课”的普通索引“课程号”上面即可。 (4)通过索引项“jsh”建立数据库表“教师”和“授课”之间的联系。 方法:打开“学生信息管理”数据库设计器,将数据库表“教师”的主索引“jsh”拖拽 到数据库表“授课”的普通索引“jsh”上面即可。 3.设置数据域完整性 (1)为数据库表“学生”的“性别”字段设置字段有效性。 要求:规则是性别为男或女;信息是“输入错误,性别必须为男或女” ;默认值为“男” 。 操作步骤如下: ① 打开数据库表“学生”的表设计器,选中“性别”字段; ② 在字段有效性中输入: l 规则:性别="男" or 性别="女" l 信息: “输入错误,性别必须为男或女” l 默认值: “男” (2)为数据库表“成绩”的“成绩”字段设置字段有效性。 要求:规则是成绩小于等于 100 并且成绩大于等 0;信息是“输入错误,成绩在 0 至 100 之间” ;默认值是 60。 操作步骤如下: ① 打开数据库表“成绩”的表设计器,选中“成绩”字段; ② 在字段有效性中输入: l 规则:成绩>=0 and 成绩<=100 l 信息: “输入错误,成绩在 0 至 100 之间” l 默认值:60 4.设置数据参照完整性 在数据库表“学生”和“成绩”之间建立参照完整性。 要求:更新规则为“级联” ;删除规则为“级联” ;插入规则为“忽略” 。 操作步骤如下: (1)打开“学生信息管理”数据库,选择菜单“数据库|清理数据库”命令,清理数据库; (2)在数据库表“学生”和“成绩”的连线上右击,在弹出的快捷菜单中选择“编辑参 照完整性”选项,打开“参照完整性生成器” ; (3)在“参照完整性生成器”中设置“更新规则”为“级联” ; “删除规则”为“级联” ; “插入规则”为“忽略” 。
实验 6 自由表的基本操作
一、实验目的 1.熟练掌握在数据库中删除、添加表的操作方法; 2.熟练掌握自由表的创建与管理。二、实验内容 1.创建自由表 (1)使用命令创建自由表“customer” 。 操作步骤如下: ① 关闭当前数据库,可以使用 CLOSE DATABASE 命令; ② 使用 CREATE customer 命令。 (2)使用菜单操作方式创建自由表“order” 。注:当前没有打开任何数据库。 操作步骤如下: ① 关闭当前数据库,可以使用 CLOSE DATABASE 命令; ② 单击菜单“文件|新建”命令项,弹出“新建”对话框,选择“表”然后单击右侧的“新 建文件”命令按钮,打开“创建”对话框,输入表名,单击“确定”按钮; ③ 打开自由表的表设计器(注意观察自由表的表设计器与数据库表的表设计器的区别), 按照给定的表结构新建自由表 order。 自由表的表结构如表 311 和表 312 所示。 表 311 表“customer”的表结构 字段名 字段类型 宽度 索引 空值 客户号 C 5 客户名 C 4 普通索引 性别 C 2 允许为空,默认 NULL 所在城市 D 10 表 312 表“order”的表结构 字段名 字段类型 宽度 索引 空值 订单号 C 8 客户号 C 5 普通索引 订单数量 N 4 允许为空,默认 NULL 2.操作自由表 (1)新建一个“订货”数据库,将自由表“customer”和自由表“order”添加到该数据 库中,此时自由表“customer”和自由表“order”成为数据库表。 操作步骤如下: ① 新建一个“订货”数据库,打开数据库设计器; ② 在数据库设计器的空白处右击,在弹出的快捷菜单中选择“添加表” ; ③ 在“打开”对话框中选择自由表“customer”和自由表“order”将其添加到“订货” 数据库中。
(2) 使用命令方式将数据库表 “customer” 移出数据库; 使用操作方式将数据库表 “order” 移出数据库。 操作步骤如下: ① 使用 REMOVE TABLE customer 命令; ② 在数据库设计器中选择表“order”在其上右击,在弹出的快捷菜单中选择“删除”命 令,则打开一个对话框,选择“移去”命令即可。