您现在的位置是:首页 >

json和xml的结构化查询语言 约束(结构化查询语言)详细资料大全

火烧 2022-10-19 14:54:57 1030
约束 结构化查询语言 详细资料大全 约束有缠缚,束缚,按照约定(特定)条件限制,管束等意思。约束的作用是添加、删除。基本介绍中文名:约束类型:结构化查询语言作用:添加、删除约束类型:主键约束等 约束类

约束(结构化查询语言)详细资料大全  

json和xml的结构化查询语言 约束(结构化查询语言)详细资料大全

约束有缠缚,束缚,按照约定(特定)条件限制,管束等意思。约束的作用是添加、删除。

基本介绍

中文名:约束类型:结构化查询语言作用:添加、删除约束类型:主键约束等 约束类型,添加,删除,

约束类型

主键约束(Primary Key constraint):要求主键列数据唯一,并且不允许为空。 唯一约束(Unique constraint):要求该列唯一,允许为空,但只能出现一个空值。 检查约束(Check constraint):某列取值范围限制,格式限制等,如有关年龄、信箱(必须有@)的约束。 默认约束(Default constraint):某列的默认值,如在资料库里有一项数据很多重复,可以设为默认值。 外键约束(Foreign Key constraint):用于在两个表之间建立关系,需要指定引用主表的哪一列。

添加

语法: ALTER TABLE 表名 ADD CONSTRAINT 约束名 约束 类型 具体的约束说明 上述语法表示修改某个表,添加某个约束。其中,约束名的命名规则推荐采用“ 约束类型_约束栏位”这样的形式。示例: 添加主键约束(将stuNo设为主键): ALTER TABLE stuInfo ADD CONSTRAINT PK_stuNo PRIMARY KEY (stuNo) 添加唯一约束(身份证号唯一): ALTER TABLE stuInfo ADD CONSTRAINT UQ_stuID UNIQUE (stuID) 添加默认约束(如果地址不填,默认为“地址不详”): ALTER TABLE stuInfo ADD CONSTRAINT DF_stuAddress DEFAULT ('地址不详') FOR stuAddress 添加检查约束(要求年龄只能在 15~40岁之间) ALTER TABLE stuInfo ADD CONSTRAINT CK_stuAge CHECK(stuAge BETWEEN 15 AND 40) 添加外键约束(主表 stuInfo 和从表 stuGrade 建立关系,关联栏位为 stuNo ): ALTER TABLE stuGrade ADD CONSTRAINT FK_stuNo FOREIGN KEY (stuNo) REFERENCES stuInfo(stuNo) GO

删除

语法 ALTER TABLE 表名 DROP CONSTRAINT 约束名 示例: 删除stuInfo表中地址默认约束的语句: ALTER TABLE stuInfo DROP CONSTRAINT DF_stuAddress 删除外键约束注意事项: 对于存在外键约束的表,如果进行删除非空的外键,可能会出现错误。 a. 如果在 FOREIGN KEY 约束的列中输入非 NULL 值,则此值必须在被引用的列中存在,否则将返回违反外键约束的错误信息。 b. FOREIGN KEY 约束套用于前面所讲的列,除非指定了源列。 c. FOREIGN KEY 约束仅能引用位于同一伺服器上的同一资料库中的表。资料库间的引用完整性必须通过触发器实现。有关更多信息,请参见 CREATE TRIGGER。 d. FOREIGN KEY 可以引用同一表中的其它列(自引用)。 e. 列级 FOREIGN KEY 约束的 REFERENCES 子句仅能列出一个引用列,且该列必须与定义约束的列具有相同的数据类型。 f. 表级 FOREIGN KEY 约束的 REFERENCES 子句中引用列的数目必须与约束列列表中的列数相同。每个引用列的数据类型也必须与列表中相应列的数据类型相同。 e. 如果 timestamp 类型的列是外键或被引用键的一部分,则不能指定 CASCADE。 g. 可以在相互间具有引用关系的表上组合使用 CASCADE 和 NO ACTION。如果 SQL Server 遇到 NO ACTION,将终止执行语句并回滚相关的 CASCADE 操作。当 DELETE 语句导致 CASCADE 和 NO ACTION 组合操作时,在 SQL Server 检查 NO ACTION 操作之前将执行所有 CASCADE 操作。 h. 一个表最多可包含 253 个 FOREIGN KEY 约束。 i. 对于临时表不强制 FOREIGN KEY 约束。 j. 每个表在其 FOREIGN KEY 约束中最多可以引用 253 个不同的表。 k. FOREIGN KEY 约束只能引用被引用表的 PRIMARY KEY 或 UNIQUE 约束中的列或被引用表上 UNIQUE INDEX 中的列。 INSERT 和 UPDATE 规范类别展开以显示有关该关系的“删除规则”和“更新规则”的信息。删除规则 指定当资料库的最终用户尝试删除某一行,而该行包含外键关系所涉及的数据时所发生的情况。如果设定为: a. 无操作 显示一条错误信息,告知用户不允许执行该删除操作,DELETE 将被回滚。 b. 级联 删除包含外键关系中所涉及的数据的所有行。 c. 设定空 如果表的所有外键列都可接受空值,则将该值设定为空。仅适用于 SQL Server 2005。 d. 设定默认值 如果表的所有外键列均已定义默认值,则将该值设定为列定义的默认值。仅适用于 SQL Server 2005。 更新规则 指定当资料库的用户尝试更新某一行,而该行包含外键关系所涉及的数据时所发生的情况。如果设定为: a. 无操作 显示一条错误信息,告知用户不允许执行该删除操作,DELETE 将被回滚。 b. 级联 删除包含外键关系中所涉及的数据的所有行。 c. 设定空 如果表的所有外键列都可接受空值,则将该值设定为空。仅适用于 SQL Server 2005。 e. 设定默认值 如果表的所有外键列均已定义默认值,则将该值设定为列定义的默认值。仅适用于 SQL Server 2005。  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码