数据类型及其详解2

                                                        数据类型及其详解
在这里我收集了七大类数据类型,分别介绍如下:
  字符数据类型<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

存储字符数据时,选择一种为此目的而设计的数据类型。每种字符数据类型使用1个或2个字节存储每个字符,具体取决于该数据类型使用ANSI(American National Standards Institute)编码还是Unicode编码。
Unicode数据类型前有一个n。例如,ncharUnicode数据类型,对应于使用ANSI编码的char数据类型。定义一个字符数据类型时,指定该列允许存储的最大字节数。例如,char(10)最多可以存储10个字符,因为每个字符要求1个字节的存储空间,而nchar(10)最多可以存储5个字符,因为每个Unicode字符要求使用两个字节的存储空间。下表列出了SQL Server支持的字符数据类型。
  字符数据类型
数据类型
存储空间
字符数
作用
char(n)
18 000字节
最多8 000个字符
固定宽度的ANSI数据类型
nchar(n)
28 000字节
最多4 000个字符
固定宽度的Unicode数据类型
varchar(n)
18 000字节
最多8 000个字符
固定宽度的ANSI数据类型
varchar(max)
最大2 GB
最多1 073 741 824个字符
可变宽度的ANSI数据类型
nvarchar(n)
28 000字节
最多4 000个字符
可变宽度的Unicode数据类型
nvarchar(max)
最大2 GB
最多536 870 912个字符
可变宽度的Unicode数据类型
text
最大2 GB
最多1 073 741 824个字符
可变宽度的ANSI数据类型
ntext
最大2 GB
最多536 870 912个字符
可变宽度的Unicode数据类型
  二进制数据类型

有很多时候需要存储二进制数据。因此,SQL Server提供了三种二进制数据类型,允许在一个表中存储各种数量的二进制数据。下表列出了SQL Server支持二进制数据类型。
  二进制数据类型
数据类型
存储空间
作用
binary(n)
18 000字节
存储固定大小的二进制数据
varbinary(n)
18 000字节
存储可变大小的二进制数据
varbinary(max)
最多2 GB
存储可变大小的二进制数据
image
最多2 GB
存储可变大小的二进制数据
image数据类型是这组数据类型中最流行的数据类型。该数据类型有一个不恰当的名称;它并不是专门用来存储图像的,诸如存储最近一次度假时所拍的照片的照片库。虽然可以用image数据类型存储图片,但也可以使用这种数据类型存储WordExcelPDFVisio文档。使用image数据类型可以存储任何一个小于或等于2 GB的文件。
  特殊数据类型

除了上述标准数据类型外,SQL Server还提供了另外7种特殊数据类型。下表描述了这些特殊数据类型。
  特殊数据类型
数据类型
作用
bit
存储01null。用于基本标记值。TRUE被转换为1,而FALSE被转换为0
timestamp
一个自动生成的值。每个数据库都包含一个内部计数器,指定一个不与实际时钟关联的相对时间计数器。一个表只能有一个timestamp列,并在插入或修改行时被设置到数据库时间戳
uniqueidentifier
一个16GUID,用来全局标识数据库、实例和服务器中的一行
sql_variant
可以根据其中存储的数据改变数据类型。最多存储8 000字节
cursor
供声明游标的应用程序使用。它包含一个可用于操作的游标的引用。该数据类型不能在表中使用
table
用来存储随后进行的处理的结果集。该数据类型不能用于列。该数据类型的唯一使用时机是在触发器、存储过程和函数中声明表变量时
Xml
存储一个XML文档,最大大小为2GB。你可以指定选项,强制只能存储格式良好的文档

 

 

为空性(nullability)

列定义的第二个特征是是否要求它存储一个值。数据库有一个称为null的特殊构造,你可以用它来表示某个值不存在——有点类似于未知的不可应用的null不是一个值,也不占用任何存储空间。
在定义列时,可以指定是否允许null。如果不允许null,则要求用户为该列指定一个值。
注意,因为不存在某个东西不可能等于不存在另一个东西——换句话说,一个null不能等于另一个null,所以不能对null进行比较。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值