第五讲
复习:
1、ACCESS数据库的数据类型有哪几种?
2、字段的索引属性值有哪几种?对数据表建立索引应________视图下使用_______菜单中的“索引”命令。
3、在数据表中,要想控制某字段数据的输入格式,应修改该字段的___________属性;要想控制某字段数据的输出格式,应修改该字段的__________属性;要想定义某字段的域完整性约束,应在该字段的____________属性设置限定条件,________属性设置违反限定条件时的提示信息。
4、主键分为哪几种?定义主键应使用_______菜单中的“主键”命令。
新授课:
§3.4 建立表间关系
在access数据库中,数据表关联是指在两个数据表中相同域上的属性(字段)之间建立一对一、一对多或多对多联系,这个过程称为建立表间关系。通过定义数据表关联,用户可以创建能够同时显示多个数据表中数据的查询、窗体及报表等。
一、关联字段的要求
● 关联字段在一个数据表中是主关键字,在另一个相关联的数据表中的关联字段通常被称为外关键字。
● 外关键字可以是数据表中的主键,也可以是多个候选关键字中的一个,也可以是普通字段。
● 建立关联的字段的名称应相同。
● 相关字段名称不同时,外关键字中的数据应与关联表中的主关键字段相匹配。即它们的数据类型必须相同,如果匹配的字段是数字类型,它们的字段大小必须相同。
● 如下两种情况,相关字段的数据类型可以不一致:
自动编号字段与“字段大小”属性设置为“长整型”的数值字段相匹配。
自动编号字段与“字段大小”属性设置为“同步复制ID”的数值字段相匹配。
二、关联(关系)的创建:
第一步:关闭所有打开的数据表(在已经打开的数据表之间,不能建立或修改关系。)
第二步:单击“工具”菜单中的“关系”或“数据库”工具栏中的“(关系)”按钮
第三步:把数据表添加到关系窗口中。
● 数据库中没有任何关系时,系统会自动显示“显示表”对话框。
● 在已有关系中添加表,使用工具栏上的“显示表”按钮或使用快捷菜单。
● 在已有关系中删除表,单击“表”,使用关系菜单或快捷菜单“隐藏表”
第四步:建立关联(使用鼠标拖动)。
第五步:在“关系”对话框中,可以设置“联接类型和参照完整性”,单击“创建”。
第六步: 单击“关闭”按钮,将建立好的关系保存在数据库中。
说明:
(1)自联接:数据表与自己创建关系。(需把表添加两次)。
(2)在进行查询设计时,也可以建立联接,但不能实施“参照完整性”。
(3)在“关系”窗体中也可以修改表的结构。
(1)自联接:数据表与自己创建关系。(需把表添加两次)。
(2)在进行查询设计时,也可以建立联接,但不能实施“参照完整性”。
(3)在“关系”窗体中也可以修改表的结构。
例5:对“学生成绩管理系统”数据库建立表间关系(演示)
三、编辑和删除关系:
(1)编辑已有的关系(在“关系”视图中,双击“关系连线”)
(2)删除关系(在“关系”视图中,单击“关系连线”,按DELETE)
四、关系选项的意义和作用
1、参照完整性(参照完整性是一个规定系统,ACCESS 2000使用这个系统来确保相关表中记录之间关系的有效性,并且不会意外删除或更改相关数据。)
A、实施参照完整性的条件:
来自于主表的匹配字段是主关键字或具有唯一的索引。
相关的字段都有相同的数据类型,或是符合匹配要求的不同类型。
两个表应该都属于同一个ACCESS数据库。如果是链接表,它们必须是ACCESS格式的表,不能对数据库中其它格式的链接表实施参照完整性。
B、实施参照完整性后,必须遵守下列规则:
在相关表的外部关键字字段中,除空值(NULL)外,不能有在主表的主关键字段中不存在的数据。
如果在相关表中存在匹配的记录,不能只删除主表中的这个记录。
如果某个记录有相关的记录,则不能在主表中更改主关键字。
如果需要ACCESS为某个关系实施这些规则,在创建关系时,请选择“实施参照完整性”。如果破坏了这个规则,系统会自动显示提示信息。
C、实参照完整性的作用
● 不能在相关表的外键字段中输入不存在于主表主键中的值
● 如果在相关表中存匹配的记录,也不能从主表中删除这个记录。
● 如果主表中的一个记录有相关的记录,则不能在主表更改主键值。
2、级联更新相关字段
选择此项后,当修改了主表中主键值时,系统会自动更新相关表中的外键值。
3、级联删除相关记录
选择此项后,当删除了主表中的记录时,系统会自动删除所有与之相关联的相关表中的记录。
五、联系类型(有三种)
● 只包含来自两个表的联接字段相等出的行。(专门用于关系的自然联接,也称内联接)
● 左联接(又称左外部联接):指包括左表中的所有记录和右表中联接字段值相等的记录。
● 右联接(又称右外部联接):指包括右表中的所有记录和左表中联接字段值相等的记录。
练习:在“学生成绩管理系统”数据库中,利用建立好的关系,练习使用关系选项、联系类型。
小结:
1、关联字段的要求、创建关联(注意:要先关闭打开的表)、编辑和删除关系。
2、参照完整性的定义、条件,实施参照完整性后必须遵守的规则。
3、级联更新和级联删除
4、联接的三种类型:自然联接、左联接、右联接。
作业:
8、在创建表间关系时,必须先关闭______打开的表,再使用______菜单中的“关系”命令,打开“关系”窗口进行操作。
9、表间关系有哪几种?关系的联接类型有哪几种及各自的定义?
10、什么是参照完整性?实施参照完整性的条件是什么?实施参照完整性后必须遵守的规则有哪些?
第四章 access表的使用
§4.1 域合计函数
合计函数提供提供记录集(一个域)的统计信息。主要分为两种类型:域合计函数和SQL合计函数。SQL合计函数可以在SQL语句的语法中使用,但不能直接从VB中调用;而域合计函数可以直接从VB代码中调用,并且也可以SQL语句中使用。如果要在代码中执行统计运算,必需使用域合计函数。
1、DAVG函数(在窗体中测试表达式的值)
(1)功能:计算特定记录集中(一个域)一组数的平均值。
(2)格式:DAVG(EXPR,DOMAIN[,CRITERIA])
说明:
● EXPR:为字符串表达式。代表要计算其平均值的数值数据字段。
● DOMAIN:为字符串表达式,可以是表或查询的名称。
● CRITERIA:为可选字符串表达式,用于限制DAVG函数的执行范围。
例:求0701号课程的平均成绩;成绩表的平均成绩。
=DAvg("cj","cjb99","kch='1101'")
=DAvg("cj","cjb99")
2、DCOUNT函数
(1)功能:计算特定记录集中(一个域)记录个数。
(2)格式:Dcount(EXPR,DOMAIN[,CRITERIA])
说明:
● EXPR:为字符串表达式。用于标识要返回其值的字段。
● DOMAIN:为字符串表达式,可以是表或查询的名称。
● CRITERIA:为可选字符串表达式,用于限制Dcount函数的执行范围。
例:统计学生表中女生的人数;统计学生表中的学生数。
=DCount("xb","stu99","xb='女'")
=Dcount("xm","stu99")
3、DSUM函数
(1)功能:计算特定记录集中(一个域)一组数的和。
(2)格式:Dsum(EXPR,DOMAIN[,CRITERIA])
说明:
● EXPR:为字符串表达式,代表要计算的数值数据字段。
● DOMAIN:为字符串表达式,可以是表或查询的名称。
● CRITERIA:为可选字符串表达式,用于限制Dsum函数的执行范围。
例:求成绩表中,99010001号学生的总成绩。
=Dsum("cj","cjb99","xh=’10001'")
4、DLOOKUP函数
(1)功能:返回指定记录集(一个域)获取特定字段的一个值。
(2)格式:Dlookup(EXPR,DOMAIN[,CRITERIA])
说明:
● EXPR:为字符串表达式,用于标识需要返回其值的字段。
● DOMAIN:为字符串表达式,可以是表或查询的名称。
● CRITERIA:为可选字符串表达式,用于限制Dlookup函数的执行范围。
例:返回学生刘梅的学号。
=Dlookup("xh","stu99","xm=’刘梅'")
5、DMIN和DMAX:用于确定指定记录集(一个域)中的最小值和最大值)
DMin/DMax(EXPR,DOMAIN[,CRITERIA])
练习:简述下列表达式的作用
=Dmax("cj","cjb99","kch=’0701'")
=Dmin("cj","cjb99","xh=’0701'")
§4.2 表的使用和编辑(自主学习)
练习1:
1、打开stu99表,设置单元格显示效果、网格线和背景颜。
2、隐藏stu99表的xb、csrq列,观察其效果后,取消隐藏的列。
3、把stu99表的姓名列移动到性别列的后面。(不会影响表的物理结构)
4、查姓名为王丽的记录(编辑/查)
§4.3 数据排序及筛选(自主学习)
练习2:
5、对stu99表,按性别进行降序排序。(记录/排序/升序、降序;使用排序按钮)
6、对stu99表,按性别和出生日期升序排序。
7、对stu99表,按性别升序和出生日期降序排序。(“记录”菜单中的“筛选”/“高级筛选/排序”对话框)
8、按选定内容筛选stu99中筛选中女生的记录。access数据库建表的完整步骤
9、按选定内容排除筛选stu99中筛选中女生的记录。
11、按窗体筛选06电子商务的女生记录。
小结:
1、域合计函数
2、表的使用和编辑(自主学习)
3、数据排序及筛选(自主学习)
作业:
根据学生成绩管理数据库中各表,使用域合计函数,写出下列各题的表达式。
(1)求0701号课程的平均成绩;成绩表的平均成绩。
(2)统计学生表中女生的人数;统计学生表中的学生数。
(3)求成绩表中,1002号学生的总成绩。
(4)求成绩表中,1005号学生成绩的最高分、最低分。
(5)返回学生王丽的学号。
答案:
(1)求0701号课程的平均成绩;成绩表的平均成绩。=DAvg("cj","cjb99","kch='0701'")
(2)统计学生表中女生的人数;统计学生表中的学生数。
=DCount("xh","stu99","xb='女'")
=Dcount("xm","stu99")
(3)求成绩表中,1002号学生的总成绩。=DSum("cj","cjb99","xh='108'")
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论