Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-查询/SQL语句

全面掌握MS ACCESS SQL(17)

时 间:2018-01-08 11:41:55
作 者:Big Young   ID:252  城市:襄阳
摘 要:    用SQL构建表之间的关系。
正 文:

第三节 用SQL构建表之间的关系

ACCESS数据库中,我们可以通过多种途经创建表间的关系,但使用SQL语句来创建无疑是最快捷的,我们还是先来研究一下如何创建表的主键约束。

一、创建表的主键约束

创建主键约束分为两种情况,如果表还没创建,我们可以用Create TABLE语句在创建新表的同时添加主键约束,如果表已存在且没有设置主键约束,这时我们可以使用Alter TABLE语句来修改表属性,为其添加主键约束。不管用哪种方法创建主键,数据库管理系统都将自动创建相应的唯一索引,同时需要注意的是:一个表只能包含一个PRIMARY KEY(主键)约束。在PRIMARY KEY约束中定义的所有列都必须定义为NOT NULL(不能为空)。如果没有指定为NOT NULL属性,则加入PRIMARY KEY约束的所有列都将设置为NOT NULL

下面的SQL语句在“人员表创建时在“编号列上创建PRIMARY KEY(主键)约束:

Create TABLE 人员

(

  编号 INTEGER,

  姓名 TEXT(8),

  性别 TEXT(1),

  生日 DATETIME,

  电话 TEXT(11),

  住址 TEXT(25),

  CONSTRAINT 主键_编号 PRIMARY KEY(编号)

);

下面的SQL语句将删除人员数据表中名为主键_编号的主键约束:

Alter TABLE 人员

Drop CONSTRAINT 主键_编号;

下列的SQL语句将为已存在的“人员表的“编号”字段添加主键约束,约束名为主键_编号

Alter TABLE 人员

ADD CONSTRAINT 主键_编号 PRIMARY KEY (编号);

如果我们不指定约束的名字,系统会随机生成一个名字,这时可以省略CONSTRAINT子句,如:

Alter TABLE 人员

ADD PRIMARY KEY (编号);

或者在创建时这样:

Create TABLE 人员

(

  编号 INTEGER PRIMARY KEY,

  姓名 TEXT(8),

  性别 TEXT(1),

  生日 DATETIME,

  电话 TEXT(11),

  住址 TEXT(25)

);

由于我们事先不知道系统生成的约束名是什么,后期维护修改就比较麻烦,所以我们还是要养成命名创建对象的好习惯。

如果一个表中的某一个字段不能唯一区分一条记录,我们也可以用多字段的组合来创建主键,使之成为记录的唯标识。例如:

Alter TABLE 人员

ADD CONSTRAINT 主键_组合 PRIMARY KEY (编号,姓名,性别);

二、外键关系的创建与修改

当希望将一个表的行与另一个表的行相关联时,我们可在这两个表之间创建关系。通常一个表中的外键与另一表中的主键相关联,当然外键约束并不仅仅是这样,它还可以定义为引用另一个表中UNIQUE(唯一性)约束的列,同时一个表可以有多个外键。

1、创建外键关系

下面的SQL语句将创建一个身份证表,并在名为人员编号的字段上创建一个命名为外键_人员编号的外键约束,并关联到表人员编号字段:

Create TABLE 身份证

(

  身份证号 NVARCHAR(18) PRIMARY KEY,

  人员编号 INTEGER,

  注册机构 TEXT(50),

  注册地址 TEXT(50),

  生效日期 DATETIME,

  失效日期 DATETIME,

  证件照片 IMAGE,    

  CONSTRAINT 外键_人员编号 FOREIGN KEY (人员编号

  REFERENCES 人员 (编号)    

  ON Delete CASCADE

  ON Update CASCADE

);

2、删除外键关系

下面的SQL语句将删除上面创建的“身份证”表中的名为外键_人员编号的外键关系约束:

Alter TABLE 身份证

Drop CONSTRAINT 外键_人员编号;

3、修改外键约束

下面的SQL语句通过修改身份证表的人员编号字段的属性来为其添加外键关系约束:

Alter TABLE 身份证

ADD CONSTRAINT 我的外键关系 FOREIGN KEY (人员编号)

REFERENCES 人员 (编号);

4、查看外键关系

中关系数据库中,创建外键约束也就是创建了表间的主——外键关系,此关系存储在一个名为“MSysRelationships”的系统表中,我们可以通过查询此表来了解所创建的关系,例如,我们要查看上面所创建的关系,可以用以下的SQL语句:

Select *

FROM MSysRelationships;

执行的我们会看到系统中的全部关系,当然后面也包括我们自己创建的关系,显示关联的表及字段的名称及定义的关系的名称等。



Access软件网QQ交流群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助