数据库表之间的联系

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库表之间的联系

表之间的关系主要有三种:一对一,一对多,多对多。VFP支持前两种。

理解好“表之间的关系主要要掌握好主关键字和外部关键字”,如果两张表都具有相同的主关键字,则认为它们具有“一对一”关系,如果一张表的主关键字存在于另一张表中称为“外部关键字”,则认为它们具有“一对多”关系。

14.永久关系与临时关系的联系和区别

[例]:永久关系

OPEN DATABASE JXSL

ALTER TABLE CJ ADD FOREIGN KEY XH TAG XH REFE XS

&& 前提是XS表已建立索引表达式为XH的主索引

或:CREATE TABLE CJ (XH C(6),KCDH C(6), CJ N(3,0);

FOREIGN KEY XH TAG XH REFE XS)

[例]:临时关系

SELE 1

USE XS

SELE 2

USE CJ ORDER XH

SELE XS

SET RELA TO XH INTO CJ

GO 2

BROW NOWAIT

SELE CJ

BROW

CLOSE TABLE ALL

15.数据完整性

(1)字段格式及字段掩码:

字段格式码:A D E L $ ! T 等p98

输入掩码:X 9 # $ * . , $$

[例]:XH字段格式设为T! --- 表示在输入或显示XH时,忽略其前导空格、字母转换为大写

[例]:输入掩码为“999-9999999”

(2)标题与默认值:

注意默认值数据类型。

(3)字段有效性规则:

控制输入到字段中的数据的取值范围,该规则是一个逻辑表达式,且当前字段包含在该表达式中。如果结果为.F.,则拒绝所输入的字段值,并显示提示信息.

[注]:该规则只对当前字段有效.如果有判断空的逻辑表达式,例XH为空,则不能用XH=””,而需要用函数EMPTY(XH),ISNULL()等来判断.

(4)记录有效性规则:

可以校验多个字段之间的关系是否满足某种规则,该规则也是一个逻辑表达式.

(5)触发器:

绑定在表上的逻辑表达式,是在插入、更新、删除记录时进行的检验规则。返回值为.T.时,允许执行相应操作,.F.时不允许执行相应操作.

[例] 1.js表中有字段gl(工龄),要求“值不能大于50”

在gl的字段有效性规则中输入gl<=50

2.js表中有字段jbgz(基本工资),要求jbgz在“100—1000”之间

在jbgz的字段有效性规则中输入jbgz>=100.and.jbgz<=1000

3.js表中有字段xb(性别),要求xb必须是“男”或“女”

在xb的字段有效性规则中输入xb=”男” .or. xb=”女”

4.js表中有字段xm(姓名),要求xm至少含有两个汉字

在xm的字段有效性规则中输入len(alltrim(xm))>=4

5.js表中有字段ximing(系名),要求除了“信息管理系”的老师记录,其它记录都不能进行修改

在js表的更新触发器中输入js.ximing=”信息管理系”

6.js表若有gl小于等于0,则允许删除

在js表的删除触发器中输入gl<=0

[例]:利用SQL命令设置规则等

OPEN DATABASE JXSL

ALTER TABLE CJ ALTER COLUMN CJ SET CHECK CJ>=0 AND ;

CJ<=100 ERROR "成绩在0~100之间"

ALTER TABLE CJ ALTER COLUMN CJ SET DEFAULT 0

16.参照完整性

建立在表关系之上的表之间的约束关系。通过触发器调用存储过程。

17.常用函数

DBC()、DBUSED()、DBGETPROP()、DBSETPROP() p110

SELECT()、USED()、ALIAS()、FCOUNT()、DELETED()

[例]:

OPEN DATABASE JXSL

? DBC() &&显示C:\NEC\VFP\JXSL.DBC

?DBUSED(“JXSL”)&&显示 .T.

? DBGETPROP(“XS”,”TABLE”,”PRIMARYKEY”)&&显示XS表主索引标识

? DBG ETPROP(“CJ.CJ”,”FILELD”,”RULEEXPRESSION”)&&显示字段规则

?DBSETPROP(“XS.XH”,”FIELD”,”CAPTION”,”学号”)&&设置标题

四.练习题

1.vfp是一种()的数据库管理系统。

A 网络模型 B层次模型

C 对象模型

D 关系模型

2.对于二维表的关键字来说,不一定存在的是()

A 超关键字

B 候选关键字

C 主关键字

D 外部关键字

3.若同时打开了甲、乙两个项目,对于从甲项目中拖放文件到乙项目的操作,下列说法中正确的是()

A 拖放操作并不创建文件的副本,只保存了一个对该文件的引用

B 拖放操作后在乙项目文件同一文件夹下创建了该文件的副本

C 允许从甲项目的某数据库中拖放一张表到乙项目的某一数据库中

D 若拖放操作成功则甲项目中便不存在该文件了

4.二维表的结构取决于()

A 字段的个数、名称、类型和长度

B 记录的个数、顺序

C 字段的个数、顺序

D 记录和字段的个数和顺序

5.在定义表结构时,以下()数据类型的字段宽度都是固定的。

A 字符型、货币型、数值型

B 字符型、备注型、二进制备注型

C 数值型、货币型、整型

D 整型、日期型、日期时间型

6.打开已张空表,分别用函数eof()和bof()测试,其结果一定是()

A .T.和.T.

B .F.和.F.

C .T.和.F. D.F.和.T.

7.在js.dbf中筛选出性别为“女”的命令是()

A.set filter to xb=”女”

B.set filter xb=”女”

C.set fields to xb=”女”

D.set filter to

相关文档
最新文档