数据库的创建与表间关系的各种操作
数据库之表与表之间建关系

数据库之表与表之间建关系⼀、⼀对多关系定义⼀张部门员⼯表我们就会发现把所有数据存放于⼀张表的弊端:1.组织结构不清晰2.浪费硬盘空间3.扩展性极差这样的弊端是不是看着很眼熟,没错!这就类似于我们代码全部写在⼀个py⽂件中,那么当我们发现⼀个py⽂件中的代码冗余度很⾼会怎么做呢?当然就是要进⾏解耦合!那么我再来分析这张表数据之间的关系:多个⽤户对应⼀个部门,⼀个部门就对应了多个⽤户,那么他们之间的关系就应该是⼀对多的关系,我们可以将上⾯的表拆开成两张表,⼀张是记录⽤户信息,另⼀张记录部门信息,再⽤某种⽅法使者两张表关联起来,这个⽅法就是:使⽤Foreign Key确⽴表与表之间的关系⼀定要换位思考(必须两⽅⾯都考虑周全之后才能得出结论)Foreign Key:外键约束1.在创建表的时候,必须先创建被关联表2.插⼊数据的时候,也必须先插⼊被关联表的数据创建表:1#在创建表的时候,⼀定要先建被关联的表,才能创建关联表2create table dep(3id int primary key auto_increment,4 dep_name varchar(64),5 dep_desc varchar(64)6);78create table emp(9id int primary key auto_increment,10 name varchar(16),11 gender enum('male','female','others')not null default 'male',12age int,13emp_id int,14foreign key(emp_id) references dep(id)15 );插⼊记录:1#插⼊记录时,必须先插被关联的表dep,才能插关联表emp2insert into dep(dep_name,dep_desc) values3 ('⽂娱部','⽂艺熏陶'),4 ('体育部','强⾝健体'),5 ('⼩卖部','好吃好喝');67insert into emp(name,gender,age,emp_id) values8 ('jason','female',18,1),9 ('egon','male',90,2),10 ('tank','male',38,2),11 ('kevien','female',20,3),12 ('jerry','male',40,3);这样我们就把表都创建好了,并且表与表之间也建⽴了联系,但是问题也接踵⽽来,当我想修改emp⾥的dep_id或dep⾥⾯的id(修改成两张表都没有id)或者删除dep表⾥的记录时都会报错,如下图:解决⽅式有两种:⽅式1:先删除部门对应的所有的员⼯,在删除这个部门★⽅式2:先把之前创的表删除,先删除员⼯表,再删除部门表,最后按照下⾯的⽅式重新创建表关系更新与删除都需要考虑到关系与被关联的关系,也就是做到同步更新,同步删除1create table dep(2 id int primary key auto_increment,3 dep_name varchar(64),4 dep_desc varchar(64)5 );6 create table emp(7 id int primary key auto_increment,8 name varchar(16),9 gender enum('male','female','others')not null default 'male',10 age int,11 emp_id int,12 foreign key(emp_id) references dep(id)13 on update cascade14 on delete cascade15 );插⼊记录:1insert into dep(dep_name,dep_desc) values2 ('⽂娱部','⽂艺熏陶'),3 ('体育部','强⾝健体'),4 ('⼩卖部','好吃好喝');56insert into emp(name,gender,age,emp_id) values7 ('jason','female',18,1),8 ('egon','male',90,2),9 ('tank','male',38,2),10 ('kevien','female',20,3),11 ('jerry','male',40,3);删除部门后,对应的部门⾥⾯的员⼯表数据同步对应删除更新部门后,对应员⼯表中的标识部门的字段同步更新⼆、多对多例:图书表与作者表之间的关系我们仍然站在两张表的⾓度来分析:1.站在图书表:⼀本书可不可以有多个作者,可以的!那么就是书籍多对⼀了作者2.站在作者表:⼀个作者可不可以写多本书,也可以!那么就是作者多对⼀了书籍双⽅都能⼀条数据对应对⽅多条记录,这种关系就是多对多!那么我们应该如何创建表呢?图书表需要有⼀个外键关联作者,作者也需要有⼀个外键来关联书籍,然后问题来了,那我到底先创建谁呢?怎么解决这个问题呢?解决⽅案:创建第三张表,该表中应该有⼀个foreign key字段关联图书表中的id,还应该有⼀个foreign key字段来关联作者表中的id,这样这两张表就通过⼀个中间者,建⽴起了联系。
数据库之表与表之间的关系

数据库之表与表之间的关系表1 foreign key 表2则表1的多条记录对应表2的⼀条记录,即多对⼀利⽤foreign key的原理我们可以制作两张表的多对多,⼀对⼀关系多对多:表1的多条记录可以对应表2的⼀条记录表2的多条记录也可以对应表1的⼀条记录⼀对⼀:表1的⼀条记录唯⼀对应表2的⼀条记录,反之亦然分析时,我们先从按照上⾯的基本原理去套,然后再翻译成真实的意义,就很好理解了1、先确⽴关系2、找到多的⼀⽅,吧关联字段写在多的⼀⽅⼀、多对⼀或者⼀对多(左边表的多条记录对应右边表的唯⼀⼀条记录)需要注意的:1.先建被关联的表,保证被关联表的字段必须唯⼀。
2.在创建关联表,关联字段⼀定保证是要有重复的。
其实上⼀篇博客已经举了⼀个多对⼀关系的⼩例⼦了,那我们在⽤另⼀个⼩例⼦来回顾⼀下。
这是⼀个书和出版社的⼀个例⼦,书要关联出版社(多个书可以是⼀个出版社,⼀个出版社也可以有好多书)。
谁关联谁就是谁要按照谁的标准。
书要关联出版社被关联的表create table press(id int primary key auto_increment,name char(20));关联的表create table book(book_id int primary key auto_increment,book_name varchar(20),book_price int,press_id int,constraint Fk_pressid_id foreign key(press_id) references press(id)on delete cascadeon update cascade);插记录insert into press(name) values('新华出版社'),('海燕出版社'),('摆渡出版社'),('⼤众出版社');insert into book(book_name,book_price,press_id) values('Python爬⾍',100,1),('Linux',80,1),('操作系统',70,2),('数学',50,2),('英语',103,3),('⽹页设计',22,3);运⾏结果截图:⼆、⼀对⼀例⼦⼀:⽤户和管理员(只有管理员才可以登录,⼀个管理员对应⼀个⽤户)管理员关联⽤户===========例⼦⼀:⽤户表和管理员表=========先建被关联的表create table user(id int primary key auto_increment, #主键⾃增name char(10));在建关联表create table admin(id int primary key auto_increment,user_id int unique,password varchar(16),foreign key(user_id) references user(id)on delete cascadeon update cascade);insert into user(name) values('susan1'),('susan2'),('susan3'),('susan4'),('susan5'),('susan6');insert into admin(user_id,password) values(4,'sds156'),(2,'531561'),(6,'f3swe');运⾏结果截图:例⼦⼆:学⽣表和客户表========例⼦⼆:学⽣表和客户表=========create table customer(id int primary key auto_increment,name varchar(10),qq int unique,phone int unique);create table student1(sid int primary key auto_increment,course char(20),class_time time,cid int unique,foreign key(cid) references customer(id)on delete cascadeon update cascade);insert into customer(name,qq,phone) values('⼩⼩',13564521,11111111),('嘻哈',14758254,22222222),('王维',44545522,33333333),('胡军',545875212,4444444),('李希',145578543,5555555),('李迪',754254653,8888888),('艾哈',74545145,8712547),('啧啧',11147752,7777777);insert into student1(course,class_time,cid) values('python','08:30:00',3),('python','08:30:00',4),('linux','08:30:00',1),('linux','08:30:00',7);运⾏结果截图:三、多对多(多条记录对应多条记录)书和作者(我们可以再创建⼀张表,⽤来存book和author两张表的关系)要把book_id和author_id设置成联合唯⼀联合唯⼀:unique(book_id,author_id)联合主键:alter table t1 add primary key(id,avg)多对多:⼀个作者可以写多本书,⼀本书也可以有多个作者,双向的⼀对多,即多对多 关联⽅式:foreign key+⼀张新的表========书和作者,另外在建⼀张表来存书和作者的关系#被关联的create table book1(id int primary key auto_increment,name varchar(10),price float(3,2));#========被关联的create table author(id int primary key auto_increment,name char(5));#========关联的create table author2book(id int primary key auto_increment,book_id int not null,author_id int not null,unique(book_id,author_id),foreign key(book_id) references book1(id)on delete cascadeon update cascade,foreign key(author_id) references author(id)on delete cascadeon update cascade);#========插⼊记录insert into book1(name,price) values('九阳神功',9.9),('葵花宝典',9.5),('辟邪剑谱',5),insert into author(name) values('egon'),('e1'),('e2'),('e3'),('e4'); insert into author2book(book_id,author_id) values(1,1),(1,4),(2,1),(2,5),(3,2),(3,3),(3,4),(4,5);多对多关系举例⽤户表,⽤户组,主机表-- ⽤户组create table user (id int primary key auto_increment,username varchar(20) not null,password varchar(50) not null);insert into user(username,password) values('egon','123'),('root',147),('alex',123),('haiyan',123),('yan',123);-- ⽤户组表create table usergroup(id int primary key auto_increment,groupname varchar(20) not null unique);insert into usergroup(groupname) values('IT'),('Sale'),('Finance'),('boss');-- 建⽴user和usergroup的关系表create table user2usergroup(id int not NULL UNIQUE au to_increment,user_id int not null,group_id int not NULL,PRIMARY KEY(user_id,group_id),foreign key(user_id) references user(id)ON DELETE CASCADEon UPDATE CASCADE ,foreign key(group_id) references usergroup(id)ON DELETE CASCADEon UPDATE CASCADE);insert into user2usergroup(user_id,group_id) values(1,1), (1,2),(1,3),(1,4),(2,4),(3,4);-- 主机表CREATE TABLE host(id int primary key auto_increment,ip CHAR(15) not NULL UNIQUE DEFAULT '127.0.0.1' );insert into host(ip) values('172.16.45.2'),('172.16.31.10'),('172.16.45.3'),('172.16.31.11'),('172.10.45.3'),('172.10.45.4'),('172.10.45.5'),('192.168.1.20'),('192.168.1.21'),('192.168.1.22'),('192.168.2.23'),('192.168.2.223'),('192.168.2.24'),('192.168.3.22'),('192.168.3.23'),('192.168.3.24');-- 业务线表create table business(id int primary key auto_increment,business varchar(20) not null unique);insert into business(business) values('轻松贷'),('随便花'),('⼤富翁'),('穷⼀⽣');-- 建⽴host和business关系表CREATE TABLE host2business(id int not null unique auto_increment,host_id int not null ,business_id int not NULL ,PRIMARY KEY(host_id,business_id),foreign key(host_id) references host(id),FOREIGN KEY(business_id) REFERENCES business(id));insert into host2business(host_id,business_id) values (1,1),(1,2),(1,3),(2,2),(2,3),(3,4);-- 建⽴user和host的关系create table user2host(id int not null unique auto_increment,user_id int not null,host_id int not null,primary key(user_id,host_id),foreign key(user_id) references user(id),foreign key(host_id) references host(id));insert into user2host(user_id,host_id) values(1,1), (1,2),(1,3),(1,4),(1,5),(1,6),(1,7),(1,8),(1,9),(1,10),(1,11),(1,12),(1,13),(1,14),(1,15),(1,16),(2,2),(2,3), (2,4), (2,5), (3,10), (3,11), (3,12);练习。
数据库表建立连接的命令

数据库表建立连接的命令在数据库中建立连接是指应用程序与数据库之间建立起通信通道,以便应用程序可以向数据库发送请求并获取相应的数据。
建立连接需要使用特定的命令和参数,具体的语法和用法可能会因不同的数据库管理系统而有所不同。
以下是一些常见的数据库表建立连接的命令,用简体中文进行介绍。
1. MySQLMySQL是一个开源的关系型数据库管理系统,可以通过以下命令来建立与数据库的连接:```mysql -h <hostname> -u <username> -p```其中,`<hostname>`是数据库服务器的主机名或IP地址,`<username>`是连接数据库所需的用户名。
2. OracleOracle是一个功能强大的关系型数据库管理系统,通过以下命令可以进行连接:```sqlplus<username>/<password>@<hostname>:<port>/<service_name> ```其中,`<username>`和`<password>`是连接数据库所需的用户名和密码,`<hostname>`是数据库服务器的主机名,`<port>`是连接端口号,`<service_name>`是数据库服务的名称。
3. SQL ServerSQL Server是微软的关系型数据库管理系统,可以通过以下命令建立连接:```sqlcmd -S <hostname>\<instance_name> -U <username> -P<password>```其中,`<hostname>`是数据库服务器的主机名,`<instance_name>`是SQL Server实例的名称,`<username>`和`<password>`是连接数据库所需的用户名和密码。
access总结建立表间关系、举例说明级联更新、级联删除总结

access总结建立表间关系、举例说明级联更新、级联删除总结1.表间关系的建立在A cc es s数据库中,我们可以通过建立表间关系来连接不同的表,实现数据的关联和查询。
常见的表间关系有一对一关系、一对多关系和多对多关系。
1.1一对一关系一对一关系指的是两个表之间的每条记录在关联字段上都是唯一的。
举个例子,我们有两个表:学生表和身份证信息表,其中学生和身份证之间是一对一关系。
每个学生都对应着一个唯一的身份证号码。
在A cc es s中建立一对一关系,可以通过以下步骤:1.打开Ac ce ss数据库,并打开表设计视图。
2.在两个表的关联字段上创建索引。
3.在数据库工具中选择“关系”选项,然后将两个表拖动到“关系”窗口中。
4.在关联字段上建立关系。
1.2一对多关系一对多关系指的是一个表的记录在关联字段上可以与另一个表的多个记录相关联。
比如,我们有一个学生表和一个课程表,一个学生可以选择多门课程,而一门课程只能被一个学生选择。
在A cc es s中建立一对多关系,可以通过以下步骤:1.打开Ac ce ss数据库,并打开表设计视图。
2.在两个表的关联字段上创建索引。
3.在数据库工具中选择“关系”选项,然后将两个表拖动到“关系”窗口中。
4.在关联字段上建立关系。
1.3多对多关系多对多关系指的是两个表之间的每个记录在关联字段上可以与另一个表的多个记录相关联。
举个例子,我们有一个学生表和一个课程表,一个学生可以选择多门课程,而一门课程也可以被多个学生选择。
在A cc es s中建立多对多关系,通常需要借助第三张关系表来实现。
以下是建立多对多关系的步骤:1.创建第三张关系表,该表包含两个表的主键作为外键,并成为这两个表之间的中间表。
2.在数据库工具中选择“关系”选项,然后将三张表拖动到“关系”窗口中。
3.在关联字段上建立关系。
2.级联更新的举例说明在A cc es s数据库中,我们可以通过级联更新来确保数据库中关联的记录在更新时保持一致。
Access实验- 数据库创建及表的操作

ACCESS 实验数据库及表的操作一、实验目的1.掌握数据库的创建及其它简单操作2.熟练掌握数据表建立、数据表维护、数据表的操作二、实验内容与要求1.数据库的创建、打开、关闭2.数据表的创建:建立表结构、设置字段属性、建立表之间关系、数据的输入3.数据表维护:打开表、关闭表、调整表外观、修改表结构、编辑表内容4.数据表的操作:查找替换数据、排序记录、筛选记录三、实验步骤案例一:创建数据库1.创建空数据库要求:在移动盘上建立“\experiment\ACCESS\实验一”文件夹,并在其下建立“教学管理.accdb”数据库。
创建数据库文件操作步骤:图1-1创建教学管理数据库(1)在Access 2010启动窗口中,在中间窗格的上方,单击“空数据库”,在右侧窗格的文件名文本框中,给出一个默认的文件名“Database1.accdb”。
把它修改为“教学管理”如图1-1所示。
(2)单击按钮,在打开的“新建数据库”对话框中,选择数据库的保存位置,在“\ experiment\ACCESS\实验一”文件夹中,单击“确定”按钮,如图1-2所示。
(3)这时返回到access启动界面,显示将要创建的数据库的名称和保存位置,如果用户未提供文件扩展名,access将自动添加上。
(4)在右侧窗格下面,单击“创建”命令按钮,如图1-1所示。
(5)这时开始创建空白数据库,自动创建了一个名称为表1的数据表,并以数据表视图方式打开这个表1,如图1-3所示。
图1-2“文件新建数据库”对话框(6)这时光标将位于“添加新字段”列中的第一个空单元格中,现在就可以输入添加数据,或者从另一数据源粘贴数据。
图1-3表1的数据表视图2.使用模板创建Web数据库要求:利用模板创建“联系人Web数据库.accdb”数据库,保存在“\ experiment\ACCESS\实验一”文件夹中。
操作步骤:(1)启动Access。
(2)在启动窗口中的模板类别窗格中,双击样本模板,打开“可用模板”窗格,可以看到Access提供的12个可用模板分成两组。
Access数据库的表关系与关联操作

Access数据库的表关系与关联操作Access是一款常用的关系型数据库管理系统(RDBMS),它以其易用性和功能强大而受到广泛应用。
在Access中,表关系和关联操作是数据库设计和数据管理中至关重要的概念。
本文将详细介绍Access数据库的表关系和关联操作。
一、表关系的概念表关系是指不同表之间的属性和数据的共享和联系。
在Access中,常见的表关系包括一对一关系、一对多关系和多对多关系。
1. 一对一关系一对一关系意味着两个表之间的每个记录在另一个表中只有一个与之对应的记录。
例如,一个学生表和一个考勤表之间可以建立一对一关系,确保每个学生只有一条考勤记录。
2. 一对多关系一对多关系是指一个表的记录可以与另一个表的多个记录相关联,而另一个表的记录只能与一个表的记录相关联。
例如,一个客户表和一个订单表之间可以建立一对多关系,每个客户可以拥有多个订单。
3. 多对多关系多对多关系是指两个表之间的每个记录都可以与另一个表的多个记录相关联。
为了实现多对多关系,通常需要通过中间表来关联两个表。
例如,一个学生表和一个课程表之间可以建立多对多关系,通过一个成绩表来关联学生和课程。
二、创建表关系在Access中,可以通过创建外键来建立表关系。
外键是一个字段或一组字段,它引用了另一张表的主键(或唯一键),从而将两个表联系起来。
1. 创建一对一关系要创建一对一关系,可以在其中一个表中创建一个引用另一个表主键的字段。
在Access的设计视图中,选择该字段,右键点击并选择“设置主键和外键”,然后选择目标表中的相关字段作为外键。
2. 创建一对多关系要创建一对多关系,可以在“多”一方的表中创建一个引用“一”一方表主键的字段。
然后,在Access的设计视图中,选择该字段,右键点击并选择“设置主键和外键”,然后选择目标表中的相关字段作为外键。
3. 创建多对多关系要创建多对多关系,需要创建一个中间表,该表包含了两个表的主键作为外键。
如何进行数据库表的关联与联接操作

数据库表的关联与联接操作是数据库管理中非常重要的概念和技术。
通过合理地进行表的关联与联接,我们可以在存储数据的同时,保持数据之间的准确性和完整性,提高数据库的查询效率和灵活性。
接下来,我们将深入探讨如何进行数据库表的关联与联接操作。
一、理解表的关联与联接在数据库中,不同表之间可以通过共享的数据字段进行关联与联接。
表的关联指的是基于共享的数据字段,将不同的表连接起来,以形成逻辑上的关系。
联接则是实际进行的操作,通过对表进行联接,我们可以在查询数据时将相应的数据字段进行匹配与合并。
二、常用的关联与联接类型在数据库中,有几种常用的关联与联接类型,包括内连接、左连接、右连接和全连接。
1. 内连接(Inner Join)内连接是通过返回两个表之间共同字段的匹配记录来进行联接操作。
对于两个表来说,只有在其中一个表中存在相应的匹配记录时,才能返回结果。
2. 左连接(Left Join)左连接是以左表为主,返回左表中的所有记录以及右表中与之相匹配的记录。
如果右表中没有与左表匹配的记录,则返回空值。
3. 右连接(Right Join)右连接是以右表为主,返回右表中的所有记录以及左表中与之相匹配的记录。
如果左表中没有与右表匹配的记录,则返回空值。
4. 全连接(Full Join)全连接返回两个表中所有记录,无论是否有匹配的记录。
如果其中一个表中没有与另一个表匹配的记录,则返回空值。
三、进行关联与联接的步骤要进行数据库表的关联与联接操作,需要进行以下步骤:1. 确定需要联接的表:首先,需要确定需要进行关联与联接的表,保证它们之间有共同的字段。
2. 选择合适的联接类型:根据具体需求,选择合适的联接类型,如内连接、左连接、右连接或全连接。
3. 确定联接条件:在进行联接操作时,需要确定联接的条件,即需要匹配的字段。
通常情况下,联接条件是两个表中的某个字段。
4. 进行联接操作:根据选择的联接类型和联接条件,进行相应的联接操作。
数据库系统及应用(第六版)第4章数据库及表的操作

4.2 数据表操作
4.2.1 表的基本操作
1 表的打开、关闭和浏览
(1)菜单方式
4.2 数据表操作
4.2.1 表的基本操作
1 表的打开、关闭和浏览
(1)菜单方式
4.2 数据表操作
4.2.1 表的基本操作
1 表的打开、关闭和浏览
(2)“数据工作期”方式
4.2 数据表操作
4.2.1 表的基本操作
4.1 数据库操作
4.1.3 创建数据库表
4
修改表结构
(2)打开数据库修改数据表 如果数据库已经打开,则可以使用“数据库设计器”修改当前数据 库内所有的数据表。方法是首先在“数据库设计器”内单击选中某个数 据库表,然后执行【数据库】|【修改】菜单命令。或者右击数据库表 打开快捷菜单,执行【修改】菜单命令。还可以单击“数据库设计器” 工具栏内的“修改表”工具按钮。上述三种操作的目的都是为了打开 “表设计器”。
删除触发器:用于指定一个规则,每当用户对表中的记录进行删 除时触发该规则并进行相应的检查。如果表达式值为“假”,则记录 将不能被删除。
4.1 数据库操作
4.1.3 创建数据库表
4
修改表结构
(1)直接修改数据表 执行【文件】|【打开】菜单命令,打开表文件,然后执行【显示】| 【表设计器】菜单命令。使用这种方式可以在不打开数据库的情况下直接 修改数据库中的表,它等同于使用了以下两条命令: USE<表名> MODIFY STRUCTURE
4.1 数据库操作
4.1.4 添加和移去数据表
1 向数据库中添加表
当一个数据库被打开后,用户可以单击“数据库设计器”工具栏的 【添加表】按钮,或者执行【数据库】|【添加表(A)】菜单命令,显示 “打开”对话框,选择被添加的数据表,然后单击【确定】按钮,将该 表添加到数据库内。用户也可以使用命令方式向当前数据库添加数据表。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学科实验报告
班级2010级金融姓名陈光伟学科管理系统中计算机应用实验名称数据库的创建与表间关系的各种操作
实验工具Visual foxpro 6.0
实验目的1、掌握数据库结构的创建方式
2、表间的关联关系
实验步骤一、建立数据库。
1、在项目管理器中建立数据库。
首先选择数据库,然后单击“新建”建立数据库,出现的界面提示用户输入数据库的名称,按要求输入后单击“保存”则完成数据库的建立,并打开i“数据库设计器”。
2、从“新建”对话框建立数据库。
单击工具栏上的“新建”按钮或者选择菜单“文件——新建”打开“新建”对话框,首先在“文件类型”组框中选择“数据库”,然后单击“新建文件”建立数据库,后面的操作和步骤与1相同。
3、用命令交互建立数据库。
命令是create database【databasename ▏?】
二、表间关系的各种操作。
1、创建索引文件。
可以再创建数据表时建立其结构复合索引文件,但是也可以先建立好数据表,以后再创建或修改索引文件。
2、索引的操作。
A、打开与关闭。
要使用索引,必须先要打开索引。
一旦数据表文件关闭所有相应的索引文件也就自动关闭了。
B、确定主控索引。
可以使用命令确定当前主控索引。
命令格式1:set order to 【tag】<索引标识>【ascending| desceding】命令格式2:use<表文件名>order【tag】<索引标识>【ascending | esceding】C、删除索引标识。
要删除结构复合索引文件中的索引标识,应当打开数据表文件,并打开其表设计器对话框。
在“索引”页面中选定要删除的索引标识后,单击“删除”按钮删除。
3、创建关联。
在创建数据表之间的关联时,把当前数据表叫做父表,而把要关联的表叫做子表。
必须保证两个要建立关系的数据表中存在能够建立联系的同类字段;同时要求每个数据表事先分别以该字段建立了索引。
A、建立表间的一对一的关系。
在“数据库设计器”窗口中选择M表中的字段,并按住左键拖到关联表H中对应字段上,放开鼠标左键。
这是可以看到在两个表之间的相关字段上产生了一条连线,表明两个表之间已经建立了“一对一”关系。
B、建立表间一对多的关系。
将M表的名称字段MC设定为主索引,或者候选索引;H表中的JG字段已经设置成普通索引。
在“数据库设计器”窗口中将MC字段拖到关联表中对应字段JG上,放开鼠标左键。
这时可以看到在两个表之间的相关字段上产生了一条显然与“一对一”关联不同形式的连线,表明两个表之间已经建立了“一对多”关系。
4、调整或删除关联。
A、删除关联。
在数据库设计器对话框窗口中,首先必须用鼠标左键单击关联线,该连线变粗了说明它已被选中。
如果要删除可敲【del】。
也可以单击鼠标右键在弹出对话框窗口中单击“删除关联”选项。
B、编辑关联。
在数据库设计器对话框窗口中,首先必须用鼠标左键单击关联线,该连线变粗了说明已被选中。
在主菜单“数据库”选项的下拉菜单中的“编辑关系”选项,也可以单击鼠标右键在弹出对话框窗口中单击“编辑关系”选项。
5、设置数据表之间的参照完整性。
在对数据库表建立关联关系后,就可以设置两个相关数据表之间操作的有效性原则。
这些规则可以控制相关表中的记录的插入、删除或修改。
注意事项1、建立表间关联的关系主要依赖父表和子表中的关联字段,及它们所建立的索引。
2、建立数据表的参照完整性,实际上是利用数据表之间的制约关系建立一种表级别上的验证。
3、在“参照完整性生成器”窗口中,有3个选项卡供用户选择。
可以分别设置“更新规则”、“删除规则”和“插入规则”。