数据库为什么要设置主键和外键 数据库表中的主键有什么作用?
数据库表中的主键有什么作用?
数据库主键
主键:表中你经常有一个列或多列的组合,其值能真正地标有表中的每一行。这样的一列或多列一般称表的主键,通过它可强制表的实体完整性。当创建战队或更改后表时可通过定义PRIMARYKEY加以约束来创建主键。一个表没有办法有一个PRIMARYKEY约束,不过PRIMARYKEY约束中的列又不能接受空值。而PRIMARY KEY加以约束必须保证真正数据,所以每天都为了符号表示标识列。
作用:
1)可以保证实体的完整性
2)减缓数据库的操作速度
3)在表中去添加新记录时,ACCESS会自动检查一下新记录的主键值,不愿意该值与其他记录的主键值乱词。
4)ACCESS不自动按主键值的顺序不显示表中的记录。要是没有定义主键,则按然后输入记录的顺序显示表中的记录。
在有些数据库中,虽然主键又不是必须的,但建议为每个表都设置里一个主键,无论是单主键肯定纯主键。它存在代表着表结构的完整性,表的记录需要得有真正判别的字段,主键要注意是用于其他表的外键关联,以及本记录的修改与删除。
主键的没意义的事性
在开发过程中,读者很可能会看见了将一些表不使用有心字段可以表示主键,.例如“用户登录信息表”将“直接登录名”(英文名)作为主键,“订单表”中将“订单编号”作为主键,会如此怎么设计主键就像是都没什么问题,因为将这些主键基本上不具高“意义改”的可能性。不过,也有一些例外的情况,的或“订单表”需要接受需求“订单可以做废,并重新生成订单,而且订单号要保持原订单号同一”,那将“订单编号”才是主键就柯西-黎曼方程不了要求了。但读者在可以使用具有换算意义的字段另外主键时,必须考虑如何确定必然这种可能性。
数据库表中什么是外健,外键的作用?
举个例子:
student表是学生表里面有字段:学号和姓名学号是主键
sc表是成绩表里面有字段:学号和学科号还有成绩这里面的学号就是外键,关联着student表的主键学号
简单的说:一个表的外键关联着另外一个表的主键
外键的作用一直保持数据完整性.......
拿上面的例子说:如果不是学生表学号为1的记录彻底删除了,那成绩表sc里面按有学号为1的记录你是不是应该是也彻底删除呢?所以才好象设置拓扑结构删掉这样的彻底删除了主键外键的值跟了删除。。。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。