第七章 用表组织数据
一.完整性:
可靠性+准确性=数据完整性
保证数据完整性=实施完整性约束
保证数据完整性=实施完整性约束
1.实体完整性:实体完整性约束行(记录),规定表中不能出现重复数据
2.域完整性:域完整性约束列(字段),规定表中字段数据格式正确
3.引用完整性:引用完整性约束表与表之间的关系,不能存在表与表外的数据
4.自定义完整性:自定义完整性用来约束用户自定义触发器的约束
二.创建数据库表
1.数据类型
二进制数据类型 存储非字符和文本的数据 image 可用来存储图像
文本数据类型 字符数据包括任意字母、符号或数字字符的组合 char 固定长度的非 Unicode 字符数据
varchar 可变长度非 Unicode 数据
nchar 固定长度的 Unicode 数据
nvarchar 可变长度 Unicode 数据
text 存储长文本信息
ntext 存储可变长度的长文本
日期和时间 日期和时间 datetime
数字数据 该数据仅包含数字,包括整数和浮点数 int、smallint 整数
float、real 浮点数
货币数据类型 十进制货币值 money
bit数据类型 表示是/否的数据 bit 存储布尔数据类型
二进制数据类型 存储非字符和文本的数据 image 可用来存储图像
文本数据类型 字符数据包括任意字母、符号或数字字符的组合 char 固定长度的非 Unicode 字符数据
varchar 可变长度非 Unicode 数据
nchar 固定长度的 Unicode 数据
nvarchar 可变长度 Unicode 数据
text 存储长文本信息
ntext 存储可变长度的长文本
日期和时间 日期和时间 datetime
数字数据 该数据仅包含数字,包括整数和浮点数 int、smallint 整数
float、real 浮点数
货币数据类型 十进制货币值 money
bit数据类型 表示是/否的数据 bit 存储布尔数据类型
2.主键
主键作为表中的唯一标识,标识这一列不允许出现重复数据
如果两列或多列组合起来唯一标识表中的每一行,该主键叫“复合主键”
如果两列或多列组合起来唯一标识表中的每一行,该主键叫“复合主键”
选择主键的原则
最少性
尽量选择单个键作为主键
稳定性
尽量选择数值更新少的列作为主键
3.默认值
最少性
尽量选择单个键作为主键
稳定性
尽量选择数值更新少的列作为主键
3.默认值
设置列默认值的前提是这一列必须是允许为空的,否则设置默认值无效
如果在插入数据或者更改数据时,这一列不输入的话那么会按照默认值进行绑定
如果在插入数据或者更改数据时,这一列不输入的话那么会按照默认值进行绑定
4.标识列
将想要设置的标识列设置成主键,保证这一列的数据类型为int,然后在此列的标识规范改为是,标识种子代表从几开始,标识增量表示每次加几
5.创建主外键
外键表找主键表
6.主键表月外键表之间的注意事项
当主表中没有对应的记录时,不能将记录添加到子表
成绩表中不能出现在学员信息表中不存在的学号
不能更改主表中的值而导致子表中的记录孤立
把学员信息表中的学号改变了,学员成绩表中的学号也应当随之改变
子表存在与主表对应的记录,不能从主表中删除该行
不能把有成绩的学员删除了
删除主表前,先删子表
先删学员成绩表、后删除学员信息表
当主表中没有对应的记录时,不能将记录添加到子表
成绩表中不能出现在学员信息表中不存在的学号
不能更改主表中的值而导致子表中的记录孤立
把学员信息表中的学号改变了,学员成绩表中的学号也应当随之改变
子表存在与主表对应的记录,不能从主表中删除该行
不能把有成绩的学员删除了
删除主表前,先删子表
先删学员成绩表、后删除学员信息表