当前位置:文档之家› 罗斯文数据库讲解

罗斯文数据库讲解

罗斯文数据库讲解
罗斯文数据库讲解

罗斯文库是Access自带的示例数据库,也是一个很好学习教程。让我们一起来学习一下吧。通过罗斯文数据库的学习,能对数据库的表、关系、查询、报表、窗体、切换面板等内容有个全面的了解。

我们做数据库开发,应该来讲是现实生活中一种管理思路的体现与高度概括。那么要构思之前肯定要对整个流程有个清晰的了解。那我们就先来了解一下这个罗斯文公司的业务流程吧。罗斯文公司是一个虚构的商贸公司,该公司进行世界范围的食品的采购与销售,就是通常所讲的买进来再卖出去,赚取中间的差价。

罗斯文公司销售的食品分为几大类,每类食品又细分出各类具体的食品。这些食品由多个供应商提供,然后再由销售人员售给客户。

销售时需要填写订单,并由货运公司将产品运送给客户。要打开“罗斯文数据库”,先启动Access,从“帮助”菜单选择“示例数据库”->“罗斯文数据库”即可。如你所安装的是精简版不带有示例数据库,那就从网上下载一个吧。

罗斯文数据库示例下载: https://www.doczj.com/doc/dd19010692.html,/article-show.asp?id=3518

图一

注:本教程着重在实例讲解,不含最基本的一些概念及操作说明,如需学习基础教程请自己看书或参考其他教程。

首先要做的事是设计表,表的设计思路就是将数据分类,同一类的数据放在一个表中,并且有一个字段与其他表之间建立联系。而且要尽可能的细分,以最大限度的保证每个表中不存在重复的数据资料。比如说销售订单吧,肯定要记录客户的具体资料如名称、地址、电话等方便联系;还要记录订单的日期,运费等;以及每张订单中都有哪些具体的产品、数量、价格等信息。如果我们把这么多信息记录在一张表里的话,那就要录入许多重复的信息,比如客户的资料,不仅很麻烦还很容易出错。

所以应该细分为客户表专门维护客户的信息;订单表记录订单的日期,运费;订单名细表记录具体的产品数量及价格;另外还需要产品表、供应商表、雇员表、运货商表及类别表。“罗斯文数据库”中共有8个表,选中表,以详细信息的视图来查看各个表的说明,

见图二。

图二

关于数据库的基本组成表,查询,窗体等及表的基本组成字段,记录等概念就不用再讲了吧。其中一些常用的知识将在示例中一起讲解。在表设计中重点要掌握的是数据类型、字段属性的设置与应用。

一、数据类型的用法

1.文本

用于存储不需要计算的数字,文本、其他字符或组合内容。最多可存储255个汉字,英文或字符。

2.备注

用于存储长文本和数字。如注释或说明。最多可存储65536个汉字,英文或字符。

3.数字

用于存储要进行计算的数据。如库存量,销售数量等。

4.日期/时间

用于存储日期和时间,如出生日期,发货日期等。

要注意日期型数据要注意分隔符的正确使用。以“-”,“/”分隔年月日,如“2007-01-10”,而“2007.01.10”这种格式是错误的。

5.货币

用于存储货币值,计算期间禁止四舍五入,精度较高。如单价。

6.自动编号

用于在添加记录时自动插入一个唯一不重复的编号,如员工编号等。一般用作主键。

7.是/否

用于存储二选一的数据,如“是/否”,“真/假”,“开/关”等。

8.OLE对象

用于存储一些用其他应用程序创建的对象,如WORD文档,EXCEL表格,图片等。

如员工照片。

9.超链接

用于存储超链接。如网址,EMAIL地址。

10.查阅向导

查阅向导允许用户使用组合框或列表框选择来自其他表或来自值列表的数据。在表设计视图新增该数据类型的字段会启动向导进行定义。

二、字段属性

字段属性是指字段拥有的一些特点,不同数据类型的字段,属性也不尽相同,常用的属性如下:

1.字段大小

文本型字段,默认的大小为50;数字型字段,默认大小为长整型;自动编号的字段,默认大小也是长整型。

2.格式

格式属性决定了单元格中数据的显示和打印方式,所看到的并不一定就是表中所存储的。

3.小数位数

小数位数属性决定了在单元格中显示几位小数。如设为0,将不显示小数。

4.输入掩码

输入掩码属性决定了数据输入和保存的方式。

5.标题

标题属性影响着字段的显示名称,默认情况下,标题与字段名相同,也可以输入不同内容,在数据表视图中打开表时,将看到字段的列标题与标题属性相同。

6.默认值

在默认值中填入数据时,在新增记录时将自动将该值添加到相应的字段中。

7.有效性规则

有效性规则用于限制在字段中输入的数据,在数据录入后,自动检查是否满足有效性规则,如不满足则发出警告,不接受录入值。如在单价字段的在效性规则中填入:>0,即可防止忘记填写该数据,或误填入负数。

8.有效性文本

在用户录入时如违反有效性规则时,系统会发出警告,而如果有效性文本中填入了内容,则在提示时,对话框中会显示有效性文本中的内容,替代系统的提示内容。

9.必填字段

必填字段如果设为是,那么在录入数据时必须在该字段填入相应的数据。

10.允许空字符串

字符串的概念是以字符形式存储的数据,一般要在字符串的两端加上英文的双引号,如”abc”等,而在文本和备注型的字段中,无需加入英文双引号,录入数据会直接作为字符串处理。如果允许空字符串设为否,将不允许输入空字符串。这里要注意的是空字符中””与空格字符串是不同的” ”,前者双引号中没有空格。

11.输入法模式

输入法模式可以设为开启或关闭,根据字段中是否要输入中文字,做好设置,可以避免录入人员在中英文输入法之间做切换。

12.索引

索引用于加快排序,查询和分组操作的速度。索引的值有3种,如果字段为主键,将自动设索引的属性为有(无重复),另外两种是有(有重复)和无。索引属性中只能设置单一字段的索引,如果要设置多字段索引,可在设计视图中,点击工具栏的索引(或菜单视图-索引),在索引框中设置。

图三

具体的用法及示例将结合罗斯文示例进行说明。

表的具体分析:

一、“供应商”表

供应商表记录的是为罗斯文公司提供货源的厂商记录

图四

选择“供应商”表,单击“设计”按钮,进入表设计视图,表中的字段包括了常用的联系信息。

图五

我们重点来关注一下“供应商ID”字段。这是一个自动编号类型的字段,在表中具有唯一性,一般的我们设计的表中都需要一个唯一的不重复的字段,我们可以把该字段设为主键,该字段将会用于与其他表之间建立关系。

表中的大部分字段都是文本类型,大小可以根据实际要输入的内容来设置,比如城市,地区的字段设为15,而地址的字段大小是60。采用合适的大小会尽可能的减少存储空间的占用。一般不需要进行数据计算的字段我们都用文本类型来存储。

主页和Email之类的可以采用起超链接类型。

查看该表中的索引

图六

可以发现公司名称和邮政编码字段的索引属性为有(有重复)也即唯一索引为否,主要是为了通过索引加快对这两个字段的查询等操作,有重复说明该字段中的数据是有可能重复的,比如两个公司在同一地区,那邮政编码就是一样的。

另外我们在常规属性中除了字段大小属性以外,还有其他的一些属性,可以在相应的栏内点F1,查看相应的帮助。

二、“类别”表

划分类别是表设计时的必须要考虑的,因为不同类别的产品可能由不同的部门负责销售,为了方便统计出各类产品或部门的销售情况,须将产品进行分类。类别表中将产品分为8大类。

图七

选择类别表,点设计,进入设计计视图

图八

可以看到“类别ID”是自动编号类型,用作主键;

说明字段,数据类型为备注,在实际操作中如果要说明的字数不会超过255个字符,可以采用文本类型,这样更节省空间。

图片字段的数据类型是OLE对象,OLE对象在表中不能直观地看到图片,如果要查看图片可以在字段上双击,如需插入,则在图片字段上单击右键,选择“插入对象”,再从对话框中选择“由文件创建”,浏览到所需图片,也可以链接对象,这样只是保存了链接地址,不会直接把文件插入数据库。

三、“产品”表

产品表中保存了罗斯文公司销售的各种产品的明细数据。这个表清楚的记载了每个产品是属于什么类别,供应商是谁,库存量,单价等信息,是填写订货单时的重要依据。

图九

选中“产品”表,点设计,进入设计视图

“产品ID”是自动编号类型的主键;

单价,库存量,订购量,再订购量字段中设置的有效性规则与有效文本性文本属性,可以学习一下;

“中止”字段的数据类型是“是/否”型,这对于处理两选一的结果最为合适;

重点来关注一下“供应商ID”和“类别ID”,这两个字段都是数字类型,分别对应“供应商”表中主键和“类别”表中的主键。先来看下“供应商ID”,这个字段的标题属性中填的

是“供应商”,这样在数据表视图中,看到的字段标题就会是“供应商”,而不是默认的“供应商ID ”。另外这两个字段都是查阅列,这是一个很有用的属性,我们对“供应商ID”作一下详细的讲解,“类别ID”与“供应商ID”的设置方法相同。

查阅列

我们在表中输入数据时,经常会遇到需要重复输入的内容,比如人员的性别为“男”或“女”,这是单表中的重复录入;比如产品表中需要输入“供应商”,而“供应商”字段在“供应商”表中已经录入过了,这属于跨表的重复录入。这些内容如果直接录入不仅花费了用户较多的时间,而且极容易出错。为了方便用户录入重复性的数据,可以借助ACCESS 提供的查阅列的功能。

图11

首先来看下查阅列中的各项具体属性

1.显示控件

图12

从显示控件右侧的下拉框中可以看到该属性可以设为文本框,列表框或组合框。如果设为文本框,那数据就只有接受从文本框中的录入,查阅的其他属性都不可用。我们主要要掌掘的是列表框和组合框的使用。组合框和列表框的使用基本相同,只是列表框除了可以从列表中选择还可以接受录入,相当于是列表框各文本框的组合。

2.行来源类型

图13

行来源类型是指控件中的数据来自于何处。共有三处选择,表/查询,值列表,字段列表。

如果选择“表/查询”,则列表框或组合框中的数据将来源于其他表或查询中的结果。如果要录入其他表中已经存在的数据,或录入从几个表中查询得到的结果,用这个选项最为方便。

如果选择“值列表”,只需在行来源中直接输入列表中的数据,并用英文分号隔开即可。这种类型只适合于输入的内容固定在某几个值之间,如性别的值可以是“男”或“女”。

如果选择“字段列表”,该字段中将填入某个表中的字段名称信息。这种类型较少用到,“表/查询”的使用就包含了这种简单的用法。

3.行来源

“行来源”中是列表框或组合框中将要列出的数据。

如果“行来源类型”是“表/查询”,可单击“行来源”右侧的下拉箭头,选择某个表或查询,以该表或查询中的数据作为列表框或组合框中的数据。如果没有直接的查询可用,也可以单击右侧的生成器,在查询生成器中直接创建SQL语句。

如果“行来源类型”是“值列表”,直接输入即可,如“男;女;”

如果“行来源类型”是“字段列表”,可单击右侧的下拦箭头,选择某个表,以该表中的字段名称作为列表框或组合框中的数据。

4.绑定列

在列表框或组合框中进行选择时,所显示出来的数据并不一定就是存储在该字段中的内容。在“绑定列”中设置的列中的值才是表中真正存储的值。

5.列数

在列表框或组合框中所显示的列数,可以同时显示表中的多列。

6.列标题

用字段名称,字段标题或首行数据作为列表框或组合框中列的标题。如果在列表框或组合框中同时显示多列时,加上标题方便识别各列的内容。

7.列宽

列表框或组合框中有多列时,可指定每列的宽度,每列宽度之间以英文分号分隔。如列数为3列,则可设列宽为:2;2;2,系统会自动加上cm单位;如果某一列无需显示,则列宽设为0即可。如:0;2;2。

8.列表行数

是指在组合框中一次最多可以显示的行数,其余的数据需拖动滚动条查看。

9.列表宽度

在组合框中,列表框部分的宽度,可以设为“自动”,也可以设为数值。

10.限于列表

在组合框中,如果允许输入除列表框中值以外的数据,则选择“否”。如果值必须为列表

中的一项时,则选择“是”。

示例:

在“产品”表中,设置“供应商ID”字段的查阅列属性

1.在数据库窗口中,选择“产品”表,单击设计,进入设计视图。可以在最后一个字段的下面的第一个空白行,输入新字段名称“供应商2”,设置完相关属性后,可以与“供应商ID”字段进行比较。数据类型改为数字,在这里说明一下,在表中相关联的两个字段的数据类型必须相同,而且字段大小也要相同。在本例中因为在“供商表”,“供应商ID”字段是自动编号类型,自动编号的字段默认大小是长整型,所以在这里“供应商2”的数据类型必须为数字,字段大小为长整型。

2.在下半部分窗口中选择“查阅”选项卡,将显示控件改为组合框。

图14

3.在行来源类型中选择“表/查询”。

4.点击行来源右侧的生成器按钮,在显示表中,选中“供应商”表,点添加后关闭。从表中选择字段供应商ID,公司名称,可以双击,也可以拖入下方的字段中。设置公司名称字段的排序为升序,代表组合框中的供应商按名称进行排序。

图15

点关闭按钮,跳出提示窗口

图16

点“是”

5.在绑定列中填入1,代表该字段存储的值是查询结果中第一列“供应商ID”中的值。要求这两者的数据类型必须相同,本例中都为长整型。

6.在列数中填入2,代表有两列。

7.列标题选“否”。

8.列宽中填入0;2。罗斯文示例中,第2列的宽并没有填入,这是因为列表宽度设为了自动,不隐藏的宽度都会根据字段的大小自动显示出来。

9.列表行数默认为8。

10.列表宽度为自动,限于列表选“是”。

图17

11.关闭设计视图并保存修改,切换到数据表视图,体会查阅列的用法。

客户表及运货商表

“客户”表记录的是罗斯文公司的客户信息,类似于“供应商”表。

通过对“客户”表设计视图的查看可以发现表中的“客户ID”字段与前几个表中的ID字段不同,没有采用自动编号的数据类型,而是用了文本类型,长度为5。这个“客户ID”字段也是作为主键的,也就是说不允许在该表中输入重复的客户代码。在“客户ID”字段中还设置了“输入掩码”的属性,“>LLLLL”,“>”是将所有输入的字符自动转为大写,这样在输入时就不用理会大小写,“L”代表字母A-Z,是必选项。这样设置的意思就是在“客户ID”字段中必须输入5个字母,不能输入其他的字符或者少一位。

“输入掩码”可以帮助客户准确地输入数据,避免不必要的错误。比如可以用“000000000000000999”来作为身份证的输入掩码,既可以输入15位数字,也可以输入18位数字,这里的0和9都是输入掩码的常用控制字符,0代表必选的数字项,9代表可选的数字和空格。如果想了解有关更多的输入掩码,可以把光标放在这一属性栏里,按F1查看帮助,学会用帮助可是个好习惯哦。

另外“格式”属性也是对字段的格式作的规范,要注意两者的区分。“输入掩码”是控制输入和保存方式的,而“格式”属性是控制输出和打印方式的,如在“输入掩码”中使用“>”代表的是不管输入字符是大写还是小写,在数据库中保存的都会是大写的字符,而如果在“格式”中使用“>”代表的是在该字段中显示为大写,而不管实际存在数据库中字符的大小写。如果一个字段既定义了“格式”属性又定义的“输入掩码”属性,则在显示数据时,“格式”属性优先于“输入掩码”属性,而在保存数据时则相反。

“客户”表中其他字段都采用文本类型。

“运货商”表记录的是帮助罗斯文公司运送货物的公司的联系信息。这个表中没有新的知识点,不再进行细讲。

雇员表

“雇员”表记录的是罗斯文公司的雇员信息。

雇员的姓氏和名字分别用两个字段来代表,这样设计是考虑到能把信息拆分的更细,方便对更细的信息进行处理,比如可以按照姓氏来进行统计等等,当然如果没有这种必要的话,完全可以用姓名一个字段来处理。本例中对地址和电话都进行了拆分的处理方法。

选中“雇员”表,单击设计按钮,进入表设计视图。

“雇员ID”是自动编号的主键,“出生日期”是“日期/时间”类型,它的“格式”属性是“yyyy-mm-dd”,表示显示时的格式,“有效性规则”属性是“

“照片”字段采用的是“文本”类型,查看一下记录会发现,记录的只是照片的文件名字而已,这和“类别”中的“图片”字段是有区别的,这也是一种记录图片信息的方法,将来图片在窗

体中的显示可以通过加载文件路径的方式来处理。这样处理要求存放图片的路径与图片名称不能发生改变,一旦改变在窗体中就会无法显示出照片,这是与OLE类型的对象不同的地方。

“上级”字段记录的是某个雇员的上级主管是谁。由于上级主管本身也是公司雇员,因此上级主管的信息也会记录在“雇员”表中。为了避免录入时的重复输入,在此字段也设置了“查阅”属性,并且字段的数据类型是“数字”,说明在这一字段保存的是“雇员ID”的信息,查看“上级”字段的“查阅”选项卡,显示控件为组合框,在录入时让用户以组合框的形式进行选择。单击“行来源”右侧的生成器按钮,进入查询生成器,

在示例中有4个字段,“雇员ID”是作为绑定字段的,“姓名”字段是个表达式,它用了一个“&”字符串连接运算符,将“姓氏”和“名字”连在一起成为新的字段。另外还有两列“姓氏”和“名字”,显示的属性未打勾,代表并不显示,只是作为排序的依据。在此处其实可以直接按“姓名”来排序,而不用选择“姓氏”与“名字”字段,效果是一样的。

订单表

“订单”表记录的是客户订货的主信息表,记录了订单ID,客户,雇员,运货商,运费,及相关的订购日期,到货、发货日期,表中还有6个字段用来记录货主的联系信息。

初看上去,好象这并不符合数据库设计的规范,这主要是由于罗斯文公司的客户

每次订货时收货地址很少重复,而是订货时才指定,因些无法记录下确定的货主信息。一般我们通常用得比较多的情况是客户一般就是收货的货主,客户确定下来后,收货人的相关信息也就定下来了,这时后面的6个字段都是可以省略的。

查看“订单”表的设计视图,“订单ID”是自动编号的主键,“客户ID”、“雇员ID”、“运货商”字段分别是客户表、雇员表和运货商表中的主键,都设置了查阅属性,以组合框的形式提供选择。这个表中也没有什么新的知识点。

订单明细表

“订单明细”表是对“订单”表中“订单ID”的具体的产品订购信息的补充说明。包括产品的名称、单价、数量和折扣。

查看“订单明细”表的设计视图,发现表中的主键设置与其他表不同,是用“订单ID”和“产品ID”联合起来作为主键的。也就是说同一份订单中有多种产品,而每一种产品可能会出现在不同的订单中,只有“订单ID”和“产品ID”同时确定的记录才是唯一的。

设多字段主键时,需先选中多个字段,然后单击工具栏上的主键按钮即可。

到此所有的表都学完了,表设计是整个数据库开发中的基础,是非常重要的。要合理的划分各表,设置好表中的主键与索引,同时要多站在客户的角度,在录入方面作好细节的设置,如查阅属性的设置,输入法的开关,有效性规则的设置,有效性文本的提醒等。

“产品ID”字段来自“产品”表中的主键,设置了查阅属性,“订单ID”与“订单”表中的主键“订单ID”保持一致,这里并没有设置查阅属性,这是由于考虑到以后采用来主子窗体的形式来记录两个表中信息,而作为链接字段的“订单ID”是自动同步的,不用输入。

单价、数量、折扣字段中设置了相应的格式、默认值、有效性规则与有效性文本,可以在实际设计时参考其中的设置,其中单价的格式可改为货币形式即可。表之间关系:

ACCESS数据库是关系型数据库,与其他的关系型数据库一样,也具有三种常用关系:一对一关系、一对多关系和多对多关系。

一对一关系是指两个表之间的记录是一一对应的关系,这种关系用的比较少。

一对多关系,是指A表中的一条记录,可以与B表中的多条记录相对应。如“类别”表中的“类别ID”与“产品”表中的“类别ID”就是一对多的关系,一个类别对应多个产品。

多对多关系是指A表中的一条记录,可以与B表中的多条记录相对应,同时,B表中的一条记录也可以与A表中的多条记录相对应。一般的建立多对多关系时,需要一个中间表,通过中间表同时与两个表A、B之间产生一对多的关系,从而实现A与B之间的多对多关系。如“订单”表与“产品”表就是多对多的关系,一份订单中有多种产品,一种产品会同时出现在多种订单上,中间表就是“订单明细”表。

建立了一对多关系的表之间,一方中的表叫“主表”,多方中的表叫“子表”;两表中相关联的字段,在主表中叫“主键”,在子表中称“外键”。

在建立了关系之后,打开表时,会发现最左侧多了一列“+”,单击“+”号,可以展开另一个数据表,这就是主表中关联的子表。如果子表中还有对应于它的子表,则还可以进一步一层层的展开。这种关系应用在窗体中便是主子窗体。

要查看或编辑表中关系,可以点击工具栏上的关系按钮,或从菜单栏“工具-关系”中进入关系界面。

在关系连接线上双击,或单击右键选择编辑关系,可以查看已经建立的关系,或者进行修改,如果要删除,直接选中删除即可。

关系的另一个重要的功能便是能保持各个表数据之间的完整性。

我们在“订单”表与“订单明细”表的关系编缉窗口,可以在窗口的下半部分看到关系的相关属性。“实施参照完整性”是指不能在相关表的外键字段中输入不存于主键中的值,在例中表现为在“订单明细”表中,不能录入“订单”表中不存在的“订单ID”。“级产删除相关记录”,是指在主表中删除记录时会把相关子表的数据也一起删除,避免出现数据混乱,如在“订单”表中删除每个“订单ID”的记录时,“订单明细”表中所在有关“订单ID”的记录也会一起删除。“级联更新相关字段”是指主表中的主键修改,子表中的相关字段会自动更改。如我们在“客户”表中修改了“客户ID”,那么“订单”表中的“客户ID”会自动更新。在罗斯文数据库中,只有“客户”表与“订单”表中的关系用到了级联更新,基他主表中的主键都是自动生成ID号,不存在修改情况,所以也用不着级联更新。

第二部分:查询

查询的具体分析:

一般的在表设计完成阶段以后就可以进行窗体的设计,然后再根据需要完善报表功能。在窗体与报表设计过程中会较多的使用到查询,一般的可以要据需要随时建立。不过为了先让大家都查询有个系统的了解,所以我们把罗斯文数据库中的查询放到前面来看。

查询一般可以分为五种基本类型:选择查询,参数查询,交叉表查询,操作查询和SQL查询。用得最多的应是选择查询。可以结合罗斯文中的实例一起来学习一下。罗斯文数据库中共有21个查询,这些查询分别为窗体和报表提供了数据源,我们挑选其中的一些来学习。

1.订单查询:

订单查询是为“订单”窗体提供数据的,包含订单表中的全部字段和客户表中的部分字段。一般我们在设计查询时用的最多的是用设计视图创建查询。由于订单查询是一个比较简单的查询,所以我们通过该查询来学习一下怎样通过简单查询向导来创建最简单的查询,然后再利用设计视图来查看和修改。

在数据库的查询对象窗口,双击“使用向导创建查询”

或者单击“新建”按钮,在跳出的“新建查询”的窗口中选择“简单查询向导”

在“表/查询”中选择“表:订单”,选中该表中的所有字段加入到“选定的字段”中

再从“表:客户”中选择字段公司名称,地址,城市,地区,邮政编码,国家

单击“下一步”,选择“明细”;如果要在查询中实现将记录进行分组,计数、求和、求平均值等计算,则要在这一步选择“汇总”进入“汇总选项”进行相应的设置。

选择“下一步”,给查询起名“订单查询”,单击“完成”,自动打开查询,显示查询结果。

如果要对查询进行查看或修改可以进入设计视图中,从菜单“视图”中选择“设计视图”,即可进入设计视图界面。当然工具栏也有“视图”按钮

设计视图分为上下两上窗口,在上面显示查询中要用到的数据源来自于哪些表或查询,在下面列出的是查询结果中需要用到的字段,该字段来自哪个表,哪个字段需要设置排序方式,是否需要显示该字段,以及查询条件等。

很多查询只需查询出满足条件的记录,并不需要全部的记录,这样就需要在“条件”中输入条件,一般用表达式来表示,只有满中表达式的记录才被显示出来。因此我们需要了解一下表达式。

表达式:

表达式是许多Microsoft Access 运算的基本组成部分。表达式是可以生成结果的运算符号

相关主题
文本预览
相关文档 最新文档