l、主键和唯一值约束 实体完整性检查 插入或对主码列进行更新操作时, RDBMS(关系数据库管理系统) 按照实体完整性规则自动进行检查。 检查主码值是否唯一,如果不唯一则拒绝插入或修改; 检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改; 检查方法:全表扫描、索引
1 实体完整性检查: • 插入或对主码列进行更新操作时,RDBMS(关系数据库管理系统) 按照实体完整性规则自动进行检查。 • 检查主码值是否唯一,如果不唯一则拒绝插入或修改; • 检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改; • 检查方法:全表扫描、索引。 1、主键和唯一值约束
l、主键和唯一值约束 (2)通过修改表时同时创建 primary key约束或 unique约束 ALTER TABLE table name ADD[ CONSTRAⅠ NTconstraint name]/*为约束命名* primary key unique CLUSTERED NONCLUSTERED定义约束的索引类型* ( column[…n])
1 (2)通过修改表时同时创建primary key约束或unique约束 ALTER TABLE table_name ADD [CONSTRAINT constraint_name] /*为约束命名*/ primary key | unique CLUSTERED | NONCLUSTERED /*定义约束的索引类型*/ (column [,...n]) 1、主键和唯一值约束
l、主键和唯一值约束 EG1:向XSB中添加一个“身份证号码”字段,对该字段定义 UNIQUE 约束,对出生时间字段定义 UNIQUE约束 ALTER TABLE XSBI ADD身份证号码char(20 CONSTRAINT SFZ UK UNIQUE(身份证号码) ALTER TABLE XSBI ADD CONSTRAINT CSJ UK UNIQUE(Sdate
1 EG1:向XSB1中添加一个“身份证号码”字段,对该字段定义UNIQUE 约束,对出生时间字段定义UNIQUE约束。 ALTER TABLE XSB1 ADD 身份证号码 char(20) CONSTRAINT SFZ_UK UNIQUE (身份证号码); ALTER TABLE XSB1 ADD CONSTRAINT CJSJ_UK UNIQUE (Sdate); 1、主键和唯一值约束
l、主键和唯一值约束 (3)删除PRⅠ MARY KEY约束和 UNIQU约束 使用 ALTER TABLE的DROP子句。 ALTER TABLE table name DROP CONSTRAINT constraint name [...n] EG:删除XSBl中的 SFZ UK CSJ UK约束。 ALTER TABLE XSBI DROP CONSTRAINT SFZ UK, CJSJ UK
1 (3)删除PRIMARY KEY约束和UNIQUE约束 使用ALTER TABLE的DROP子句。 ALTER TABLE table_name DROP CONSTRAINT constraint_name [,…n] EG:删除XSB1中的SFZ_UK,CJSJ_UK约束。 ALTER TABLE XSB1 DROP CONSTRAINT SFZ_UK,CJSJ_UK 1、主键和唯一值约束
l、主键和唯一值约束 小结 一个表只能有一个 PRIMARY KEY约束,并且 PRIMARY KEY约束中的 列不能接受空值; 如果对多列定义了 PRIMARY KEY约束,则一列中的值可能会重复,但 来自 PRIMARY KEY约束定义中所有列的任何值组合必须唯一; 可以对一个表定义多个 UNIQUE约束,但只能定义一个 PRIMARY KEY 约束; 若要修改 PRIMARY KEY、 UNIQUE约束,必须首先删除现有的 UNIQUE约束,然后用新定义重新创建
1 小结: • 一个表只能有一个 PRIMARY KEY 约束,并且 PRIMARY KEY 约束中的 列不能接受空值; • 如果对多列定义了 PRIMARY KEY 约束,则一列中的值可能会重复,但 来自 PRIMARY KEY 约束定义中所有列的任何值组合必须唯一; • 可以对一个表定义多个 UNIQUE 约束,但只能定义一个 PRIMARY KEY 约束; • 若要修改 PRIMARY KEY 、UNIQUE 约束,必须首先删除现有的 UNIQUE 约束,然后用新定义重新创建。 1、主键和唯一值约束