数据库基本概念(二)

windows7的远程连接:

cmd

mstsc


SQL Server 2008数据库具有以下四种类型的文件:

主数据库:包含数据库的启动信息,指向数据库的其他文件,每个数据都有一个主数据文件,主数据文件的推荐扩展名是.mdf.


次要(辅助)数据文件:除主数据文件以外的其他数据文件都是次要数据文件。次要数据文件的推荐扩展名是.ndf.


事务日志文件:包含恢复数据库所有事务日志的信息。推荐扩展名是ldf.


文件流数据文件:可以使得基于SQL Server的应用程序能在文件系统中存储非结构化的数据,如文档,图片,音频,视频。


分离和附加数据库的注意事项:

数据库中有一个或多个活动连接时,“消息”列将显示活动连接的数量,如“一个活动连接”。必须选中“删除连接”复选框已断开所有的活动连接。


默认情况下,分离操作将在分离数据库时保留过期的优化统计信息;若要更新现有的优化统计信息,可以选中“更新统计信息”复选框。


如果数据库的事务日志文件丢失,数据库文件保持完好,也可以附加成功。在附加的时候,数据库会自动新建事务日志文件。


创建数据库中的表时,必须指定表名,列名及数据类型等信息。

SQL Server中的数据类型可以归纳为以下类别:

精准数字、近似数字、日期和时间、字符串、Unicode字符串、二进制字符串、其他数据类型

精准数字:

int:取整数

bigint、smallint:取整数

tinyint:在存储有限数目的数值很有用。存储0~255之间的整数。该数据类型在数据库里占用1字节空间。

bit:属于整型数据,其值只能是0、1或NULL。该数据类型用于存储只有两种可能值的数据,如YES或NO、True或False。

decimal:需指定范围和精度。范围是小数点左右所能存储的数字的总位数。精度是小数点左右存储的数字的位数

money、smallmoney用来表示钱和货币值。


近似数字:

float、real:用于表示浮点数值数据的大致数值数据类型。


日期和时间:

date:用于表示日期

time:用于表示一天中的某个时间

datetime:表示日期和时间。


字符串:

char:用于存储固定的长度,非Unicode字符数据。当定义列为该类型时,必须知道列长。

varchar:用于存储可变长度,非Unicode字符数据。当定义列为该数据类型时,需要指定该列的最大长度。它与char最大的区别,存储的长度不是列长,而是数据的长度。

text:用于存储大量的非Unicode字符数据。

Unicode字符串:

nchar:用于存储定长Unicode字符型数据。Unicode用双字节结构来存储每个字符,而不是用单字节。它允许大量的扩展字符。该数据类型使用的字节数在空间上增加了一倍。

nvarchar:用于存储变长Unicode字符型数据。

ntext:用于存储大量的Unicode字符型数据。


二进制字符串

binary:用于存储可达8000字节长的定长的二进制数据。当输入表的内容接近相同的长度时,应该使用该数据类型。

varbinary:用于存储可达8000字节长的定长的二进制数据。当输入表的内容大小可变时,应该使用该数据类型。

p_w_picpath:用于存储变长的二进制数据。


默认值:

如果设置了允许空值的选项,则将向该列中插入NULL.

如果没有设置允许空值的选项,则该列将保持空白,但在用户为该列提供值之前,他们将无法保存。

空值计入任何计算。


标识符列:

具有以下三种特点:

列的数据类型为不带小数的数值类型。

在进行插入操作时,该列的值由系统按一定规律生成,不允许空值。

列值不重复,具有标识表中没一行的作用,每个表只能有一个表示列。

创建一个表示列,通常要指定三个内容:
类型:int、decimal等

种子:指派给表中第一行的值,默认为1.

第增量:相邻两个标识值之间的增量,默认值为1。


Truncate Table语句与delete语句区别如下:

Truncate Table语句不带WHERE子句,只能将整个表数据清空。而DELETE语句可以带WHERE子句,允许按条件删除某些记录。

Truncate Table语句不记录事务日志,而DELETE语句无论删除多少记录,都回记录。所以使用Truncate Table语句删除数据后是无法通过事务日志恢复的。

Truncate Table语句删除表中所有行,标识符会重置为0,而DELETE语句不会重置标识符列。

Truncate Table语句不能用于外键约束引用的表,这种情况下,需要使用DELETE语句。