第5章 数据库的创建与操作.docx
- 文档编号:8020579
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:22
- 大小:304.88KB
第5章 数据库的创建与操作.docx
《第5章 数据库的创建与操作.docx》由会员分享,可在线阅读,更多相关《第5章 数据库的创建与操作.docx(22页珍藏版)》请在冰豆网上搜索。
第5章数据库的创建与操作
第5章数据库的创建与操作
教学目标与要求:
熟练掌握数据库的建立及其操作
熟练掌握在操作数据库中表
熟练掌握设置表
熟练掌握表间关系及多表操作
教学重点难点:
工作区
表关系的建立
多表操作
学习指导:
VisualFoxPro是一个优秀的关系型数据库管理系统,管理数据库是它的基本功能。
在VisualFoxPro中,数据库实际上是一个容器,用于管理存放各种数据对象,而且这些数据对象是以数据表为单位组织的,数据库文件的扩展名为.DBC。
前面章节介绍的表是指游离于数据库之外的自由表,这些表一旦放入数据库中就成为数据库表。
一个数据库中可包含若干张数据表,表和表之间可建立关系。
本章主要介绍数据库的建立和操作以及对数据库中数据表的操作等内容,这是数据库系统开发应用程序的基础。
教学内容:
5.1数据库的建立与基本操作
5.1.1数据库的建立
数据库的建立一般采用两种方法:
一是使用菜单命令建立数据库;二是使用键盘命令建立数据库。
1.使用菜单命令建立数据库
下面以在“D:
\学籍项目”文件夹下创建“学生库.DBC”为例说明具体建立方法。
步骤如下:
(1)在系统菜单中打开“文件”菜单,选“新建”命令,或直接单击工具栏上的“新建”按钮,出现如图5-1所示的“新建”对话框。
图5-1“新建”对话框
(2)在“新建”对话框中选“数据库”项,然后单击“新建文件”按钮,出现如图5-2所示的“创建”数据库对话框。
(3)在“创建”对话框中的“数据库名”栏中输入库文件名:
学生库;在“保存在”栏中选好要保存的文件夹D:
\学籍项目。
(4)单击“保存”按钮,即可进入,“数据库设计器”窗口,如图5-3所示。
图5-2“创建”对话框
图5-3“数据库设计器”窗口
(5)至此,建立好了一个没有内容的空的数据库。
后面接着可以在该数据库中建立数据表或往里添加已建好的自由表。
2.使用键盘命令建立数据库
在VisualFoxPro中,也可以在命令窗口通过键盘输入命令建立数据库。
命令格式:
CREATEDATABASE[<数据库文件说明>|?
]
命令功能:
创建一个数据库并打开它,所建库文件的文件名由命令给定。
说明:
①若缺省路径,则所建库文件将存人默认路径中;若缺省扩展名,系统默认其扩展名为.DBC。
②若命令中未指明库文件名或以“?
”来代替,则将显示如同图5-2所示的“创建”对话框,请求用户指定库文件名和存取路径。
例5-1在“D:
\学籍项目”文件夹下建立一个名为“教职工.DBC”的数据库文件。
在命令窗口中键人以下命令:
SETDEFAULTTOD:
\学籍项目
CREATEDATABASE教职工&&建立“教职工”库文件
若要打开数据库设计器窗口,还要键人如下命令:
MODIFYDATABASE
5.1.2数据库的基本操作
1.数据库的打开
在VisualFoxPro中,打开数据库的方法有:
(1)通过菜单栏中的“打开”命令或工具栏上的“打开”按钮打开数据库
在系统菜单栏中选择“文件”菜单中的“打开”命令或直接单击系统工具栏上的“打开”按钮,出现“打开”对话框,选择文件类型为数据库,再选择要打开的数据库文件名,最后单击“确定”按钮即可。
(2)使用键盘命令打开数据库
命令格式:
OPENDATABASE[<数据库文件说明>|?
][EXCLUSIVE|SHARED]
命令功能:
打开指定的数据库文件。
说明:
若数据库名省略或是“?
”,则出现“打开”对话框,需要选择数据库名。
例5-2打开“D:
\学籍项目”文件夹下名为“学生库.DBC”的数据库文件。
在命令窗口中键入以下命令:
SETDEFAULTTOD:
\学籍项目
OPENDATABASE学生库&&打开学生库文件
若要打开数据库设计器窗口,同样还要键入如下命令:
MODIFYDATABASE
2.数据库的关闭
若想关闭数据库,可以通过键盘命令来实现。
命令格式:
CLOSEDATABASE
命令功能:
关闭当前打开的数据库,同时关闭了这个数据库中已经打开的各种文件。
5.2在数据库中表的操作
在VisualFoxPro数据库管理系统中,建立好的表应该放入数据库中统一管理。
用户可把不属于任何数据库的自由表添加到某个数据库中。
若要把一个数据库中的表移到另一个数据库中,必须先得把该表从所属的数据库中移去变为自由表后,然后才能再添加到另一个数据库中。
自由表字段名长度≤10,数据库表字段名长度≤128
5.2.1向数据库中加入自由表
向数据库中添加表有两种方法:
⒈在数据库设计器中添加表
下面把“学生基本情况表.DBF”添加到“学生库”中,以此为例讲解该种方法。
(1)打开“学生库”,出现如图4-3所示的“数据库设计器—学生库”。
(2)打开“数据库”菜单项,选择“添加表”命令,或直接单击“数据库设计器工具栏”上的“添加表”按钮,出现如图5-4所示的“打开”对话框。
图5-4“打开”对话框
(3)在“打开”对话框中选择好要添加的表,然后单击“确定”按钮,则返回到“数据库设计器”窗口,这时可以看到添加好的结果,如图5-5所示。
图5-5添加表后的“数据库设计器-学生库”
(4)最后再单击图4-5所示的“数据库设计器”窗口右上角的“关闭”按钮关闭“数据库设计器”。
2.使用ADDTABLE<表文件说明>命令添加表
下面再把“学生成绩表1.DBF”表添加到“学生库”中。
要完成这项操作在命令窗口键入以下命令:
SETDEFAULTTOD:
\学籍项目
OPENDATABASE学生库
ADDTABLE学生成绩表1&&往当前库中添加表
CLOSEDATABASE&&关闭库
例5-3建立一个自由表“课程表.DBF”,并把其添加到“学生库”中,该表内容如下:
表5-1课程表.DBF
课程编号
(C,3)
课程名称
(C,10)
学分
(N,1,0)
任课教师
(C,6)
开课学期
(C,1)
001
计算机基础
3
刘雪莹
1
002
数据库
2
王永刚
2
003
C语言
4
孙杰
4
在命令窗口键入如下命令:
SETDEFAULTTOD:
\学籍项目
CREATETABLE课程表&&打开表设计器建立“课程表”
OPENDATABASE学生库&&打开库
ADDTABLE课程表&&往当前库中添加表
CLOSEDATABASE&&关闭库
5.2.2从数据库中移去表
当数据库中不再需要某个表或其它数据库需要添加某个表时,可以或需要从该数据库中移去某个表,使之成为自由表。
与添加表相对应,也有以下两种移去方法:
⒈从数据库设计器中移去表
(1)打开数据库,在出现的如同图5-5所示的“数据库设计器”对话框中单击选中要移去的表。
(2)然后打开“数据库”菜单项,选择其中的“移去”命令,或者直接单击“数据库设计器工具栏”上的“移去表”按钮,这时出现如图5-6所示的确认框。
图5-6移去表确认框
(3)若要移去表,则单击“移去”按钮即可。
(4)最后再关闭“数据库设计器”。
2.使用REMOVETABLE表文件说明>命令移去表
下面再把“学生成绩表1.DBF”表从“学生库”中移出。
要完成这项操作在命令窗口键入以下命令:
SETDEFAULTTOD:
\学籍项目
OPENDATABASE学生库
REMOVETABLE学生成绩表1&&从当前库中移去表
CLOSEDATABASE&&关闭库
5.2.3使用其它数据库中的表(见课本99)
⒈打开多个数据库并设置当前数据库
在VisualFoxPro中,用户可根据需要使用OPENDATABASE命令打开多个数据库,但是只能有一个是当前数据库,一般情况,最后打开的数据库是当前数据库。
所有数据库可以使用的命令都是对当前库而言。
但是当前数据库还可以用SETDATABASETO[<数据库名>]命令来重新设置,当省略[<数据库名>]时,则没有指定当前数据库。
⒉打开其它数据库中的表
要打开一个非当前数据库中的表,可使用命令:
USE<库文件名>!
<表文件名>
例:
假设有一名为“教师库.DBC”数据库,其中有一个“课程.DBF”的表文件。
若当前数据库为“学生库.DBC”,要浏览“课程.DBF”的表文件,可以使用如下命令:
OPENDATABASE学生库&&打开“学生库”使其为当前库
USE教师库!
课程&&打开其它数据库中的表
LIST&&显示“课程”表文件内容
总之,在VisualFoxPro中,有两种使用表的方法:
一种是打开一个数据库再使用其中的表;另一种是不打开数据库而使用其中的表。
5.3设置表
在“表设计器”对话框中,通过“字段”和“表”选项卡还可以对表进行进一步设置,应该注意的是只有数据库表才能进行有关属性的设置,自由表是不能进行属性设置的。
5.3.1设置字段的属性(见课本99页)
在“表设计器”对话框中,通过“字段”和“表”选项卡还可以对表进一步进行设置。
应该注意的是只有数据库表才能进行有关属性的设置,自由表是不能进行属性设置的。
打开“表设计器”对话框,在“字段”选项卡中对字段的有关属性进行设置。
1.设置字段注释
字段注释是对字段的说明信息,将和字段一同保存,但在浏览表时并不显示出来。
其设置方法是:
首先在“字段名”栏中选中需要设置注释的字段,然后在“字段注释”文本框里输入注释信息即可。
2.设置字段的显示属性
要为某字段设置显示属性,首先在图5-7所示的“字段名”栏中选中该字段,再在“显示”组框内为该字段设置各项显示属性。
格式:
用于确定一个字段在表单、浏览窗口或报表中的显示格式,它实际上是字段的输出掩码。
下面是常用的格式码:
D——使用当前系统设置的日期格式。
L——当输出数值型数据时,用0代替前导空格。
T——禁止输入字段的前导空格和结尾空格字符。
!
——把输出的小写字母转换为大写字母。
$——显示当前系统设置的货币符号。
*——在数值型数据的左侧显示“*”号
.——用于指定数值型数据的小数点位置
——用于分隔小数点左边的整数部分,一般用来分隔千分位。
输入掩码:
用于指定字段的输入格式。
使用输入掩码可以屏蔽非法输入,减少人为的数据输入错误,保证输入的字段数据格式统一、有效。
下面是常用的输入掩码。
X——可输入任何字符。
9——可输入数字和正负符号。
A——只允许输入字母(禁止输入数字、空格或标点符号)
#——可输入数字、空格和正负符号。
Y——只允许输入逻辑值Y,y,N,n,并把y和n分别变为Y和N。
N——只允许输入字母和数字。
标题:
通过为字段设置标题可以定制表的浏览效果。
3.设置字段的有效性规则
字段的有效性规则用来验证该字段的输入数据是否合法,可通过“字段有效性”组合框来进行设置。
首先选中要设置的字段,在“规则”文本框中键入有效性表达式,或单击右边的“…”按钮,在出现的“表达式生成器”对话框中设置有效性表达式。
然后在“信息”文本框中输入当违反有效性规则时的报错信息(必须用引号括起来)。
在为字段设置了有效性规则后,若输入该字段的数据非法,则会出现一个警告框,提示用户重新输入,警告框中的信息就是在“信息”文本框中输入的报错信息。
4.为字段设置默认值
在向表中输入记录时,有时会出现这样的情况:
多个记录的某个字段取值相同。
为此,可把一些频繁出现的值设置为该字段的默认值。
这样,在为表追加记录时,系统就会自动给该字段赋默认值,用户可不用再输入。
为字段设置默认值的方法是:
首先选中要指定默认值的字段,在“默认值”文本框中输入字段的默认值即可。
5.3.2设置表的属性
在表设计器中,除了可以设置字段的属性,还可以打开“表”选项卡,为整个表或表中记录设置各种属性。
1.为表设置长名
用户可以为数据表设置一个长表名,以便于标识。
具体设置方法是在“表名”文本框中输入用户指定的长表名。
但这个“表名”不同于表文件名,为表设置长表名后,并不改变表文件名。
缺省情况下表文件名就是表名,也就是长表名。
自由表名长度≤10,数据库表名长度≤128
2.设置有效性规则
为记录设置有效性规则,可通过“记录有效性”组框进行设置。
规则:
在该文本框中输入一个合法的表达式作为记录有效性规则。
当输入的记录数据使该表达式值为.T.时,认为输入的记录合法;否则,认为输入的记录非法,并显示报错信息。
信息:
在该文本框中输入一个字符型的表达式(必须用引号括起),它是记录没有通过有效性检验时显示的报错信息。
如果不进行该项设置,则系统将显示一个默认报错信息。
3.设置触发器
触发器是一个记录级的事件代码。
在对表中记录进行插入、更新或删除时激活,调用要执行的语句或存储过程,不同的事件可对应不同的操作。
在VisualFoxPro中,有三种类型的触发器:
插入触发器:
每次向表中插入或追加记录时触发。
更新触发器:
每次更新表中记录时触发。
删除出发器:
每次从表中删除记录时触发。
要设置触发器,只需在相应的文本框中输入要调用的表达式或存储过程名即可。
5.4建立表间关系
在一个数据库中,通常包含若干张表,这些表之间并非彼此完全独立,而是相互有联系的。
建立数据表之间的关系,不仅可以真实地反映客观世界的联系,而且减少了数据的冗余,提高了数据存储的效率。
从而也使信息的查询变得可行有效。
表之间的关系包括永久关系和临时关系两种。
永久关系是建立在数据库表间的关系,这种关系一旦建立,它们就存储在数据库中,不会随着使用的结束或库表的关闭而消失。
临时关系则是在使用过程中临时根据需要在表间建立的关系,一般称为表的关联。
表间的这种关系不保存在数据库文件中,它们会随着使用的结束或库表的关闭而自动消失。
本节讲的表间关系指的是永久关系。
通常,表与表之间主要存在两种关系:
一对一关系:
一个表的一条记录对应另一个表的一条记录。
一对多关系:
一个表的一条记录对应另一个表的多条记录。
这里的第一个表通常称之为父表,另一个表称之为子表。
要想在两表之间建立关系,两表之间必须要有相同(公共)的字段,而且父表要按该字段建立主索引或侯选索引,子表也要按该字段建立索引。
若子表按该字段建立的是主索引或侯选索引,那么父子表之间可建立一对一关系,即父表的一条记录对应着子表的一条记录;若子表按该字段建立的是普通索引,则父子表之间建立的是一对多关系,即父表的一条记录对应着子表的多条记录。
5.4.1创建表间关系
下面打开“学生库.DBC”数据库文件,把其中的“学生基本情况表.DBF”作为父表,把“学生成绩表1.DBF”作为子表1,把“学生成绩表2.DBF”作为子表2,以“学号”字段作为关键字段,在父表与子表1间建立一对一关系,在父表与子表2间建立一对多关系。
创建表间关系方法如下:
(1)打开要创建表间关系的数据库,在此打开“学生库”,进入数据库设计器,
(2)为需建立关系的各表按“学号”字段建立好相应类型的索引。
在此,父表按“学号”建立“主索引”,子表1按“学号”也建立“主索引”,子表2按“学号”建立普通索引。
如图4-7所示,其中带钥匙图标的是主索引。
(3)建立表间关系。
在数据库设计器中,用鼠标左键按住父表的“学号”索引,分别将其拖放到想建立关系的子表1和子表2的“学号”索引上即可。
这时建立好关系的表之间会出现一条连线,其中不带分岔的一端表示关系中的“一方”,而带有分岔的一端则表示关系中的“多方”,如图5-9所示。
图5-9在“数据库设计器”中建立表间关系
5.4.2删除表间关系
如果要删除已建立的表间的某个关系,用鼠标单击对应的关系连线,此时,该关系连线变粗,按“DEL”键即可;或把鼠标移到关系连线上单击右键,从弹出的快捷菜单中选择“删除关系”命令,也可将关系删除。
5.4.3编辑表间关系
要编辑表间关系,只需用鼠标右键单击关系连线,从弹出的快捷菜单中选择“编辑关系”命令,将打开“编辑关系”对话框,可在该对话框中对关系进行编辑。
或直接用鼠标双击相应的关系连线,也可打开“编辑关系”对话框。
5.4.4编辑参照完整性
为了使数据库中的数据保持一致性,一般应遵循参照完整性规则,从而使得在表中插入、删除、更新记录时,能保持已定义的表间关系。
编辑参照完整性是在“参照完整性生成器”对话框中进行的,进入该对话框并具体进行编辑的方法是:
(1)首先从“数据库”菜单项中选择“清理数据库”命令。
(2)选择以下三种方法之一进入“参照完整性生成器”对话框:
●在“编辑关系”对话框中单击“参照完整性”按钮。
●在“数据库设计器”中右击鼠标,从快捷菜单中选择“编辑参照完整性”命令
●选择“数据库”菜单项中的“编辑参照完整性”命令。
(3)在如图5-10所示的“参照完整性生成器”对话框中设置更新、删除、插入父表与子表记录时应遵循的规则。
●“更新规则”选项卡:
用于设置当修改父表中的关键字值时所用的规则。
●“删除规则”选项卡:
用于设置当删除父表中的记录时所用的规则。
●
“插入规则”选项卡:
用于设置在子表中插入新记录时或者更新已存在的记录时应遵循的规则。
图5-10“参照完整性生成器”对话框
对于更新和删除规则,有三种选择:
“级联”、“限制”和“忽略”;对于插入规则,则只有“限制”和“忽略”两种。
下面分别进行介绍:
●级联:
在对父表中的主关键字段(主索引的索引字段)或侯选关键字段(侯选索引字段)进行更新或删除时,同时自动更新或删除子表中相关的关键字段值。
●限制:
当子表中有相关记录时,禁止更新或删除父表中的主关键字段或侯选关键字段的值。
对于“插入规则”,若选择此项,则当在子表中插入记录时,若父表中不存在相匹配的关键字值时,则将禁止该插入操作。
●忽略:
忽略父表与子表的关系,不限制父表中关键字段的更新。
(4)完成参照完整性设置后,单击“确定”按钮,并在弹出的确认对话框中选择“是”,则系统将生成参照完整性代码,并把这些代码存储在数据库中。
5.5多表的操作
5.5.1使用数据工作期
回忆:
命令格式:
USE<表文件说明>[ALIAS<表别名>][EXCLUSIVE|SHARED]
命令功能:
关闭掉原来已打开的表文件,同时打开指定表文件。
如果该表文件有备注型字段,则同时打开与表文件同名、扩展名为 .FPT的备注文件。
同时给表命名一个别名。
说明:
①一般情况下,表文件名不复杂时不需给表命名别名,若没有给表命名别名,则系统默认表文件名为表的别名。
②其中选项EXCLUSIVE以独占方式打开表,即不允许其他用户在同一时刻使用该表;SHARED以共享方式打开即允许其他用户在同一时刻使用该表.默认打开方式由SETEXCLUSIVEON|OFF命令设置,默认ON.
③注意:
在打开数据库表文件之前,必须首先打开它所在的数据库文件。
(?
?
?
)
④<表文件说明>:
[盘符][路径]<文件名>[.扩展名]
1.工作区的操作
要对表进行操作,首先得打开表,打开表实际上是把表从磁盘调入内存的某个工作区。
若要使用多个表,就要使用多个工作区,一个工作区中只能打开一个表。
需要打开多个表时,先得用SELECET命令选择好工作区。
VisualFoxPro提供了32767个工作区,编号依次为1~32767。
前10个工作区除使用1~10为编号外,还可用A~J共10个字母来表示,工作区11~32767还可用W11~W32767来表示。
工作区的名号还可用表的别名来表示,若打开表时,未给表起别名,则表文件名就是表别名。
工作区的选择命令如下:
命令格式:
SELECT<工作区号或别名>
命令功能:
选择指定的工作区为当前工作区或切换当前工作区到指定工作区。
说明:
别名可用是表名或表的别名。
若打开表之前没有选择工作区,则系统默认为1号工作区为当前工作区。
另外,可以使用“窗口”菜单中的“数据工作期”命令在打开的如图5-11所示的“数据工作期”窗口中看到工作区的使用情况。
图5-11“数据工作期”窗口
数据工作期是用来设置工作环境的。
“数据工作期”窗口包括三个部分:
左边的“别名”框用于显示迄今为止已打开的表,并可从多个表中选定一个当前表;右边的“关系”列表框用于显示建立了临时关系的表即关联的表;中间的6个功能按钮,可用来对表进行一些操作。
窗口底部显示了当前表所属的数据库名,当前表处于的工作区及表中所包含的记录数。
2.在工作区中打开表
单击“数据工作期”窗口中的“打开”按钮,弹出如图5-12所示的“打开”对话框,在该对话框中选择要打开的表,也可以单击“其他”按钮打开其他数据库中的表,选好单击“确定”按钮即可看到后面打开的表顺次打开在2、3号工作区,如图5-13所示。
单击该窗口中的“属性”按钮,可在打开的“工作区属性”对话框中对表进行多种设置和修改。
而单击“浏览”按钮可以浏览当前表的内容。
图5-12“打开”对话框
3.在工作区中关闭表
单击“数据工作期”窗口中的“关闭”按钮,可以关闭当前工作区中的表,同时也关闭了当前工作区。
图5-13打开三张表后的“数据工作期”窗口
5.5.2表的关联
要查询多个表中的数据时,关联方法是常用的手段之一。
所谓关联,就是对不同工作区中所打开的表的记录指针之间建立一种临时联动关系,从而使一个表的记录指针移动时,另一个表的记录指针能随之移动。
关联是在表之间建立的一种临时关系,这种关系会随着使用结束后库表的关闭而自动消失。
建立关联的两个表,必须要有相同的字段,其中一个是父表,一个是子表,而且子表还要以该字段建立索引并且要设置该索引为主控索引。
在执行涉及这两个表数据的命令时,父表记录指针的移动会使子表记录指针自动移动到满足关联条件的记录上。
父子表之间的关联一般有三种关系:
一对一;一对多;多对一。
⒈在“数据工作期”窗口建立关联
下面把“学生库.DBC”中的“学生基本情况表.DBF”作为父表,把“学生成绩表1.DBF”作为子表1,把“学生成绩表2.DBF”作为子表2,以“学号”字段作为关联字段,在父表与子表1间建立一对一关联,在父表与子表2间建立一对多关联。
具体方法如下:
(1)选择“窗口”菜单项中的“数据工作期”命令打开“数据工作期”窗口,并用“打开”按钮分别打开上述的三个表,如同图5-13所示。
(2)在“别名”列表框中选定子表1,单击“属性”按钮,进入“工作区属性”对话框,在“索引顺序”栏中为该表设置主控索引为“XH”,如图5-14所示。
同样再选定子表2,也把“XH”索引设置为主控索引。
(3)在“别名”列表框中选择父表,然后单击“关系”按钮,再在“别名”列表框中选择子表1,则进入如图5-15所示的“表达式生成器”对话框。
(4)在对话框中的“字段”列表中双击“学号”字段,这时在“SETRELATION”栏中就会出现该字段,最后单击“确定”按钮即可返回“数据工作期”窗口。
(5)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第5章 数据库的创建与操作 数据库 创建 操作