数据库基本概念(二)
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语句。