《数据完整性..ppt》由会员分享,可在线阅读,更多相关《数据完整性..ppt(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、ACCP V4.0第二章第二章SQL Server数据库表管理1ACCP V4.0回顾q数据库的作用q数据库的发展过程以及当前流行的数据库q数据库基本概念:数据存储方式、实体和记录、数据库和数据库表、数据冗余和数据完整性q使用企业管理器创建组、注册、用户q在企业管理器中创建数据库q收缩、移动和配置数据库的选项2ACCP V4.0本章目标q使用企业管理器创建数据库表q设置表的主键、外键和建立表之间的关系q为表增加约束3ACCP V4.0再论数据完整性 2-1数据完整性数据完整性可靠性可靠性准确性准确性4ACCP V4.0再论数据完整性 2-2q数据存放在表中q“数据完整性的问题大多是由于设计引起
2、的”q创建表的时候,就应当保证以后数据输入是正确的错误的数据、不符合要求的数据不允许输入创建表:保证数据的完整性创建表:保证数据的完整性=实施完整性约束实施完整性约束5ACCP V4.0完整性包括2-1q输入的类型是否正确?年龄必须是数字q输入的格式是否正确?身份证号码必须是18位q是否在允许的范围内?性别只能是”男”或者”女”q是否存在重复输入?学员信息输入了两次q是否符合其他特定要求?信誉值大于5的用户才能够加入会员列表q列值要求(约束)整行要求(约束)6ACCP V4.0完整性包括2-2域完整性实体完整性引用完整性自定义完整性7ACCP V4.0实体完整性河南新乡赵可以0010016河南
3、新乡张丽鹃0010015江西南昌雷铜0010014湖南新田吴兰0010013山东定陶李山0010012.地址地址姓名姓名学号学号江西南昌雷铜0010014约束方法:唯一约束、主键约束、标识列约束方法:唯一约束、主键约束、标识列8ACCP V4.0域完整性河南新乡赵可以0010016河南新乡张丽鹃0010015江西南昌雷铜0010014湖南新田吴兰0010013山东定陶李山0010012.地址地址姓名姓名学号学号湖北江门李亮8700000000约束方法:限制数据类型、检查约束、外键约束、约束方法:限制数据类型、检查约束、外键约束、默认值、非空约束默认值、非空约束9ACCP V4.0引用完整性河南
4、新乡赵可以0010016河南新乡张丽鹃0010015江西南昌雷铜0010014湖南新田吴兰0010013山东定陶李山0010012地址地址姓名姓名学号学号980010021数学约束方法:外键约束约束方法:外键约束科目学号分数数学001001288数学001001374语文001001267语文001001381数学00100169810ACCP V4.0自定义完整性AV121322乔峰CV0016AV372133玄痛CV0015AV378291沙悟净AV0014AV378290猪悟能AV0013AV378289AV378289孙悟空AV0012.会员证会员证用户姓名用户姓名用户编号用户编号约束
5、方法:规则、存储过程、触发器约束方法:规则、存储过程、触发器帐号姓名信用.00192孙悟空700288猪悟能612333段誉890111虚竹4093000岳不群-10触发器:检查信用值11ACCP V4.0表操作在企业管理器中演示打开表、数据输入等操作12ACCP V4.0创建数据库表-113ACCP V4.0SQL Server的数据类型分类备注和说明数据类型说明二进制数据类型存储非子符和文本的数据Image可用来存储图像文本数据类型字符数据包括任意字母、符号或数字字符的组合Char固定长度的非 Unicode 字符数据Varchar可变长度非 Unicode 数据Nchar固定长度的 Un
6、icode 数据Nvarchar可变长度 Unicode 数据Text存储长文本信息Ntext存储可变长度的长文本日期和时间日期和时间在单引号内输入Datetime 日期和时间数字数据该数据仅包含数字,包括正数、负数以及分数intsmallint整数floatreal数字货币数据类型用于十进制货币值MoneyBit数据类型表示是/否的数据Bit存储布尔数据类型14ACCP V4.0思考q电话号码一般使用什么数据类型存储?q性别一般使用什么数据类型存储?q年龄信息一般使用什么数据类型存储?q照片信息一般使用什么数据类型存储?q薪水一般使用什么数据类型存储?15ACCP V4.0创建数据库表-21
7、6ACCP V4.0思考q学员姓名允许为空吗?q家庭地址允许为空吗?q电子邮件信息允许为空吗?q考试成绩允许为空吗?17ACCP V4.0创建数据库表-318ACCP V4.0思考q在主键列输入的数值,允许为空吗?q一个表可以有多个主键吗?q在一个学校数据库中,如果一个学校内允许重名的学员,但是一个班级内不允许学员重名,可以组合班级和姓名两个字段一起来作为主键吗?19ACCP V4.0选择主键的原则q最少性q尽量选择单个键作为主键q稳定性q尽量选择数值更新少的列作为主键20ACCP V4.0创建数据库表-4q表中没有合适的列作为主键怎么办?21ACCP V4.0思考q标识列允许为字符数据类型吗
8、?q如果标识列A的初始值为1,增长量为2,则输入三行数据以后,再删除两行,下次再输入数据行的时候,标识值从多少开始?22ACCP V4.0创建数据库表-523ACCP V4.0创建数据库表-6演示建立主-外键关系24ACCP V4.0关系图演示关系图25ACCP V4.0主表和从表q1、当主表中没有对应的记录时,不能将记录添加到子表成绩表中不能出现在学员信息表中不存在的学号;q2、不能更改主表中的值而导致子表中的记录孤立把学员信息表中的学号改变了,学员成绩表中的学号也应当随之改变;q3、子表存在与主表对应的记录,不能从主表中删除该行不能把有成绩的学员删除了q4、删除主表前,先删子表先删学员成绩
9、表、后删除学员信息表26ACCP V4.0创建数据库表-7演示建立检查约束27ACCP V4.0创建数据库表完毕!输入数据项,验证主键、主外键关系、检查约束输入数据项,验证主键、主外键关系、检查约束28ACCP V4.0导入-导出数据演示导出数据为EXCEL文件29ACCP V4.0总结qSQL Server创建表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性等)保证的过程q实体完整性数据行不能存在重复,引用完整性要求子表中的相关项必须在主表中存在q域完整性实现了对输入到特定列的数值的限制qSQL Server中存在五种约束,分别是:主键约束、外键
10、约束、检查约束、默认约束和唯一性约束(唯一性约束将在后续课程中使用SQL语句实现)30ACCP V4.0总结q创建数据库表需要:确定表的列名、数据类型、是否允许为空,还需要确定主键、必要的默认值、标识列和检查约束q如果建立了主表和子表的关系,则:子表中的相关项目的数据,在主表中必须存在;主表中相关项的数据更改了,则子表对应的数据项也应当随之 更改;在删除子表之前,不能够删除主表;31ACCP V4.0回顾SQL Server的约束q约束的目的:确保表中数据的完整型q常用的约束类型:q主键约束(Primary Key Constraint):要求主键列数据唯一,并且不允许为空q唯一约束(Uniq
11、ue Constraint):要求该列唯一,允许为空,但只能出现一个空值。q检查约束(Check Constraint):某列取值范围限制、格式限制等,如有关年龄的约束q默认约束(Default Constraint):某列的默认值,如我们的男性学员较多,性别默认为“男”q外键约束(Foreign Key Constraint):用于两表间建立关系,需要指定引用主表的那列32ACCP V4.0添加约束 q添加约束的语法:ALTER TABLE 表名 ADD CONSTRAINT 约束名 约束类型 具体的约束说明q约束名的取名规则推荐采用:约束类型_约束字段q主键(Primary Key)约束:
12、如 PK_stuNoq唯一(Unique Key)约束:如 UQ_stuIDq默认(Default Key)约束:如 DF_stuAddressq检查(Check Key)约束:如 CK_stuAgeq外键(Foreign Key)约束:如 FK_stuNo 33ACCP V4.0添加约束示例ALTER TABLE stuInfo ADD CONSTRAINT PK_stuNo PRIMARY KEY(stuNo)ALTER TABLE stuInfo ADD CONSTRAINT UQ_stuID UNIQUE(stuID)ALTER TABLE stuInfo ADD CONSTRAINT
13、 DF_stuAddress DEFAULT(地址不详)FOR stuAddressALTER TABLE stuInfo ADD CONSTRAINT CK_stuAge CHECK(stuAge BETWEEN 15 AND 40)ALTER TABLE stuMarks ADD CONSTRAINT FK_stuNo FOREIGN KEY(stuNo)REFERENCES stuInfo(stuNo)GO演示:给学员信息表stuInfo添加约束添加主键约束(stuNo作为主键)添加唯一约束(因为每人的身份证号全国唯一)添加默认约束(如果地址不填,默认为“地址不详”)添加检查check约束,要求年龄只能在1540岁之间添加外键约束(主表stuInfo和从表stuMarks建立关系,关联字段为stuNo)34ACCP V4.0添加约束示例演示:查看约束结果35ACCP V4.0删除约束q如果错误地添加了约束,我们还可以删除约束 q删除约束的语法ALTER TABLE 表名 DROP CONSTRAINT 约束名 例如:删除stuInfo表中地址默认约束ALTER TABLE stuInfo DROP CONSTRAINT DF_stuAddress36