SQL数据库完整性
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
14
思考
• 电话号码一般使用什么数据类型存储? • 性别一般使用什么数据类型存储? • 年龄信息一般使用什么数据类型存储? • 照片信息一般使用什么数据类型存储? • 薪水一般使用什么数据类型存储?
15
创建数据库表3-2
16
思考
• 学员姓名允许为空吗? • 家庭地址允许为空吗? • 电子邮件信息允许为空吗? • 考试成绩允许为空吗?
3、字段Age建立检查约束,约束输入的当前的年龄在18-40岁之间,约束表达 、字段 建立检查约束,约束输入的当前的年龄在 岁之间, 建立检查约束 岁之间 式如何写? 式如何写?
30
演示建立主-外键关系 演示建立主 外键关系…… 外键关系 24
主外键关系4-2
演示建立数据库关系图…… 演示建立数据库关系图
25
主外键关系4-3
• 当主表中没有对应的记录时,不能将记录添加到子表 当主表中没有对应的记录时,不能将记录添加到子 对应的记录时 将记录添加到 ——成绩表中不能出现在学员信息表中不存在的学号; 成绩表中不能出现在学员信息表中不存在的学号; 成绩表中不能出现在学员信息表中不存在的学号 • 不能更改主表中的值而导致子表中的记录孤立 不能更改主表中的值而导致子 更改主表中的值 ——把学员信息表中的学号改变了,学员成绩表中的 把学员信息表中的学号改变了, 把学员信息表中的学号改变了 学号也应当随之改变; 学号也应当随之改变; • 子表存在与主表对应的记录,不能从主表中删除该行 子表存在与主表对应的记录 不能从主表中删除 存在与主表对应的记录, 主表中删除该行 ——不能把有成绩的学员删除了 不能把 不能 有成绩的学员删除了
• 删除主表前,先删子表 删除主表前, ——先删学员成绩表、后删除学员信息表 先删学员成绩表、 先删学员成绩表
26
创建检查约束
演示建立检查约束…… 演示建立检查约束
27
创建数据库完毕!
输入数据项,验证主键、主外键关系、检查约束 输入数据项,验证主键、主外键关系、检查约束……
28
导入-导出数据
演示导出数据为EXCEL文件 文件…… 演示导出数据为 文件 29
– 尽量选择数值更新少的列作为主键
20
创建数据库表3-4
• 表中没有合适的列作为主键怎么办?
21
思考
• 标识列允许为字符数据类型吗? • 如果标识列A的初始值为1,增长量为2,则 输入三行数据以后,再删除两行,下次再 输入数据行的时候,标识值从多少开始?
22
创建数据库表3-5
23
主外键关系4-1
17
创建数据库表3-3
18
思考
• 在主键列输入的数值,允许为空吗? • 一个表可以有多个主键吗? • 在一个学校数据库中,如果一个学校内 允许重名的学员,但是一个班级内不允 许学员重名,可以组合班级和姓名两个 字段一起来作为主键吗?
19
选择主键的原则
• 最少性
– 尽量选择单个键作为主键
• 稳定性
科目 数学 数学 语文 语文 数学
约束方法: 约束方法:外键约束 数学
学号 0010012 0010013 0010012 0010013 0010016
分数 88 74 67 81 98
…
×
0010021 98 10
自定义完整性
用户编号 AV0012 AV0013 AV0014 CV0015 CV0016 用户姓名 孙悟空 猪悟能 沙悟净 玄痛 乔峰 会员证 AV378289 AV378290 AV378291 AV372133 AV121322 ….
• 输入的类型是否正确?
——年龄必须是数字
• 输入的格式是否正确?
——身份证号码必须是18位
列值要求(约束) 列值要求(约束)
• 是否在允许的范围内?
——性别只能是”男”或者”女”
• 是否存在重复输入?
——学员信息输入了两次
整行要求(约束) 整行要求(约束)
wenku.baidu.com
• 是否符合其他特定要求?
——信誉值大于5的用户才能够加入会员列表
第二章 第二章
SQL Server数据库表管理 Server数据库表管理
1
回顾
• 举例说明数据冗余的概念。 • 数据库的数据文件和日志文件的扩展名分 别是什么? • 日志文件最少能设为多大? • 举例说明在哪些情况下需要分离和附加数 据库?
2
本章目标
• 创建数据库表 • 设置表的主键、外键和建立表之间的关系 • 为表增加约束
×
触发器: 触发器:检查信用 值
帐号 00192 00288 12333 90111 93000
姓名 孙悟空 猪悟能 段誉 虚竹 岳不群
信用 7 6 8 40 -10
….
约束方法:规则、存储过程、 约束方法:规则、存储过程、触发器
11
表操作
演示打开表、数据输入等操作 演示打开表、数据输入等操作… 12
6
• ……
完整性包括…2-2
域完整性
自定义完整性 实体完整性
引用完整性 7
实体完整性
学号 0010012 0010013 0010014 0010015 0010016 姓名 李山 吴兰 雷铜 张丽鹃 赵可以 地址 山东定陶 湖南新田 江西南昌 河南新乡 河南新乡 ….
×
0010014 雷铜 江西南昌
3
再论数据完整性 1-1
可靠性
准确性
数据完整性
4
再论数据完整性 1-2
• 数据存放在表中 • “数据完整性的问题大多是由于设计引起 的” • 创建表的时候,就应当保证以后数据输入 是正确的 ——错误的数据、不符合要求的数据不允 许输入 :保证数据的完整性 = 实施完整性约束 创建表: 创建表
5
完整性包括…2-1
约束方法:唯一约束、主键约束、 约束方法:唯一约束、主键约束、标识列 8
域完整性
学号 0010012 0010013 0010014 0010015 0010016 姓名 李山 吴兰 雷铜 张丽鹃 赵可以 地址 山东定陶 湖南新田 江西南昌 河南新乡 河南新乡 …. .
×
8700000000 李亮 湖北江门
总结
1、保证数据完整性从()步骤开始。 保证数据完整性从()步骤开始。 保证数据完整性从()步骤开始 A、建立数据库 、 B、建立数据库表 、 C、在表中输入数据 、 D、数据导出 、 2、创建表的字段主要有哪些操作项? 、创建表的字段主要有哪些操作项? 输入字段名 确定数据类型 确定是否允许为空 确定是否为主键或者标识列 确定默认值
创建数据库表3-1
13
SQL Server的数据类型
分类 二进制数据类型 文本数据类型 备注和说明 存储非子符和文本的数据 字符数据包括任意字母、符号或 数字字符的组合 数据类型 Image Char Varchar Nchar Nvarchar Text Ntext 日期和时间 数字数据 日期和时间在单引号内输入 该数据仅包含数字,包括正数、 负数以及分数 Datetime int smallint float real 货币数据类型 Bit数据类型 用于十进制货币值 表示是/否的数据 Money Bit 存储布尔数据类型 说明 可用来存储图像 固定长度的非 Unicode 字符数据 可变长度非 Unicode 数据 固定长度的 Unicode 数据 可变长度 Unicode 数据 存储长文本信息 存储可变长度的长文本 日期和时间 整数 数字
约束方法:限制数据类型、检查约束、外键约束、默认值、 约束方法:限制数据类型、检查约束、外键约束、默认值、非空约束
9
引用完整性
学号 0010012 0010013 0010014 0010015 0010016 姓名 李山 吴兰 雷铜 张丽鹃 赵可以 地址 山东定陶 湖南新田 江西南昌 河南新乡 河南新乡 …