主键(primary key)是一种特殊的约束,它标识一个或者一组列,它们依次唯一标识表中的所有行。
约束(constraint)是对要进入列中的数据进行限制。主键强制实体完整性(cntity integrity),也就是说行必须是明确的和唯一的。数据库规范化的最佳实践是为每一个表创建主键。主键提供了访问记录的方式,并且确保键是唯一的。主键列不能包含NULL值。
一个表只能有一个主键,当指定主键后,表索引(index)会自动创建,默认为聚集索引。如果你对一个表只允许有一个聚集索引有更好的用处,你也可以在主键创建的时候显式指定创建一个非聚集索引。在主键上创建的索引也记入表允许的索引总数。
要为一个列指定主键,在列定义中使用下面的语法:
(column_name <data_type> [NULL | NOT NULL] PRIMARY KEY)
PRIMARY KEY关键字包含在列定义的最后。
组合主犍( compositive primary key)是表中唯一超过一列的组合。要定义组合主键,必须使用表约束(table constraint)而不是列约束(column constraint)。在列定义中把一个列设置为主键称作列约束。在列定义之外定义主键(单一或组合)称为表约束。
用于定义主键的表约束语法如下:
CONuSTRAINT constraint_name PRIMARY KEY
(column [ASC I DESC] [,...n])
表约束、主键参数