sql server 用表组织数据

1.关系数据库中有几种数据完整性?
实体完整性:唯一约束、主键约束、标识列
域完整性:限制数据类型、检查约束、外键约束、默认值、非空约束
引用完整性:外键约束
自定义完整性:规则、存储过程、触发器

2.SQL Server中数据类型
分类 数据类型 说明
二进制数据类型 存储非字符和文本的数据 image 可用来存储图像
文本数据类型 字符数据包括任意字母、 char 固定长度的非 Unicode 字符数据
符号或数字字符的组合 varchar 可变长度非 Unicode 数据
nchar 固定长度的 Unicode 数据
nvarchar 可变长度 Unicode 数据
text 存储长文本信息
ntext 存储可变长度的长文本
日期和时间 日期和时间 datetime 
数字数据 该数据仅包含数字,包 int、smallint 整数
括整数和浮点数 float、real 浮点数
货币数据类型 十进制货币值 money
bit数据类型 表示是/否的数据 bit 存储布尔数据类型

3.请说出标识列的特点
列的数据类型为不带小数的数值类型; 
在进行插入(Insert)操作时,该列的值是由系统按一定规律生成,不允许空值;
列值不重复,具有标识表中每一行的作用,每个表只能有一个标识列。  

4.数据库约束
默认约束:当记录时字段没有赋值的时候,会使用到默认值,也就是会默认约束
检查约束:列字段内容必须符合要求,通常是一个取值范围,这个就是检查约束
eg:性别要求只能是“男”或“女”,如不是,会出现错误

5.什么是主键?
是一个列或多列的组合唯一能标识表中的每一行,主键主要是用他与其他表进行外键关联,进行修改与删除
如果两列或多列组合起来唯一标识表中的每一行,该主键叫“复合主键”
一个表只能有一个主键

6.选择主键的原则
最少性:尽量选择单个键作为主键
稳定性:尽量选择数值更新少的列作为主键

7.标识列
标识列是自动生成的,表中没有合适的列作为主键时,设置标识列为主键
标识列不允许为字符数据类型

8.主外键建立后注意事项
(1)当主表中没有对应的记录时,不能将记录添加到子表
成绩表中不能出现在学员信息表中不存在的学号
(2)不能更改主表中的值而导致子表中的记录孤立
把学员信息表中的学号改变了,学员成绩表中的学号也应当随之改变
(3)子表存在与主表对应的记录,不能从主表中删除该行
不能把有成绩的学员删除了
(4)删除主表前,先删子表
先删学员成绩表、后删除学员信息表
(5)首先要存在主键才能建立主外键关系
(6)建立主外键关系的列数据类型必须一致

9.chack 约束链接

https://blog.csdn.net/amandalm/article/details/44218841

原文地址:https://www.cnblogs.com/zjx-959/p/13044038.html