My SQL
主关键字(primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录。
在两个表的关系中,主关键字用来在一个表中引用来自于另一个表中的特定记录。
主关键字是一种唯一关键字,表定义的一部分。
一个表的主键可以由多个关键字共同组成,并且主关键字的列不能包含空值。
主关键字是被挑选出来,主关键字作表的行的唯一标识的候选关键字。
一个表只有一个主关键字,可以由一个字段,也可以由多个字段组成,分别称为单字段主键或多字段主键。
并且它可以唯一确定表中的一行数据,或者可以唯一确定一个实体。
建立主键应该遵循的原则:
1. 主键应当是对用户没有意义的。如果用户看到了一个表示多对多关系的连接表中的数据,
并抱怨它没有什么用处,那就证明它的主键设计地很好。
2. 永远也不要更新主键。实际上,因为主键除了唯一地标识一行之外,再没有其他的用途了,
所以也就没有理由去对它更新。如果主键需要更新,则说明主键应对用户无意义的原则被违反了。
注:这项原则对于那些经常需要在数据转换或多数据库合并时进行数据整理的数据并不适用。
3. 主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。
4. 主键应当由计算机自动生成。如果由人来对主键的创建进行干预,就会使它带有除了唯一标识一行以外的意义。
一旦越过这个界限,就可能产生认为修改主键的动机,这样,这种系统用来链接记录行、管理记录行的关键手段就
会落入不了解数据库设计的人的手中。
一、实体完整性:
主键:唯一,必填;排序;每个表只能有一个主键。单列,组合列。
自增长:必须是数字,系统自动增加的。
默认值:如果不填就用默认值填充,如果填了就用填 写的值保存。
非空约束:
二、引用完整
外键:两个表(主表,从表),建在从表上。
主表:用来约束别人的表
从表:受约束的表。
主从表只对指定的两个表有意义
没有什么问题是一个FOR循环解决不了的,如果有那就是两个!