SQL Server 学习二:管理数据表

一、关系模型和数据表
关系型数据库的定义:
1,是以关系模型为基础的数据库
2,是用表,元组,列之间的关系组织,访问数据的数据库
3,表与表之间存在着联系

数据表:
元组/记录/行
属性/字段/列
用数据表来表示实体

二、数据类型
3种基本的数据库:数字类型,字符串类型,日期时间类型

数字类型:整数型,小数
整数型:int  
小数类型: decimal(5,2)  decimal(小数加整数部分的长度 , 小数部分的长度) 

字符串类型:char,varchar, nvarchar
char(n) 固定长度的非Unicode字符串
varchar(n) 非固定长度的非Unicode字符串 
nvarchar(n) 非固定长度的Unicode 字符串
n表示字符串长度,例如varchar(4)表示最多4个英文或者2个中文

日期时间类型:date, dateTime
date 日期 '2020-03-19'
dateTime 时间  '2020-03-19 9:48:59' 

总结:
当列的数据长度固定,可以使用 char类型 (性别:男/女)
当列数据长度不固定,只有非中文字符的时候用 varchar 
当列数据长度不固定,包含中文字符的时候用 nvarchar
中文非Unicode 字符串会占2个长度

三、数据完整性
确保数据在逻辑上的一致性,正确性
确保数据表中的数据有效性

1,实体完整性:
确保记录在表中的唯一的

主键约束:列中的值不能够重复,不能为空,1张表中只添加1个主键约束
主键:表中的列,定义为主键,记录在表中的唯一标识
添加主键约束: 设计表 -- 选中要添加主键约束的列 -- 右键 -- 设置为主键

自增约束:初始值,按照一定的规则增长,不能显示输入值,一般为主键列添加自增约束
添加自增约束:设计表 -- 选中要添加自增约束的列 -- 列属性 -- 标识规范: 是标识,标识种子(初始值),标识增量(每次的增加值)

唯一键约束:列中的值不能够重复,允许为空(只能有1个空值),一张表中能为多个列添加唯一键约束
添加唯一键约束:设计表 -- 选中要添加唯一键约束的列 -- 右键 -- 索引/键 -- 添加: 常规.类型: 唯一键; 列:要添加唯一键的列

注意:设计表并且保存之后,重新编辑表中的数据,要先刷新表(右键 -- 执行)

2,域完整性:
保证列中的值是有效,不超过范围,对应的数据类型

数据类型约束

非空约束: 设计表 -- 非空勾选项(勾选上就是允许为空)

检查约束:  列中的值必须满足检查约束的表达式
添加Check约束:设计表 -- 右键 -- check约束 -- 添加 -- 表达式 -- 添加上自己的表达式

默认值约束:没有给记录中某一列赋值,会使用默认值
添加默认值约束:设计表 -- 选中列 --列属性 -- 默认值 -- 添加默认值

3,参照完整性(两张表):
定义:表与表之间的约束条件
性质:一张表(从表)中某一列(外键)的取值来自于另一张表(主表)的列(主键列)

外键约束:保证参照完整性,在从表上添加外键约束
添加外键约束:右键 -- 设计表 -- 关系 -- 表和列的规范

扩展:
char字符串占用空间图解:

varchar字符串占用空间图解

nvarchar字符串占用空间图解