数据类型及其详解2

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

存储字符数据时,选择一种为此目的而设计的数据类型。每种字符数据类型使用 1 个或 2 个字节存储每个字符,具体取决于该数据类型使用 ANSI(American National Standards Institute) 编码还是 Unicode 编码。
Unicode 数据类型前有一个 n 。例如, nchar Unicode 数据类型,对应于使用 ANSI 编码的 char 数据类型。定义一个字符数据类型时,指定该列允许存储的最大字节数。例如, char(10) 最多可以存储 10 个字符,因为每个字符要求 1 个字节的存储空间,而 nchar(10) 最多可以存储 5 个字符,因为每个 Unicode 字符要求使用两个字节的存储空间。下表列出了 SQL Server 支持的字符数据类型。
  字符数据类型
数据类型
存储空间
字符数
作用
char(n)
1 8 000 字节
最多 8 000 个字符
固定宽度的 ANSI 数据类型
nchar(n)
2 8 000 字节
最多 4 000 个字符
固定宽度的 Unicode 数据类型
varchar(n)
1 8 000 字节
最多 8 000 个字符
固定宽度的 ANSI 数据类型
varchar(max)
最大 2 GB
最多 1 073 741 824 个字符
可变宽度的 ANSI 数据类型
nvarchar(n)
2 8 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)
1 8 000 字节
存储固定大小的二进制数据
varbinary(n)
1 8 000 字节
存储可变大小的二进制数据
varbinary(max)
最多 2 GB
存储可变大小的二进制数据
image
最多 2 GB
存储可变大小的二进制数据
image 数据类型是这组数据类型中最流行的数据类型。该数据类型有一个不恰当的名称;它并不是专门用来存储图像的,诸如存储最近一次度假时所拍的照片的照片库。虽然可以用 image 数据类型存储图片,但也可以使用这种数据类型存储 Word Excel PDF Visio 文档。使用 image 数据类型可以存储任何一个小于或等于 2 GB 的文件。
  特殊数据类型

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

 

 

为空性(nullability)

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值