如下通过clustered创建了聚集索引是什么意思?有何用处?

以下语句不懂:
CREATE TABLE publishers
( pub_id char(4) NOT NULL CONSTRAINT UPKCL_pubind
PRIMARY KEY CLUSTERED
CHECK (pub_id IN ( '1389', '0736', '0877', '1622', '1756')
OR
pub_id LIKE '99[0-9][0-9]‘ ),
我刚学,请详细解释,谢谢!
这几个参数:CONSTRAINT UPKCL_pubind
PRIMARY KEY CLUSTERED
CHECK
分别代表什么?
通过clustered创建了聚集索引是什么意思?
有什么用?

qq_花开花谢_0
浏览 300回答 2
2回答

阿晨1998

定义表约束。CONSTRAINT 约束定义的开始UPKCL_pubind 约束名PRIMARY KEY是通过唯一索引对给定的一列或多列强制实体完整性的约束。对于每个表只能创建一个 PRIMARY KEY 约束。CLUSTERED | NONCLUSTERED是表示为 PRIMARY KEY 或 UNIQUE 约束创建聚集或非聚集索引的关键字。PRIMARY KEY 约束默认为 CLUSTERED,UNIQUE 约束默认为 NONCLUSTERED。在 CREATE TABLE 语句中只能为一个约束指定 CLUSTERED。如果在为 UNIQUE 约束指定 CLUSTERED 的同时又指定了 PRIMARY KEY 约束,则 PRIMARY KEY 将默认为 NONCLUSTERED。CHECK 约束意思:创建一个名为publishers表字段名为pub_id长度为4的字符型。表的约束名为 UPKCL_pubind的聚集索引的关键字约束。约束内容:pub_id字段值是在('1389', '0736', '0877', '1622', '1756')内或'9900'到‘9999’之间的值。

猛跑小猪

这个语句是在创建的publishers表上同时创建主键和取值约束,并在主键上创建聚集索引。CONSTRAINT UPKCL_pubind 是创建名称为UPKCL_pubind的约束,由于其后边还跟着PRIMARY KEY 说明这个约束是一个主键约束,clustered说明是聚集索引。check后边是对字段pub_id的取值约束,限定所插入的bub_id值必须在给定的值里('1389', '0736', '0877', '1622', '1756')或着取值是以99开头3、4位是数字,如果插入值与上述条件不符,就会无法插入。
打开App,查看更多内容
随时随地看视频慕课网APP