您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第3讲 实施数据完整性、为表增加约束
SQL第三讲实施数据完整性、为表设置约束SQL2本讲任务给学生数据库设置约束、实施数据完整性SQL3理解数据完整性实体完整性引用完整性域完整性自定义完整性设置表的主键设置各个字段的检查约束利用外键建立表之间的关系本讲技能目标SQL4本讲重点和难点重点理解数据完整性设置表的主键、外键和建立表之间的关系难点自定义约束的概念检查约束的表达式SQL5回顾数据库的数据文件和日志文件的扩展名分别是什么?一个数据库可以有哪些文件?举例说明在哪些情况下需要分离和附加数据库?数据库以二维表格的形式存放我们的数据,创建表是来做什么的?创建表时我们需要设置哪些信息?SQL支持的数据类型有哪些?是否允许为空是什么意思?默认值是什么意思?如何创建标识列?标识列有什么样的特点?SQL6简单的学生成绩管理系统项目分析:要用到(存储、访问)的信息:学生的基本信息:学号、姓名、性别、出生日期、联系方式等等课程的基本信息:课程编号、课程名称、课程简介成绩的基本信息:课程、成绩SQL7简单的学生成绩管理系统这些信息如何存储?放在一个表中会遇到什么样的问题?如何查找?如何更新?如何删除?如何保证这些信息的正确性和可靠性?SQL8简单的学生成绩管理系统学号姓名年龄课程名称成绩1王涛20数据库851王涛20英语90课程编号课程名称001数据库002英语学号课程编号成绩100185100290存在冗余注:为减少数据查找的麻烦,有时候会允许数据有一定的冗余学号姓名年龄1王涛202李江19SQL9任务准备:创建三个表SQL10数据完整性2-1数据完整性准确性可靠性SQL11数据完整性2-2数据存放在表中“数据完整性的问题大多是由于设计引起的”创建表的时候,就应当保证以后数据输入是正确的——错误的数据、不符合要求的数据不允许输入创建表:保证数据的完整性=实施完整性约束SQL12完整性包括…2-1输入的类型是否正确?——年龄必须是数字输入的格式是否正确?——身份证号码必须是18位是否在允许的范围内?——性别只能是”男”或者”女”是否存在重复输入?——学员信息输入了两次是否符合其他特定要求?——信誉值大于5的用户才能够加入会员列表……列值要求(约束)整行要求(约束)SQL13完整性包括…2-2域完整性实体完整性引用完整性自定义完整性SQL14实体完整性河南新乡赵可以0010016河南新乡张丽鹃0010015江西南昌雷铜0010014湖南新田吴兰0010013山东定陶李山0010012….地址姓名学号江西南昌雷铜0010014×约束方法:唯一约束、主键约束、标识列SQL15域完整性河南新乡赵可以0010016河南新乡张丽鹃0010015江西南昌雷铜0010014湖南新田吴兰0010013山东定陶李山0010012….地址姓名学号湖北江门李亮8700000000×约束方法:限制数据类型、检查约束、外键约束、默认值、非空约束SQL16引用完整性河南新乡赵可以0010016河南新乡张丽鹃0010015江西南昌雷铜0010014湖南新田吴兰0010013山东定陶李山0010012…地址姓名学号980010021数学×约束方法:外键约束科目学号分数…数学001001288数学001001374语文001001267语文001001381数学001001698SQL17自定义完整性AV121322乔峰CV0016AV372133玄痛CV0015AV378291沙悟净AV0014AV378290猪悟能AV0013AV378289孙悟空AV0012….会员证用户姓名用户编号约束方法:规则、存储过程、触发器帐号姓名信用….00192孙悟空700288猪悟能612333段誉890111虚竹4093000岳不群-10×触发器:检查信用值SQL18实施数据完整性方法:创建表时设置约束保证数据的完整性。编程实现数据完整性实体完整性:主键约束引用完整性:外键约束域完整性:设置数据类型(长度)、检查约束自定义的完整性:检查约束SQL19设置主键SQL20思考在主键列输入的数值,允许为空吗?一个表可以有多个主键吗?在一个学校数据库中,如果一个学校内允许重名的学员,但是一个班级内不允许学员重名,可以组合班级和姓名两个字段一起来作为主键吗?SQL21选择主键的原则最少性尽量选择单个键作为主键稳定性尽量选择数值更新少的列作为主键SQL22技能训练给成绩表设置主键如何选择?如何设置组合主键?输入、更新数据,验证主键SQL23主外键关系-1演示建立主-外键关系……SQL24主外键关系-2演示建立数据库关系图……SQL25主外键关系-3当主表中没有对应的记录时,不能将记录添加到子表——成绩表中不能出现在学员信息表中不存在的学号;不能更改主表中的值而导致子表中的记录孤立——把学员信息表中的学号改变了,学员成绩表中的学号也应当随之改变;子表存在与主表对应的记录,不能从主表中删除该行——不能把有成绩的学员删除了删除主表前,先删子表——先删学员成绩表、后删除学员信息表SQL26技能训练给成绩表的cid设置外键输入、更新数据,验证主外键关系SQL27创建检查约束演示建立检查约束……SQL28约束表达式约束表达式,是一个条件表达式(逻辑表达式)其中可以包含的运算符如下图:运算符用途=,!=,=,=,,比较大小and,or,not设置多重比较条件betweenand确定范围,用于数值类型in确定集合,用于文本类型like字符匹配,模糊匹配,用于文本类型SQL29常见的约束表达式score100score0andscore100scorebetween0and100addressin('北京','广州','上海')SQL30技能训练字段Age建立检查约束,约束输入的当前的年龄在18-40岁之间,约束表达式如何写?性别只能是男和女,约束表达式如何写?输入、更新数据,验证主外键关系SQL31项目实战从下面的应用中选择一个,为所选的应用系统设计表(表的个数根据实际情况),1.简单描述系统所需要存储的数据2.以下面的表格的形式写出表的结构。表名:字段名(列名)数据类型(长度)是否允许为空是否有默认值约束SQL32项目实战可选应用系统:教师管理系统图书管理系统论坛网上购物系统银行自动取款机自己比较熟悉的其他应用SQL33项目实战选题设计表的结构上机实现、验证优秀作品展示SQL34总结1、保证数据完整性从()步骤开始。A、建立数据库B、建立数据库表C、在表中输入数据D、数据导出2、创建表的字段主要有哪些操作项?输入字段名确定数据类型确定是否允许为空确定是否为主键或者标识列确定默认值根据需要设置外键约束和检查约束
本文标题:第3讲 实施数据完整性、为表增加约束
链接地址:https://www.777doc.com/doc-3382456 .html