MicrosoftSQLServer中定义约束及删除约束计算机存储_计算机-计算机原理.pdf
Microsoft SQL Server2005中定义约束及删除约束 为了保证输入数据的正确性,必须要在创建表的时候设置约束,在这里首先简单的介绍一下如何设置约束:(需要注意的是,在用 Management Studio 创建约束的时候,在修改完后,都需要保存表以保存修改。)1.Microsoft SQL Server 2005 中有五种约束,分别是 CHECK 约束,DEFAULE 约束,PRIMARY KEY 约束,FROEIGN KE约束,UNIQUE 约束.(1)CHECK 约束:用来限制输入一列或者多列的值的范围,通过逻辑表达式来判断数据的有效性,也就是 一个列的输入内容必须满足 CHECK 约束条件,否则,数据无法正常输入,从而强制数据的域的完整性.(2)DEFAULT 约束 若在表中定义了 DEFAULT 约束,用户在插入新的数据时,如果该列没有指定数据,那么系统将默认值赋给该列,默认值也可以为空.(3)PRIMARY KEY 约束 在表中经常有一列或多列的组合,其值能在唯一标识表中每一行.这样的一列或多列成为表的主健(Primary Key),通过它可以强制表的实体完整性。一个表只能有一个主键,而且主键不能为空值。(4)FOREIGN KEY约束 外键(foreign key)是用于建立和加强两个表(主表与从表)的列或多列数据之间的连接的,当添加,修改或者删除数据时,通过参照完整性来保证它们之间的数据的一致性。先定义主键,再对从表定义外键约束。(5)UNIQUE 约束 UNIQUE 约束用于确保表中的两个数据行在非主键中没有相同的列值,与 PRIMARYKEY 约束类似,UNIQUE 约束也强制唯一性,为表中的一列或多列提供实体完整性.但 UNIQUE 用于 非主键的一列或多列组合,且一个表可以定义多个 UNIQUE 约束.2.约束的创建,查看,删除 (即可以通过 SQL SERVER Management Studio 的“对象资源管理器”面板进行,也可通过 T-SQL 进行.)(1)CHECK 约束:通过 Management Studio 设置,设置性别只能输入男,或者女 首先打开表的列,右键点击性别,选择 CHECK 约束如下图 在表达式里输入:性别=男 or 性别=女,点关闭即可。点击关闭后,表达式会被自动修改成:(性别=男 OR 性别=女)如下图:何设置约束需要注意的是在用创建约束的时候在修改完后都需要保存表以保存修改约束约束约束约束中有五种约束分别是约束约束用来限制输入一列或者多列的值的范围通过逻辑表达式来判断数据的有效性也就是一个列的输入内容据时如果该列没有指定数据那么系统将默认值赋给该列默认值也可以为空约束在表中经常有一列或多列的组合其值能在一标识表中每一行这样的一列或多列成为表的主健通过它可以强制表的实体完整性一个表只能有一个主键而且主据时通过参照完整性来保证它们之间的数据的一致性先定义主键再对从表定义外键约束约束约束用于确保表中的两个数据行在非主键中没有相同的列值约束类似约束也强制一性为表中的一列或多列提供实体完整性非主键的一列或多 经过这个约束后,在表格中填入非男、非女的性别都是报错的。如果要删除约束,直接点击 删除按扭即可。通过 T-SQL 实现约束.CONSTRAINT CHECK constraint_name CHECK(logical_expression)如添加 性别 的约束:USE ZIYUAN-数据库名 ALTER TABLE ZIYUAN ADD CONSTRAINT CK_Tableziyuan CHECK 性(别=男 or 性别=女)删除约束:DROP CONSTRAINT constraint_name ALTER TABLE ZIYUAN DROP constraint CK_Tableziyuan (2)DEFAULT 约束:通过 SQL SERVER Management Studio来设置。如下图:何设置约束需要注意的是在用创建约束的时候在修改完后都需要保存表以保存修改约束约束约束约束中有五种约束分别是约束约束用来限制输入一列或者多列的值的范围通过逻辑表达式来判断数据的有效性也就是一个列的输入内容据时如果该列没有指定数据那么系统将默认值赋给该列默认值也可以为空约束在表中经常有一列或多列的组合其值能在一标识表中每一行这样的一列或多列成为表的主健通过它可以强制表的实体完整性一个表只能有一个主键而且主据时通过参照完整性来保证它们之间的数据的一致性先定义主键再对从表定义外键约束约束约束用于确保表中的两个数据行在非主键中没有相同的列值约束类似约束也强制一性为表中的一列或多列提供实体完整性非主键的一列或多 通过 T-SQL 实现 创建 DEFAULT 约束 CONSTRAINT DEFAULT Constraint_name DEFAULT Constraint_expression 删除 DEFAULT 约束 DROP CONSTRAINT DEFAULT Constraint_name 例:何设置约束需要注意的是在用创建约束的时候在修改完后都需要保存表以保存修改约束约束约束约束中有五种约束分别是约束约束用来限制输入一列或者多列的值的范围通过逻辑表达式来判断数据的有效性也就是一个列的输入内容据时如果该列没有指定数据那么系统将默认值赋给该列默认值也可以为空约束在表中经常有一列或多列的组合其值能在一标识表中每一行这样的一列或多列成为表的主健通过它可以强制表的实体完整性一个表只能有一个主键而且主据时通过参照完整性来保证它们之间的数据的一致性先定义主键再对从表定义外键约束约束约束用于确保表中的两个数据行在非主键中没有相同的列值约束类似约束也强制一性为表中的一列或多列提供实体完整性非主键的一列或多 增加 DEFAULT 约束:ALTER TABLE ziyuan ADD CONSTRAINT DE_Zziyuan DEFAULT男 FOR Zziyuan 删除 ALTER TABLE ziyuan DROP CONSTRAINT DE_Zziyuan 3.PRIMARY KEY 约束 通过 ManageMentStudio 设置主健非常简单,右键点击对应的列,点击调协主键即可,最后点保存。如需要多列作为主健,则需要按 ctrl 健,选择多列,然后右键选择设置主健即可,最后点保存。通过 T-SQL 添加 USE ZIYUAN GO ALTER TABLE ziyuan ADD CONSTRAINT PK_ziyuan PRIMARY KEY CLUSTERED(ziyuan,ISBN)删除主键:USE wfwang GO ALTER TABLE ziyuan DROP CONSTRAINT PK_ziyuan 何设置约束需要注意的是在用创建约束的时候在修改完后都需要保存表以保存修改约束约束约束约束中有五种约束分别是约束约束用来限制输入一列或者多列的值的范围通过逻辑表达式来判断数据的有效性也就是一个列的输入内容据时如果该列没有指定数据那么系统将默认值赋给该列默认值也可以为空约束在表中经常有一列或多列的组合其值能在一标识表中每一行这样的一列或多列成为表的主健通过它可以强制表的实体完整性一个表只能有一个主键而且主据时通过参照完整性来保证它们之间的数据的一致性先定义主键再对从表定义外键约束约束约束用于确保表中的两个数据行在非主键中没有相同的列值约束类似约束也强制一性为表中的一列或多列提供实体完整性非主键的一列或多 4.FOREIGN KEY约束:FOREIGN KEY 是用于建立和加强两个表(主从表)数据之间的连接的一列或多列.注意:建立外键的关键是某列必须是两张表中的同名,同数据类型列,且该列为一张表的主键,为另一张表的外键.(1)通过 SQL SERVER Management Studio创建两张表的之间的外键约束关系。再分别选择主键和外键 何设置约束需要注意的是在用创建约束的时候在修改完后都需要保存表以保存修改约束约束约束约束中有五种约束分别是约束约束用来限制输入一列或者多列的值的范围通过逻辑表达式来判断数据的有效性也就是一个列的输入内容据时如果该列没有指定数据那么系统将默认值赋给该列默认值也可以为空约束在表中经常有一列或多列的组合其值能在一标识表中每一行这样的一列或多列成为表的主健通过它可以强制表的实体完整性一个表只能有一个主键而且主据时通过参照完整性来保证它们之间的数据的一致性先定义主键再对从表定义外键约束约束约束用于确保表中的两个数据行在非主键中没有相同的列值约束类似约束也强制一性为表中的一列或多列提供实体完整性非主键的一列或多 2)通过 T-SQL 实现首先主键:USE ZIYUAN GO ALTERTABLETable_ziyuan ADD CONSTRAINTPK_ziyuan PRIMARYKEYCLUSTERED(ziyuan)再设置外键约束:USE ZIYUAN GO ALTER TABLE ziyuan ADD CONSTRAINT FK_ziyuan FOREIGN KEY(ziyuan)REFERENCES Table_ziyuan(ziyuan)删除外键约束:USE ZIYUAN GO ALTER TABLE ziyuanTable DROP CONSTRAINT FK_ziyuanTable_Table_ziyuan 5.UNIQUE 约束:使用 SQL SERVER Management Studio的“对象资源管理器”创建表后,右键相应的表,选择 修改,打开表的各列。然后再单击“管理表素引和键”,打开“索 引/键”窗口,单击添加按钮,就可以为所需要的键创建 UNIQUE 约束名称了。如下图:打开索引键窗口:点击添加 何设置约束需要注意的是在用创建约束的时候在修改完后都需要保存表以保存修改约束约束约束约束中有五种约束分别是约束约束用来限制输入一列或者多列的值的范围通过逻辑表达式来判断数据的有效性也就是一个列的输入内容据时如果该列没有指定数据那么系统将默认值赋给该列默认值也可以为空约束在表中经常有一列或多列的组合其值能在一标识表中每一行这样的一列或多列成为表的主健通过它可以强制表的实体完整性一个表只能有一个主键而且主据时通过参照完整性来保证它们之间的数据的一致性先定义主键再对从表定义外键约束约束约束用于确保表中的两个数据行在非主键中没有相同的列值约束类似约束也强制一性为表中的一列或多列提供实体完整性非主键的一列或多 何设置约束需要注意的是在用创建约束的时候在修改完后都需要保存表以保存修改约束约束约束约束中有五种约束分别是约束约束用来限制输入一列或者多列的值的范围通过逻辑表达式来判断数据的有效性也就是一个列的输入内容据时如果该列没有指定数据那么系统将默认值赋给该列默认值也可以为空约束在表中经常有一列或多列的组合其值能在一标识表中每一行这样的一列或多列成为表的主健通过它可以强制表的实体完整性一个表只能有一个主键而且主据时通过参照完整性来保证它们之间的数据的一致性先定义主键再对从表定义外键约束约束约束用于确保表中的两个数据行在非主键中没有相同的列值约束类似约束也强制一性为表中的一列或多列提供实体完整性非主键的一列或多