sql数据库完整性约束.ppt

上传人:za****8 文档编号:12667986 上传时间:2020-05-13 格式:PPT 页数:41 大小:629.51KB
返回 下载 相关 举报
sql数据库完整性约束.ppt_第1页
第1页 / 共41页
sql数据库完整性约束.ppt_第2页
第2页 / 共41页
sql数据库完整性约束.ppt_第3页
第3页 / 共41页
点击查看更多>>
资源描述
第5章数据完整性,51数据完整性的基本概念,数据完整性包括实体完整性、域完整性、参照完整性和用户定义的完整性。1实体完整性(EntityIntegrity)实体完整性用于保证数据库中数据表的每一个特定实体都是唯一的。它可以通过主键约束(PRIMARYKEY)、唯一键约束(UNIQUE)、索引或标识属性(IDENTITY)来实现。2域完整性(DomainIntegrity)域完整性就是保证数据库中的数据取值的合理性,即保证指定列的数据具有正确的数据类型、格式和有效的数据范围。通过为表的列定义数据类型以及检查约束(CHECK)、默认定义(DEFAULT)、非空(NOTNULL)和规则实现限制数据范围,保证只有在有效范围内的值才能存储到列中。,3参照完整性(ReferentialIntegrity)参照完整性定义了一个关系数据库中,不同的表中列之间的关系(父键与外键)。要求一个表中(参照表)的一列或列组合的值必须与另一个表(被参照表)中的相关一列或列组合的值相匹配。被引用的列或列组合称为父键,父键必须是主键或唯一键,通常父键为主键,主键表(被参照表)是主表。引用父键的一列或列组合称为外键,外键表(参照表)是子表。子表的外键必须与主表的主键相匹配,只要依赖某一主键的外键存在,主表中包含该主键的行就不能被删除。,4用户定义的完整性(User-definedIntegrity)这是由用户定义的完整性。用户可以根据自己的业务规则定义不属于任何完整性分类的完整性。,52约束,约束是通过限制列中数据、行中数据以及表之间数据取值从而保证数据完整性的非常有效和简便的方法。,521主键(PRIMARYKEY)约束PRIMARYKEY约束在表中定义一个主键,唯一的标识表中的行。一个表只能有一个PRIMARYKEY约束。当向表中的现有列添加PRIMARYKEY约束时,SQLServer将检查列中现有的数据以确保现有数据遵从主键的规则,即无空值、无重复值。每个表都应有一个主键。主键可以是一列或列组合。,1利用ManagementStudio定义(删除)主键,2利用T-SQL语句定义(删除)主键(1)在创建表时创建主键约束其语法格式如下CREATETABLE数据表名(列名数据类型CONSTRAINT约束名PRIMARYKEY),例:用命令方式新建如下所示的bm表,设置主键名为pk_bh。,CREATETABLEbm(5-1)(部门编号CHAR(5)NOTNULLCONSTRAINTpk_bhPRIMARYKEY,部门名称VARCHAR(10)NOTNULL,电话号码CHAR(13),(2)向已有表中添加主键约束其语法格式如下。ALTERTABLE表名ADDCONSTRAINT约束名PRIMARYKEY(列名1,n),ALTERTABLEcj(5-2)ADDCONSTRAINTpk_xhkchPRIMARYKEY(学号,课程号),例:先用图形方式删除cj表中的主键,然后用命令方式添加主键为学号和课程号,主键名为pk_xhkch。,(3)删除主键约束其语法格式如下:ALTERTABLE表名DROPCONSTRAINT约束名,例:要删除cj表中的主键约束pk_xhkch:,ALTERTABLEcj(5-3)DROPCONSTRAINTpk_xhkch,522唯一键(UNIQUE)约束,可使用UNIQUE约束确保在非主键列中不输入重复值。在允许空值的列上保证唯一性时,应使用UNIQUE约束而不是PRIMARYKEY约束,不过在该列中只允许有一个NULL值。一个表可以定义多个UNIQUE约束,但只能定义一个PRIMARYKEY约束。,1利用ManagementStudio定义(删除)唯一性约束步骤1:右键要建立唯一约束的表选择“修改”。步骤2:右击要设置唯一约束的字段(列)选择“索引/键”。步骤3:在弹出的窗口中点击“添加”,在右边窗口的“名称”处输入约束名,在类型中选择“唯一键”,点击“列”的浏览按钮选中要设置为唯一约束的字段(如出生日期)。步骤4:点击“关闭”按钮,保存即可。,删除方法与建立的步骤类似。,2利用T-SQL语句定义(删除)唯一性约束(1)在创建表时创建唯一性约束其语法格式如下。语法格式1:(只有一个字段作为唯一约束)CREATETABLE数据表名(列名数据类型CONSTRAINT约束名UNIQUE),【例5.3】创建和kc表结构相同的kc_new表,设置课程名为唯一约束,约束名为ix_kcm1。,CREATETABLEkc_new(5-4)(课程号CHAR(4)NOTNULLCONSTRAINTpk_kch1PRIMARYKEY,课程名CHAR(16)NOTNULLCONSTRAINTix_kcm1UNIQUE,学分SMALLINT,学时数SMALLINT),2利用T-SQL语句定义(删除)唯一性约束(1)在创建表时创建唯一性约束其语法格式如下。语法格式1:(只有一个字段作为唯一约束)CREATETABLE数据表名(列名数据类型CONSTRAINT约束名UNIQUE),【例5.3】创建和kc表结构相同的kc_new表,设置课程名为唯一约束,约束名为ix_kcm1。,语法格式2:(有多个字段结合作为唯一约束,主键也类似)CREATETABLE数据表名(CONSTRAINT约束名UNIQUE(列名1,n),例:创建和cj表结构相同的cj_new表,设置学号和课程号为唯一约束,约束名为IX_xhkch。,createtablecj_new(5-5)(学号char(10)notnull,课程号char(4)notnull,成绩numeric(5,2)CONSTRAINTIX_xhkchUNIQUE(学号,课程号),(2)向已有表中添加唯一约束,其语法格式如下。ALTERTABLE表名ADDCONSTRAINT约束名UNIQUE(列名1,n),【例5.4】给kc表中课程名字段添加唯一约束,名称为ix_kcm。,USExsgl(5-6)GOALTERTABLEkcADDCONSTRAINTix_kcmUNIQUE(课程名)GO,(3)删除唯一约束,其语法格式如下。ALTERTABLE表名DROPCONSTRAINT约束名,【例5.5】删除kc_new中的唯一约束ix_kcm1。,USExsgl(5-7)GOALTERTABLEkc_newDROPCONSTRAINTix_kcm1GO,523检查(CHECK)约束,CHECK约束是限制用户输入某一列的数据取值,即该列只能输入一定范围的数据。CHECK约束可以作为表定义的一部分在创建表时创建,也可以添加到现有表中。表和列可以包含多个CHECK约束。允许修改或删除现有的CHECK约束。在现有表中添加CHECK约束时,该约束可以仅作用于新数据,也可以同时作用于已有的数据。默认设置为CHECK约束同时作用于已有数据和新数据。当希望现有数据维持不变,则使用约束仅作用于新数据选项。,1利用ManagementStudio定义(删除)检查约束,步骤1:右键要建立check约束的表选择“修改”。步骤2:在弹出的窗口中继续击右键选择“CHECK约束”步骤3:点击“添加”,在“名称”处设置约束的名称,在“表达式”中输入约束表达式(用字段名和条件运算符书写)。如成绩为0-100分:成绩=0and成绩=0and语文=0and语文=0andscore类型”,右击“用户自定义数据类型”选择“新建用户自定义数据类型”。,6.5自定义数据类型,步骤2:在“名称”中输入用户自定义数据类型的名称,在“数据类型”中选择自定义类型的基础类型,在“精度/长度”中输入对应的精度/长度,在小数位数中输入对应的小数位数,在“默认值”中选择自定义类型的默认值,在“规则”中选择自定义类型要满足的规则。,步骤3:最后点击“确定”即可。,例:新建一个名为“成绩规则”的规则,要求值为0-100分;新建一个名为“成绩默认值”的默认值,默认值为50;新建一个名为“成绩类型”的用户自定义数据类型,基础类型为numeric,精度为5,小数位数为2,满足“成绩规则”和“成绩默认值”。,说明:自定义数据类型的使用与建表时的使用一致。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!