第七章 用表组织数据
1.首先我门先回顾一下上一章的数据完整性:
通俗说创建表的时候,就应当保证以后数据输入是正确的,错误的数据,不符合要求的数据不允许输入
也就下面我们说的:
可靠性+准确性=数据的完整性
注意:保证数据的完整性=实施完整性约束
2.四种完整性约束:
(1)域完整性(表格中的一列):
不能与表中出现重复值
约束方法:唯一约束,主键约束,标识列
(2)实体完整性(表格中的一行):
整个表格中的一列不能超出规定范围
约束方法:限制数据类型,检查约束,外键约束,默认值,非空约束
(3)引用完整性:
易懂的来讲,一个表中与另一个表中的列表名都相同 这时候要设置主外键进行联表查找某一个确定的数值
主键:唯一的,(即每个人都有的) 所有主键都要用数字
外键:有一个列表名跟主键的列表名相同进行主外搭配
约束方法:外键约束
(4)自定义完整性:
所设置的列表名的值不可以不符合逻辑思维(比如,年龄,信用值为负数)
约束方法:根据规则,存储过程,触发器
3.确定列的数据类型:
image:存储图像
char:固定长度非Unicode字符数据
varchar:可变长度非Unicode字符数据(最大:8000)
nchar:固定长度Unicode字符数据
nvarchar:可变长度Unicode字符数据(最大:4000)
text:存储长文本信息
ntext:存储可变长度的长文本
datetime:时间和日期
int,smallint:整数
float,real:浮点数
money:十进制货币值
bit:存储布尔值数据类型(表示是/否的数据)
4.选择主键原则:
最少性:
尽量选择单个键作为主键
稳定性:
尽量选择数值更新少的列作为主键
5.标识列:(唯一的,只能设置数字)
在没有设置主键情况下可设置标识列代替主键
6.主键用法:
分析: 什么是主键 那个需要设置主键 主键(主要把一行取出来)
7.一个表中可以存在多个主键吗?
不能,因为主键的唯一性
8.怎样添加多个主键?
通过我们的复合主键,两列或多列组合起来唯一标识中的每一行
9.主外键建立后注意事项:
(1)当主表中没有对应的记录时,不能将记录添加到子表
例如:成绩表中不能出现学员信息不存在的学号
(2)不能更改主表中的值而导致子表中的记录孤立
例如:把学员信息表中的学号改变了,学员成绩表中的学号也应当随之改变
(3)子表存在与主表对应的记录,不能从主表中删除该行
例如:不能把有成绩的学员删除
(4)删除主表前,先删子表
例如:先删学员成绩表,后删除学员信息表
10.重重之重的东西:
主外键:
(1)必须存在主键
(2)创建主,外键时必须数据类型一致
(3)建立外键时,通过在外键表中进行关联主键表(因为主键表不能修改)
11. 当sql serve出来弹窗不能进行保存时解决办法:
打开工具然后点击选项找到Designers把默认勾选的“组织保存要求重新创建表的更改”就可以啦!
如图:
12.补一下:
卸载SQL Serve方法:
第一步:打开win+R 输入regedit 找到HKEY_CLASSES_ROOT 里边有找到有关SQL Sever文件都删除就可以重新在下载了。