SQL Server的数据存储结构

文件类型
数据文件
主数据文件(.mdf)且只有一个
次要(辅助)数据文件(.ndf)可有可无可以有多个
文件流(Filestream)数据文件 

事务日志文件(.ldf)
记录所有事务的SQL语句
用于恢复数据库

数据库管理
数据库名称
数据文件和日志文件
名称
文件初始大小
自动增长
存储路径

扩展数据库
作用
为数据文件和日志文件分配更多的空间
方法
扩展现有文件的自动增长设置
添加新文件

收缩数据库
作用
释放数据库中未使用空间
方法
手动收缩
自动收缩

分离和附加数据库
作用
将数据库更改到不同SQL Server实例中
分离数据库
将数据库从实例中移除
附加数据库
通过定位主数据文件,将数据库附加到另一实例

删除数据库
只能删除用户数据库,系统数据库无法删除

表的基本概念 
实体完整性
每一行必须是唯一的实体
域完整性
检查每一列是否有效
引用完整性
确保所有表中数据的一致性,不允许引用不存在的值
用户定义的完整性
制定特定的业务规则

主键
用于唯一标识表中的行数据
由一个或多个字段组成
具有唯一性
不允许取空值(NULL)
一个表只能有一个主键


数据类型
是数据的一种属性,指定对象可保存的数据的类型

精准数字
数据类型    描述
int    整型,存储-231到231之间的整数,占4字节空间
bit    整型,取值0、1或NULL。存储只有两种可能值的数据,如Yes或No

decimal    存储从-1038-1到1038-1的固定精度和范围的数值型数据,须指定范围和精度。范围是小数点左右所能存储的数字的总位数。精度是小数点右边存储的数字的位数
money    表示钱和货币值。存储从-922 337 203 685 477.5808 到 922 337 203 685 477.5807之间的数据,精确到货币单位的万分之一,占8字节空间

近似数字
数据类型    描述
float    表示浮点数值数据的大致数值。表示-1.79E+308到1.79E+308 之间的任意数,占8字节空间
real    表示-3.40E+38到3.40E+38之间的浮点数。占4 字节空间

字符串
数据类型    描述
char    存储固定长度,非 Unicode 字符数据。须指定列长,最多包含 8000 个字符
varchar    存储可变长度,非 Unicode 字符数据。需要指定该列的最大长度,最多包含231个字符
text    存储大量的非 Unicode字符数据,最多可以有231-1或大约20亿个字符 

Unicode字符串
数据类型    描述
nchar    存储定长Unicode字符型数据。Unicode使用双字节结构来存储每个字符,在空间占用上增加了一倍
nvarchar    存储变长Unicode字符型数据
ntext    存储大量的Unicode字符型数据

二进制字符串
数据类型    描述
binary    存储可达8000 字节长的定长的二进制数据
varbinary    存储可达8000 字节长的变长的二进制数据
image    存储变长的二进制数据,最大可达231-1或大约20亿字节

日期和时间
数据类型    描述
date    日期。存储从公元元年1月1日到公元9999年 12月31日间所有的日期数据。占3字节空间
time    表示一天中某个时间,不能感知时区且基于 24 小时制,占5字节空间
datetime    表示日期和时间。存储从1753年1月1日到9999年12月31日间所有的日期和时间数据,占8个字节空间

默认值
如果没有为列指定值,默认值则指定列中使用的值
没有为列指定默认值
如果允许空值,则将向该列中插入 NULL
如果不允许空值,在用户为该列提供值前,将无法保存行

标识列
包含系统自动生成的序号值的列
列值由系统按一定规律生成,不允许空值
列值不能重复,唯一标识表中每一行
每个表只能有一个标识列
创建标识列(自增列)
类型(type)
种子(seed)
递增量(increment)

检查约束
限制列可接受的值
通过逻辑表达式创建检查(CHECK)约束

检查约束
限制列可接受的值
通过逻辑表达式创建检查(CHECK)约束

创建表
CREATE TABLE 表名
(
    列名1 数据类型(大小),
    列名2 数据类型(大小),
    列名3 数据类型(大小),
    ……    
)

删除表

DROP TABLE  <表名>


扩展数据库的方法
1扩展现有文件的自动增长设置
2添加新文件 (次要数据文件)

收缩数据库的方法
手动收缩:数据库,文件 自动收缩:数据库


 

你可能感兴趣的:(数据库,sql)