SqlServer2008实例24键之创建有主键的表

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

                                    表约束、主键参数

参  数

描  述

Constraint_name

指定了要添加的约束的唯一名

Column[ASC | DESC][,n]

组成主键的一列或者多列必须能唯一标识衷中的一行(对所有指定的列,任何两行能没有相同的值)。ASC(升序)和DESC(降序)选项定义了列在聚集或非聚集索引中的排列次序

      外键约束(foreign key constraint)在表之间发起和强制一些关系来帮助保持参照完整性,这意味着每一个外键列中的值也必须在被参照表对应的列中存在。外键约束也有助于定义域的完整性,它们定义了某一个列或者多个列可能的或者允许的值域。域的完整性定义了列中值的有效性。

    外键约束的基本语法如下:

CONSTRAINT constraint_name
FOREIGN KEY (column_name)
REFERENCES [schem_name.] referenced_table_name[(ref_column)]

      外键约束参数

参  数 

描  述

Constraint_name

外键约束名

column_name

当前表中引用主键表的主键列的列

[schema_name.] referenced_table_name

包含要被当前表引用的主键的表名

Ref_column

要引用的主键列

1.创建一个有单列上键的表:

USE AdventureWorks
GO

CREATE TABLE Person_CreditRating
(
	CreditRatingID int NOT NULL PRIMARY KEY,
	CreditRatingNM varchar(40) NOT NULL
)

2.创建一个两列构成的PRIMARY KEY表约束

USE AdventureWorks
GO

CREATE TABLE Person.EmployEducationType
(
	EmployeeID int NOT NULL,
	EducationTypeID int NOT NULL,
	CONSTRAINT PK_EmployeeEducationType
	PRIMARY KEY (EmployeeID,EducationTypeID)
)

    约束的定义在列定义之后。在约束的名字之后跟随约束的类型(PRIMARY KEY).然后圆括号中是构成主键的列。
 

你可能感兴趣的:(#,SqlServer2008实例)