数据库的建立Word文档下载推荐.docx
《数据库的建立Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据库的建立Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。
如计算某一笔交易的总金额,可以用销售情况表中的销售数量乘上商品信息表中同编号的商品单价即可得出。
而建立这种关系,以及查找相关的数据,正是VisualFoxPro数据库很容易实现的功能。
建立多个相关的数据表关键是找出表与表之间的关系,并在数据库中建立起关联关系。
同样可以建立起“销售情况表”中与员工相关的员工表yg.dbf,与商品相关的库存表kc.dbf,库存表与供货商相关的供货商表ghs.dbf等。
员工表、库存表和供货商表的结构分别由表4-6、表4-7和表4-8列出。
建立一个数据库,将上述多个数据表包含在其中,并建立数据表之间的关联关系,以及后面将要介绍到的数据表扩展属性和视图等。
设计一个数据库首先是合理设计应用系统所需的多个相关的数据表和它们之间的关系。
数据表的设计原则是尽量避免在一个表中存储重复的信息。
数据库是通过“数据库设计器”或“数据库向导”来建立的,本节中主要介绍用“数据库设计器”设计数据库方法。
在“数据库设计器”中建立数据库主要有新建数据表、添加数据表、确立表与表之间关联关系以及建立“视图”等操作。
建立数据库的主要工具是“数据库设计器工具栏”或“数据库”菜单命令。
案例:
建立商品销售管理数据库。
建立一个商品销售管理数据库,数据库中包含上一节中介绍的各数据表。
在D:
盘根目录建立User文件夹,并在User文件夹上建立表4-4的商品信息表(spxx.dbf)。
建立数据库的操作方法如下。
4.2.1打开“数据库设计器”
1.通过“新建”菜单命令打开“数据库设计器”
选择“文件”菜单或常用工具栏上的“新建”命令按钮,出现“新建”对话框。
在“新建”对话框中选择“数据库”,并单击“新文件”按钮,打开创建数据库文件的“创建”对话框。
在“创建”对话框中输入数据库文件名,如“sp”。
最后单击“确定”按钮,即打开“数据库设计器”。
“数据库设计器”如图4-1所示。
“数据库设计器”打开的同时系统显示出“数据库设计器”工具栏和“数据库”菜单。
图4-1“数据库设计器”和数据库设计器工具栏
另外通过“项目管理器”或命令的方式也同样可以打开“数据库设计器”。
2.用“项目管理器”打开“数据库设计器”
首先打开“项目管理器”,在“项目管理器”中选择“数据”选项卡。
“数据”选项卡中列有“数据库”、“自由表”和“查询”等项目,如图4-2所示。
选择“数据库”项,单击“新建”按钮,出现“新建数据库”对话框。
单击对话框中“新建数据库”按钮,即打开创建数据库文件的“创建”对话框。
输入数据库文件名,按“确定”按钮,打开“数据库设计器”。
图4-2项目管理器建立数据库选项卡
3.用命令的方式打开“数据库设计器”
打开“数据库设计器”的命令为:
CREATEDATABASE[数据库名/?
]
例如:
CREATEDATABASEsp
数据库文件的扩展名为.dbc。
上面建立的商品销售管理数据库文件名为sp.dbc。
与数据库文件相关的数据库备注文件扩展名为.dct,数据库索引文件的扩展名为.dcx。
如果在命令中的数据库名处给出“?
”,则命令打开“新建”对话框;
如果给出数据库名,则建立该数据库,并使数据库处于打开状态,但不出现数据库设计器,用MODIFYDATABASE命令显示数据库设计器。
4.2.2添加或新建数据表
将多个表集合在数据库中可以直接在“数据库设计器”中新建数据表,也可以将已经建立好的数据表添加到数据库。
数据库中的数据表称为数据库表,而不属于数据库的表称为自由表。
新建或添加数据表的方法是通过图4-1中“数据设计器”工具栏提供的按钮或“数据库”菜单中提供的按钮或命令操作。
1.添加数据库表
在“数据库设计器”工具栏中单击“添加表”按钮,或者单击“数据库”菜单的“添加表”命令,出现“打开文件”对话框,选择要添加的自由表名后按“确定”按钮,则将选定的表添加到数据库中。
如将前面已建立在D:
\User文件夹上的商品信息表spxx.dbf添加到sp.dbc数据库中。
2.新建数据库表
在“数据库设计器”工具栏中单击“新建表”按钮,或者单击“数据库”菜单中的“新建表”命令。
打开数据库的“表设计器”。
在“表设计器”中建立数据表结构。
如在“表设计器”中建立表4-5销售情况表xsqk.dbf。
3.移去数据库表
如果要将数据库表移出数据库使其成为自由表,可使用“数据库设计器”工具栏中“移去表”按钮或“数据库”菜单的“移去”命令。
操作方法是:
选中要移出数据库的表,在“数据库设计器”工具栏中单击“移去表”按钮,或者单击“数据库”菜单中的“移去”命令,出现提示对话框,对话框中询问“把表从数据库中移去还是从磁盘上删除?
”。
选择“移去”,则将选取的数据表从数据库中移去,使该表成为自由表;
选择“删除”,则将选取的表从数据库和磁盘中删除。
4.2.3建立数据库表之间的关联
各表之间的记录联系在数据库中通过建立关联关系来实现。
相关联的两个表,一个表是父表(主表),另一个表则是子表。
建立表间的关联关系,首先要确定出两表的关联字段,对商品信息表spxx.dbf和销售情况表xsqk.dbf相互有联系的字段是商品编号spbh。
通过商品编号spbh字段将两表中的数据联系起来。
这两个相关联的字段称为“关键字段”。
建立两表间的关联关系之前先要对关键字段进行索引,如果记录中关键字段的值是惟一的、没有重复值的表,对关键字段进行主索引或候选索引,如商品信息表spxx.dbf中的商品编号spbh字段。
而记录的关键字段中有重复出现的相同值,则对关键字段进行普通索引,如销售情况表xsqk.dbf的商品编号spbh字段。
然后在数据库中将两个表的索引用鼠标拖动连接起来。
在数据库中表之间的关系有3种:
一对多关系、一对一关系、多对多关系。
1.建立两表之间的关系
“商品信息表”和“销售情况表”之间是一对多的关系。
建立“商品信息表”和“销售情况表”关联关系的步骤如下。
①确定两表的关键字段为商品编号spbh。
②对父表“商品信息表”的商品编号spbh字段进行主索引或候选索引。
选择商品信息表spxx.dbf后,单击“编辑”菜单的“表设计器”命令,对商品编号spbh字段进行主索引或候选索引操作。
索引后出现一有钥匙图形的主索引标识spbh。
③对子表“销售情况表”的商品编号spbh字段进行普通索引。
方法同第2步,出现索引标识spbh。
④建立两表关系。
在“数据库设计器”中,在父表“商品信息表”的索引标识spbh上按下鼠标左键拖放至子表“销售情况表”的索引标识spbh上放开,父表和子表间出现一条连线,建立两表之间的关联关系。
这样在数据库中建立起来的关联关系称为永久性关系,如图4-3所示。
图4-3建立两表一对多关系
建立各种关联关系的方法如下:
(1)建立一对多关系
①打开数据库。
②对父表(关键字段值惟一)的关键字段进行主索引或候选索引。
③对子表(关键字段值不惟一)的关键字段进行普通索引。
用鼠标连接父表和子表的索引,建立起两表间一对多永久性关联关系,两表关联关系保存在数据库中。
(2)建立一对一关系
②对父表的关键字段进行主索引或候选索引。
③对子表的关键字段进行主索引或候选索引。
用鼠标连接父表和子表的索引,建立起两表间一对一永久性关系。
(3)建立多对多关系
如果两个表之间的关系是多对多的关系,则应该增加一个“纽带表”,使3个表间建立起两两相关的两个“一对多”的关联关系。
2.删除和编辑永久关系
在“数据库设计器”中,单击关系连线,使连线变粗后按Del键删除关系;
或用鼠标右键单击关系连线,出现快捷菜单,选择其中的“移去关系”删除关系。
单击快捷菜单中的“编辑关系”,出现“编辑关系”对话框,如图4-4所示。
在“编辑关系”对话框中可以对两表间的关系进行编辑和修改。
图4-4“编辑关系”对话框
4.2.4创建数据表间临时关系
在数据库中两表间建立永久关系并长期保存,在实际应用时,有时需要临时建立起两表之间的关系,而不需长期保存。
另外永久关系只能在数据库表之间建立,有时需要对自由表之间或自由表与数据库表之间建立关系。
对于这种情况可以建立临时关系。
临时关系在两表打开后建立关联关系,表关闭时解除关联关系。
建立临时关系的表要符合一对一或一对多的关系。
子表的关键字段必须建立索引。
1.在“数据工作期”窗口建立临时关系
对员工表yg.dbf和销售情况表xsqk.dbf以员工编号字段为关键字建立临时关系。
以员工表作为主表,销售情况表作为子表。
①对销售情况表xsqk.dbf中的员工编号ygbh进行索引。
②选择“窗口”菜单的“数据工作期”命令,打开“数据工作期”窗口,如图4-5所示。
已打开的两个表显示在窗口的“别名”列表框中。
③单击选择员工表yg.dbf为父表。
④单击“数据工作期”窗口中的“关系”按钮,在“关系”列表框中显示出父表名yg以及关系连线。
⑤选择“别名”列表框中的子表xsqk.dbf,出现“设立索引顺序”对话框,在对话框中选择yg.ygbh设置主控索引,单击“确定”按钮后,又出现“表达式生成器”对话框。
在“表达式生成器”建立关系表达式,通常是子表的索引表达式,这里选择yg.ygbh索引表达式。
单击“表达式生成器”的“确定”按钮后,在“关系”列表框中建立起两表之间的临时关系,如图4-5所示。
图4-5在“数据工作期”对话框中建立临时关系
解除临时关系的方法是在“关系”列表框中双击两表间的关系连线,打开“表达式生成器”,删除关系表达式,单击“确定”按钮完成解除临时关系。
2.用SETRELATION命令建立临时关系
建立临时关系命令格式:
SETRELATIONTO关系表达式INTO区号/别名
其中:
关系表达式——建立临时关系的关系表达式,通常是子表的主控索引表达式。
区号/别名——子表的工作区号或别名。
【例4-1】有两个自由表,一个是职工基本情况表zg.dbf,另一个是职工工资表gz.dbf。
zg.dbf表中包含职工编号(zgbh)、姓名(xm)、性别(xb)、出生日期(csrq)、职称(zc)、简历(jl)等字段。
gz.dbf表中包含职工编号(zgbh)、基本工资(jbgz)、岗位津贴(gwjt)、奖金(jj)等字段。
将gz.dbf作为子表,在建立临时关系前,对子表gz.dbf时先对关联字段zgbh进行索引。
建立临时关系命令:
SELECT2
USEgzORDERTAGzgbh
SELECT1
USEzg
SETRELATIONTOzgbhINTO2
列表显示两表记录:
LISTzgbh,xm,gz.jbgz,gz.gwjt,gz.jj
由于建立了两表的关联关系,子表gz.dbf的记录指针自动随主表zg.dbf的记录指针移动,所显示的子表gz.dbf的数据与主表zg.dbf的数据一一对应。
解除临时关系的命令:
SELECTzg
SETRELATIONTO或SETRELATIONOFF
4.2.5打开和关闭数据库
1.打开数据库如果需要对数据库进行操作,首先要打开数据库。
打开数据库主要用菜单命令、命令和项目管理器3种方法。
①用菜单命令。
选择“文件”菜单中的“打开”命令或单击“打开”按钮,在出现“打开”对话框,在对话框中选择“文件类型”为数据库,同时选择所要打开的数据库名,单击“确定”按钮则打开的选的数据库。
②用项目管理器。
打开数据库所在的项目管理器,在项目管理器的列表框中选择要打开的数据库,单击项目管理器上的“修改”按钮,即打开数据库。
③用命令。
打开数据库的命令格式:
OPENDATABASE数据库名
MODIFYDATABASE
OPENDATABASE命令中的数据库名表示数据库所在路径和数据库名。
用OPEN命令打开数据库后,再用MODIFYDATABASE命令显示“数据库设计器”。
例如打开D:
\User路径下的sp.dbc数据库:
OPENDATABASED:
\\User\sp.dbc
打开数据库后用下列命令浏览显示数据库:
MODIFYDATABASE
在打开数据库操作时可能会出现下列打不开数据库文件的情况:
①如果在磁盘上移动了数据库文件或数据库表文件的位置,就会破坏数据库与数据表之间的链接,使数据库中的表不能正确打开。
此时要对数据库表重新定位,具体方法是打开数据库后,双击显示某一已被移位的数据库表名,出现“检查数据库”对话框,如图4-6所示。
对话框中提示找不到要打开的数据库表,并要求提供重新定位的途径。
单击“定位”按钮后,搜索寻找到数据表重新定位。
如果找不到表文件,可重新进入“检查数据库”对话框,按“删除”按钮,删除与该数据库表的链接。
图4-6“检查数据库”对话框
②数据库文件被意外删除或破坏而无法打开数据库。
遇到这种情况应该先将与数据库相关的数据库表变为自由表,然后再重新建立数据库。
数据库表是不能直接添加到新的数据库中,只有解除了数据库表与原数据库的链接,将数据库表转变为自由表才能重新向数据库进行添加。
将数据库表转变为自由表的命令是:
FREETABLE数据库表名
2.同时打开多个数据库
可以同时打开多个数据库。
多个数据库的打开仍然用上面介绍的打开数据库方法,分别多次打开多个数据库。
多个数据库打开后,只有一个数据库是当前数据库。
当前数据库用单击数据库或命令进行设置,已打开的多个数据库在“常用”工具栏的“数据库”下拉列表中显示。
数据库下拉列表如图4-7所示。
图4-7打开数据库列表
设置当前数据库的命令为:
SETDATABASETO数据库名
3.关闭数据库
关闭数据库主要使用项目管理器或CLOSEDATABASE命令。
(1)使用项目管理器
在项目管理器中选择要关闭的数据库,再单击“关闭”按钮。
(2)使用CLOSEDATABASE命令
关闭当前数据库:
CLOSEDATABASES
关闭所有打开的数据库:
CLOSEDATABASESALL
4.3数据库表的扩展功能
数据库中对数据库表、字段等还增加了更多的扩展功能,使数据在使用时更加方便和完善。
数据库的“表设计器中”共有3个选项卡:
字段、索引和表。
其中“表”和“字段”选项卡上分别增加了对数据库表和表中字段的扩展功能。
4.3.1数据库表字段的扩展功能
打开数据库的“表设计器”,表设计器默认显示“字段”选项卡,在此选项卡上除有与自由表设计器相同的字段结构设计部分,如字段名、类型、宽度、小数位数等,还有字段的显示、字段的验证、字段的注释等部分。
“字段”选项卡如图4-8所示。
图4-8数据库表设计器“字段”选项卡
1.字段的标题
在设计数据表的字段时,设计者对字段名的选取往往考虑易于识别,便于记忆和操作方便等因素,为字段选取较简单的名字。
“商品信息表”中的字段名采用汉语拼音的第一个字母,如“商品编号”字段名为spbh。
但是简单的字段名在浏览数据时往往使用户不能直观地了解字段名所代表的含义。
在“标题”栏设置了字段的标题后,浏览表时字段的标题就代替了字段名显示在列表中,如商品信息表的spbh字段的标题用“商品编号”。
【例4-2】将商品销售管理数据库sp.dbc的商品信息表spxx.dbf各字段增加标题,各字段的标题列在表4-9中(参见教材P112页表4--9)。
①打开表设计器。
打开sp数据库后,双击浏览商品信息表spxx.dbf。
选择“显示”菜单中的“表设计器”命令,打开图4-8的表设计器。
②在“字段”选项卡上,单击选择spbh字段,spbh字段前出现选中符号。
③在“显示”框的“标题”栏中输入“商品编号”标题。
④重复②、③步操作设置其他字段的标题。
⑤退出“表设计器”。
双击浏览商品信息表spxx.dbf,浏览表的字段名显示成字段的标题,如图4-9所示。
图4-9浏览商品信息表
2.字段的输出格式
在“格式”栏内输入VisualFoxPro指定的字段格式,使数据表在“浏览”窗口、表单和报表中按指定的输出格式显示。
VisualFoxPro中的输出格式列在表4-10中(参见教材P113页表4--10)。
【例4-3】将销售情况表xsqk.dbf的销售日期xsrq字段的格式设置为当前日期格式,将销售数量xssl字段用科学记数法显示。
打开sp数据库后,双击浏览销售情况表xsqk.dbf,选择“显示”菜单中的“表设计器”命令,打开图4-8表设计器。
②在“字段”选项卡上,单击选择销售数量xssl字段,xssl字段前出现选中符号。
③在“显示”框的“格式”栏中输入“^”符号,设置输出的数值以科学记数法显示。
④在“字段”选项卡上,单击选择销售日期xsrq字段。
⑤在“显示”框的“格式”栏中输入“D”字母,设置输出的日期以当前的日期格式显示。
⑥退出“表设计器”。
⑦设置当前日期显示格式。
选择“工具”菜单中的“选项”命令,打开“选项”对话框。
选择“区域”选项卡。
在“区域”选项卡的“日期格式”栏内选择一种显示格式,如短格式。
短格式以“年—月—日”的格式显示日期。
⑧双击浏览销售情况表spxx.dbf,浏览表中显示的销售日期xsrq字段的格式设置为短格式的当前日期格式,销售数量xssl字段则用科学记数法显示。
浏览显示如图4-10所示。
图4-10浏览销售情况表
3.输入格式
在“输入掩码”(InputMask)栏中输入VisualFoxPro的输入掩码,指定输入数据及输出数据的格式。
对输入信息加以限制,保证输入信息的准确性。
如对某一数据型字段,在输入掩码中输入“99”,则在此字段中可以输入两位数字或一位符号一位数字。
输入掩码也可指定输出数据显示的格式。
VisualFoxPro的输入格式列于表4-11中。
(参见教材P115页表4--11)
4.字段的注释
在“字段注释”栏中输入为字段注释的相应文字,给字段增加必要的说明信息,帮助用户理解或记忆字段的含义。
5.字段默认值
输入记录时,可事先为字段指定一个初值,即默认值。
指定默认值的意义在于减少输入的工作量。
例如设置“职工信息表”中“性别”字段的默认值为“男”,当输入记录时,凡遇到“男”性的职工,该记录的值就不必重新再输入,而直接使用默认值。
如不设置默认值则使用VisualFoxPro系统各类字段的默认值。
VisualFoxPro系统各类数据字段的默认值如表4-12所示。
(参见教材P115页表4--12)
6.字段值的有效性验证
有些字段的值会有一些限制,如反映“单价”的字段值应大于0等。
将验证条件设置到数据库表设计器“字段”选项卡中的“字段有效性”框“规则”栏中,同时可在“信息”栏内设置输入字段值不符合条件时的提示信息。
【例4-4】当对“商品信息表spxx.dbf”的“销售单价xsdj”字段输入小于等于0的值时,数据表拒绝接受数据,并显示“单价必须大于0,请重新输入单价。
”的信息。
操作如下:
①打开数据库sp.dbf,选择要修改的商品信息表spxx.dbf。
②选择“显示”菜单中的“表设计器”命令,打开表设计器。
③选择“表设计器”中销售单价xsdj字段。
④在“字段有效性”框的“规则”栏内输入表达式:
xsdj>
0。
⑤在“字段有效性”框的“信息”栏内输入信息:
“单价必须大于0,请重新输入单价。
”
⑥单击“确定”按钮完成“单价”字段的有效性验证设置。
4.3.2数据库表的扩展功能
将数据库“表设计器”的选择卡转换到“表”选项卡上,数据库表的扩展功能显示在“表”选项卡,在此选项卡上可对表进行长表名、记录验证、表的触发器等功能设置。
1.长表名
在创建表文件时,为了操作方便一般采用英文或汉语拼音命名较多,表文件名一般不超过VisualFoxPro规定的125个字符。
使用长表名,一方面是给表起一个易于理解的表名,如spxx.dbf数据库表可起名为“商品信息表”,使用户很容易了解使用的表的内容。
另一方面在VisualFoxPro中也可以直接用长表名使用数据库表。
例如用“USEspxx”命令和用“USE商品信息表”命令的功能是相同的。
长表名的建立首先打开“表设计器”并选择“表”选项卡,在“表”选项卡上的“表名”栏输入长表名。
2.表记录的有效性验证
前面介绍了字段的有效性验证,当需要同时对两个以上字段的关系进行有效性验证时,就不能使用“字段有效性”验证设置,而要使用“记录有效性”验证设置。
【例4-5】假设为“销售情况表xsqk.dbf”增加一个“单价dj”字段,销售总金额字段应该大于单价,当总金额小于单价时,数据表拒绝接受数据,并显示“总价必须大于单价,请重新输入单价。
①打开数据库sp.dbf,选择“销售情况表”。
②选择“显示”菜单中的“表设计器”命令,打开表设计器,单击“表”选项卡,进入“表”选项卡。
③在“表”选项卡上选择“记录有效性”框的“规则”栏,输入表达式:
zje>
dj。
④在“记录有效性”的“信息”栏内输入信息:
“总价必须