欢迎来到天天文库
浏览记录
ID:36886242
大小:629.50 KB
页数:41页
时间:2019-05-10
《sql数据库完整性约束》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章数据完整性5.1数据完整性的基本概念数据完整性包括实体完整性、域完整性、参照完整性和用户定义的完整性。1.实体完整性(EntityIntegrity)实体完整性用于保证数据库中数据表的每一个特定实体都是唯一的。它可以通过主键约束(PRIMARYKEY)、唯一键约束(UNIQUE)、索引或标识属性(IDENTITY)来实现。2.域完整性(DomainIntegrity)域完整性就是保证数据库中的数据取值的合理性,即保证指定列的数据具有正确的数据类型、格式和有效的数据范围。通过为表的列定义数据类型以及检查
2、约束(CHECK)、默认定义(DEFAULT)、非空(NOTNULL)和规则实现限制数据范围,保证只有在有效范围内的值才能存储到列中。3.参照完整性(ReferentialIntegrity)参照完整性定义了一个关系数据库中,不同的表中列之间的关系(父键与外键)。要求一个表中(参照表)的一列或列组合的值必须与另一个表(被参照表)中的相关一列或列组合的值相匹配。被引用的列或列组合称为父键,父键必须是主键或唯一键,通常父键为主键,主键表(被参照表)是主表。引用父键的一列或列组合称为外键,外键表(参照表)是子表。
3、子表的外键必须与主表的主键相匹配,只要依赖某一主键的外键存在,主表中包含该主键的行就不能被删除。4.用户定义的完整性(User-definedIntegrity)这是由用户定义的完整性。用户可以根据自己的业务规则定义不属于任何完整性分类的完整性。5.2约束约束是通过限制列中数据、行中数据以及表之间数据取值从而保证数据完整性的非常有效和简便的方法。5.2.1主键(PRIMARYKEY)约束PRIMARYKEY约束在表中定义一个主键,唯一的标识表中的行。一个表只能有一个PRIMARYKEY约束。当向表中的现有列
4、添加PRIMARYKEY约束时,SQLServer将检查列中现有的数据以确保现有数据遵从主键的规则,即无空值、无重复值。每个表都应有一个主键。主键可以是一列或列组合。1.利用ManagementStudio定义(删除)主键2.利用T-SQL语句定义(删除)主键(1)在创建表时创建主键约束其语法格式如下CREATETABLE数据表名(列名数据类型[CONSTRAINT约束名]PRIMARYKEY)例:用命令方式新建如下所示的bm表,设置主键名为pk_bh。字段名数据类型允许空部门编号char(5)否,主键部门
5、名称varchar(10)否电话号码char(13)是CREATETABLEbm(5-1)(部门编号CHAR(5)NOTNULLCONSTRAINTpk_bhPRIMARYKEY,部门名称VARCHAR(10)NOTNULL,电话号码CHAR(13))(2)向已有表中添加主键约束其语法格式如下。ALTERTABLE表名ADD[CONSTRAINT约束名]PRIMARYKEY(列名1[,…n]))ALTERTABLEcj(5-2)ADDCONSTRAINTpk_xhkchPRIMARYKEY(学号,课程号)例
6、:先用图形方式删除cj表中的主键,然后用命令方式添加主键为学号和课程号,主键名为pk_xhkch。(3)删除主键约束其语法格式如下:ALTERTABLE表名DROPCONSTRAINT约束名例:要删除cj表中的主键约束pk_xhkch:ALTERTABLEcj(5-3)DROPCONSTRAINTpk_xhkch5.2.2唯一键(UNIQUE)约束可使用UNIQUE约束确保在非主键列中不输入重复值。在允许空值的列上保证唯一性时,应使用UNIQUE约束而不是PRIMARYKEY约束,不过在该列中只允许有一个N
7、ULL值。一个表可以定义多个UNIQUE约束,但只能定义一个PRIMARYKEY约束。1.利用ManagementStudio定义(删除)唯一性约束步骤1:右键要建立唯一约束的表选择“修改”。步骤2:右击要设置唯一约束的字段(列)选择“索引/键”。步骤3:在弹出的窗口中点击“添加”,在右边窗口的“名称”处输入约束名,在类型中选择“唯一键”,点击“列”的浏览按钮选中要设置为唯一约束的字段(如出生日期)。步骤4:点击“关闭”按钮,保存即可。删除方法与建立的步骤类似。2.利用T-SQL语句定义(删除)唯一性约束(
8、1)在创建表时创建唯一性约束其语法格式如下。语法格式1:(只有一个字段作为唯一约束)CREATETABLE数据表名(列名数据类型CONSTRAINT约束名UNIQUE)【例5.3】创建和kc表结构相同的kc_new表,设置课程名为唯一约束,约束名为ix_kcm1。CREATETABLEkc_new(5-4)(课程号CHAR(4)NOTNULLCONSTRAINTpk_kch1PRIMARYKEY,课程名CHAR(
此文档下载收益归作者所有