数据库表中的主键和外键

如题所述

主外键的存在是依托两个实体之间的关系而存在的;
比如班级与学生的关系:
一个班级可以有多个学生,并且一个学生只能属于一个班级,这就是一对多的关系;
那么设计数据库的时候就应该在学生表内存放班级的ID作为外键,为什么不在班级表内放学生呢?
因为,你想一想班级表内如果放学生那么记录可能就是这样:
1班ID
1班
xx同学id
1班ID
1班
xx同学id
..
这是不允许的,班级表内班级为主键,是唯一的不允许相同记录的;
下面简单给你讲下大概建成的表结构
--建班级表
create
table
class(
classid
int
primary
key,--定义班级ID为主键
classname
varchar(15)
)
--建学生表
create
table
students(
studentid
int
primary
key,--定义学生ID为主键
classid
int
,--外键值,跟班级表classid
属性类型相同
stuname
varchar(20),--学生姓名
---定义外键
foreign
key(classid)
references
class(classid)
--本表classid是基于class表classid的外键
)
---------
如上定义了主外键后,两个表间的关系就是一对多的关系了,并且学生表内的classid必须依托班级表的classid存在,也就是说外键必须要主键存在的时候才能创建,例如:
--在班级表为空的情况往学生表插入一条记录是不允许的:
insert
into
students(studentid,classid,stuname)values(1,1,'小明')
系统会抛出异常提示主键表班级表内班级ID不存在这样是不允许插入的;
必须要先往班级表内插入一条记录:
insert
into
class(classid,classname)values(1,'一班')
后才能执行插入前面一条往学生表插入信息的语句..
--------------可了解一些了?真累啊.
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-05-22
一般每个表建议都有主键,比如表A和表B,
A的列式(aid,aa,bb,cc),其中aid就是主键,然后B是(bid,xx,yy,ab)bid为主键,ab是外键对应A表的aid
然后你要是,然后你要查询A表中的,aa,bb及B表中的XX,YY,且要是的B中XX,YY所在列的AB要等于A表中的aid,
然后即可以这样写select
.....
from
A
a,B
b
where
b.ab=a.aid
外键差不多就是这样的,设置好B中的外键后,此ab的值只能是A中aid范围内的值,不能搞一个aid中都没有的值
第2个回答  2020-02-10
它们都是关系数据库表设计的约束方式而已,为了保证数据库中不会出现脏数据的限制方法。
主键是数据库表的唯一索引序列,可以由多个字段组成,但每条数据的这几个字段的组合必须唯一;主键约束仅涉及本表数据;
外键是本表中该外键字段的取值要求是已经在目标表中存在的数据;假如说,表B有字段b_1是表A中字段a_1的外键,那么插入表B数据的时候,字段b_1的取值要求在表A的字段a_1的当前所有数据的值的范围内。外键是以外表数据约束本表数据的约束条件。
此外,外键还有个要求,就是a_1必须是表A的主键。并且必须说得是,外键是一个很烦人的数据库约束。

什么是主键,什么是外键
主键是数据库表中用于唯一标识每条记录的字段,而外键是一个表中的字段,其值引用了另一个表的主键值,用于建立两个表之间的关联关系。主键详解:主键在数据库设计中占据核心地位,它确保了表中数据的唯一性。一个表只能有一个主键,这个主键可以由单个字段组成,也可以是多个字段的组合,后者通常被称为...

数据库的主键和外键
数据库主键,指的是一个列或多列的组合,其值能唯一地标识表中的每一行,通过它可强制表的实体完整性。主键主要是用于其他表的外键关联,以及本记录的修改与删除。外键,又称作外关键字。外键表示了两个关系之间的联系。外键主要是用于控制存储在外键表中的数据或使两张表形成关联。外键只能引用外表中...

MySQL中主外键的区别及作用详解mysql中主外键区别
外键(foreign key)是一种连接数据库表格的方法,它能够连接两个或多个数据库表格中的数据。外键是指在一个表格中的一个或多个字段,其内容必须与另一个表格中的某个字段完全一致或者为NULL。2.2 区别 外键的作用是为了建立不同表之间的联系。在一个表中,可以定义多个外键,但外键所关联的表必须...

主键和外键说法正确的是
主键(Primary Key)和外键(Foreign Key)都是数据库管理中的重要概念,它们分别用于确定记录的唯一性和表示数据间的关系。主键是一个数据库表中用于唯一标识记录的字段或一组字段。它确保了表中的每条记录都有一个全局的、唯一的标识符,即主键值。主键的主要作用是确保表中的记录具有绝对的唯一性,避...

MySQL数据库中的主键与外键了解其作用和区别mysql中主键与外键
id INT PRIMARY KEY,name VARCHAR(20),age INT );在上述代码中,我们通过指定 id 列为主键,实现了对该列的数据约束。主键是为了保证关系型数据库表中的每条数据都有唯一身份,并且可以进行一些高效的数据操作,如查找、增加、修改和删除等操作。外键 外键是一种数据约束,通过它可以约束不同表中的...

什么是主键与外键
主键,是数据库中至关重要的概念,它为表中的每一行数据提供了独一无二的标识。一个表只能拥有一个主键,它可以由单个字段构成,称为单字段主键,或者由多个字段联合构成,被称为多字段主键,确保数据的唯一性。另一方面,外键则扮演了连接两个表的桥梁角色。当一个关系中的字段与另一个关系的主键相...

什么是关系型数据库,主键,外键,索引分别是什么?
1、关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。2、主关键字(primary key)是表中的一个或多个字段,它的值用于唯一的标识表中的某一条记录 3、外键表示了两个关系之间的相关联系。以另一个关系...

主键和外键有什么不同?
1、主关键字(主键,primary key)是被挑选出来,作表的行的惟一标识的候选关键字。一个表只有一个主关键字。主关键字又可以称为主键。 主键可以由一个字段,也可以由多个字段组成,分别成为单字段主键或多字段主键。2、外键:如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个...

主键和外键
答案:主键是数据库表中用于唯一标识记录的字段或字段组合;外键是用于在一个表内建立与其他表的关联的字段。解释:1. 主键定义:主键是数据库表中用于唯一标识每一条记录的字段或字段组合。每个表只能有一个主键,且主键列中的值必须唯一。它确保了表中数据的完整性和准确性,帮助数据库系统高效地定位...

数据库中什么是主键,什么是外键
主键(Primary key): 也称为主码或主关键字,用于惟一地确定一个元组的属性或属性组(复合主码)。每个关系都有一个并且只有一个主码。外键(Foreign Key):也称为外码或外部关键字。如果一个属性集不是所在关系的关键字,但是是其他关系的关键字,则该属性集称为外部关键字。在关系数据库中可以...

相似回答