SQL Server的数据库对象包括表(table),视图(view),索引(index),存储过程(stored procedure),触发器(trigger)等
SQL Server的数据库有两类:一类为系统数据库。一类为用户数据库
系统数据库即为master、model、msdb、tempdb
master数据库:它是系统最重要的数据库,记录了SQL Server的系统信息,例如登录账号、系统配置、数据库位置及数据库错误信息等,用于控制用户数据库和SQL Server的运行。
model数据库:为创建数据库提供了模板。
msdb数据库:该数据库是代理服务数据库,为调度信息,作业记录等提供空间。
tempdb数据库:它是一个临时数据库,为临时表和临时存储过程提供存储空间。

用户数据库:
用户数据库是由用户创建的数据库。
SQL Server物理数据库架构包括页和区,数据库文件、数据库文件组等:
页和区是SQL Server数据库的两个主要的数据库存储单位。
页:每个页的大小是8KB,每1MB数据文件可以容纳128页,页是SQL Server中用于数据存储的最基本单位。
区:每8个连接的页组成一个区,区的大小是64KB,1MB的数据库有16个区,区用于控制表和索引的存储。
数据库文件:
主数据文件(Primary)
主数据文件用于存储数据,每个数据库必须有也只能有一个主文件,它的默认扩展名为.mdf。
辅助数据文件(Seconday)
辅助数据文件也用于存储数据,在一个数据库中辅助数据文件可以创建多个,也可以没有,辅助数据的默认扩展名.ndf
日志文件(Transaction Log)
日志文件用于保存恢复数据库所需的事务日志信息。每个数据库至少有一个日志文件,也可以有多个,日志文件的扩展名为.ldf

SQL Server系统数据类型:
整数型:bigint、int、smallint、tinyint
精确数值型:decimal、numeric
浮点型:float、real
货币型:money、smallmoney
位型:bit
字符型:char、varchar、varchar(MAX)
Unicode字符型:nchar、nvarchar、nvarchar(MAX)
文本型:text、ntext
二进制型:binary、varbinary、varbinary(MAX)
日期时间类型:datatime、smalldatetime、date、time、datetime2、datetimeoffset
时间戳型:timesteamp
图像型:image
其他:table、xml、hierarchyid
整数型

整数型包括:bigint、int、smallint、tinyint。
bigint(大整数):其精度为19位,长度位8字节,数值范围为-263~263-1
int(整数):精度为10位。长度位4字节,数值范围为-231~231-1
smallint(短整数):精度为10位,长度位2字节,数值范围为-215~215-1
tinyint(微短整数)精度为3位,长度为1字节,数值范围为0~255.
精度数值包括decimal和numeric两种,由整数部分和小数部分构成,可储存-10^38+1到10^38-1的固定精度和小数位的数字数据,它的存储单位最少位5个字节,最多为7个字节。
格式如:numeric|decimal(p[,s])
p为精度,s为小数位数,s的默认值为0
例如:decimal(7,2)表示精度为7,小数位数为2.
浮点型
浮点型又称近似数值型,包括float和real两类,格式为:
尾数E阶数
其中阶数必须为整数。
例如,4.804E9、3.14-E7、7688E-8都是浮点型。
real其精度为7位,长度位4个字节,数值范围为-3.40E+38~3.40E+38
float[(n)]当n在1-24时,精度为7位,长度位4字节,数值范围为-3.40E~3.40E+38
当n在24-53时,精度为15位,长度为8个字节,数值范围为-1.79E+308~1.79E+308
货币型
处理货币的数据类型有money和smallmoney,他们用十进制数表示货币值。
money:精度为19,小数位数为4,长度为8个字节,数值范围为-2^63~2^63-1
smallmoney其精度为10,小数位数为4,长度为4字节,数值范围为-2^31~2^31-1
字符型:
字符型包括两类,固定长度(char字符数据类型)字符数据类型,可变长度(varchar)字符数据类型。
char[(n)]:n定义字符型数据的长度,n的取值范围为1~8000,默认值为1。若输入字符串长度小于n,则在他的后面添加空格自动补齐,例如数据类型为char(10),而输入的为字符串为"Hello",则存储的是Hello和五个空格。当大于n是则截断超出的部分。
varchar[(n)]:n个规定与char一样,但varchar的数据类型的存储空间会随着字符数的变化而变化,例如varchar[(10)],输入字符串为"Hello",则保存Hello着五个字节,不添加空格。

更多推荐

SQL Server基础知识