SQL Server 数据类型

来源:互联网 发布:江民青蛙 知乎 编辑:程序博客网 时间:2024/04/30 23:56
数据类型





数据类型名称类  别
长度(以字
节为单位)
数 据 特 点
Bit
整型
1
该大小容易产生误导。表中的第1个
Bit数据类型占1个字节。其余7个位也
用作Bit数据类型。允许null值以使其占
用一个额外字节
Bigint
整型
8
可处理日常用到的越来越大的数,其取
值范围为–263 ~ 263–1的整数
Int
整型
4
取值范围为–2147483648 ~ 2147483647的整数
SmallInt
整型
2
取值范围为–32 768 ~ 32 767的整数
TinyInt
整型
1
取值范围为0~255的整数
Decimal/Numeric
十进制/数字型
可变
固定精度,取值范围为–1038–1 ~ 1038–1。
两者含义相同
Money
货币
8
货币单位,取值范围为–263 ~ 263,精确
到4个小数位。注意货币单位可以是任
意货币,不限于美元
SmallMoney
货币
4
货币单位,取值范围为–214 748.364 8 ~
+214 748.364 7
Float (ANSI
的Real)
近似小数
可变
接受一个1~53的参数(如Float(20))来
决定其大小与精度。注意参数值表示位数,
不是字节数。 取值范围为
–1.79E + 308 ~ 1.79E + 308
DateTime
日期/时间
8
日期与时间数据,取值范围为1753年1
月1日~ 9999年12月31日,精确到0.03秒
DateTime2
日期/时间
可变(6~8)
新扩展的DateTime典型数据类型。支持更
大的日期范围和更高的时间部分精度(精
确到100纳秒)。与DataTime一样,它不包
含时区信息,但与.NET DateTime
数据类型相对应
SmallDateTime
日期/时间
4
日期与时间,取值范围为1900年1月1日
~2079年6月6日,精确到分钟
DateTimeOffset
日期/时间
可变
(8~10)
类似于DateTime数据类型,但有一个相对
于U-TC时间的–14:00~+14:00的偏移量。
时间在内部存储为UTC时间,任何比较、
排序或索引都将基于该统一的时区
Date
日期/时间
3
只存储Gregorian日历定义的0001年1月1日
~9999年12月31日的日期数据。采取ANSI
标准日期格式(YYYY-MM-DD),但会从
其他一些格式隐式转换
Time
日期/时间
可变(3~5)
只存储用户可选精度为100纳秒(默认)的时间数据
Cursor
特殊数字
1
指向游标的指针,只占用一个字节。记住组
成实际游标的结果集也占用内存,占用内存
的大小取决于结果集
Timestamp/
rowversion
特殊数字
(二进制)
8
给定数据库中的唯一特殊值。即使UPDATE
语句没有引用timestamp列(时间标记),其
值在插入或更新记录时也会由数据库自动
设置(不允许直接更新timestamp字段)


     数据类型名称

                       类  别

                      长度(以字

                      节为单位)

                                        数 据 特 点


 

UniqueIdentifier

特殊数字

(二进制)

16

特殊的全局唯一标识符(GUID),必须

保证其在内存空间和时间内的唯一性

 

Char

字符

可变

定长字符数据。比设定长度短时使用空

格填充,为非Unicode数据,指定的最大长

度为8000字符

 

VarChar

字符

可变

长度可变的字符数据。比设定长度短时不

使用空格填充,为非Unicode数据。允许最大

长度为8000字符,但可以使用max关键字表

示其长度可足够大(

据长度可达231字节)

 

Text

字符

可变

SQL Server 2005开始向后兼容支持该

类型。可使用varchar(max)代替

 

NChar

Unicode

可变

定长Unicode字符数据。比设定长度短

时使用空格填充。指定的最大长度为4000字符

 

NVarChar

Unicode

可变

可变长度的Unicode字符数据。比设定长

度短时不使用空格填充。允许最大长度为

4000字符,但可以使用max关键字表示

其长度可足够大(数据长度可达231字节)

 

Ntext

Unicode

可变

可变长度的Unicode字符数据。类似

Text数据类型,仅用作向后兼容。可使

nvarchar(max)代替

 

Binary

二进制

可变

定长二进制数据,最大长度为8000字节

 

VarBinary

二进制

可变

可变长度二进制数据,最大特定长度为

8 000字节,可使用max关键字使其作为

BLOB(大对象)字段(数据长可达231字节)

 

Image

二进制

可变

SQL Server 2005开始向后兼容支持该

类型。可使用varbinary(max)代替

 

Table

其他

特殊

主要用于操作结果集,通常作为用户自定义

函数(UDF)的结果输出或作为存储过程

的参数。在表的定义中不作为可用的数

据类型(不可以嵌套表)

 

HierarchyID

其他

特殊

维护层次结构定位信息的特殊数据

类型。提供特定于层次结构需要的特

殊功能。允许进行深度、父/子关系和索

引比较。实际大小随层次结构中的节点

数和平均深度而变

 

Sql_variant

其他

特殊

VBC++中的变量基本无关。其实质

是用于保存大多数其他SQLServer数据

类型的容器。当列或函数需要处理多

数据类型时可使用这种数据类型

VB不同的是,使用这种数据类型

将其显式转换为更具体的数据类型

 

XML

字符

可变

定义一个字符字段用作XML数据。用

于针对XML模式的数据验证和使用特

殊的面向XML的函数

 

CLR

其他

可变

CLR对象的特性而变,CLR对象支持

基于自定义数据类型CLR。随

SQL Server 2012附带的空间数

据类型GEOMETRYGEOGRAPHY

实现为CLR类型

(续)

数据类型名称
类 别
长度(以字
节为单位)
数 据 特 点
UniqueIdentifier
特殊数字
(二进制)
16
特殊的全局唯一标识符(GUID),必须保证
其在内存空间和时间内的唯一性
Char
字符
可变
定长字符数据。比设定长度短时使用空
格填充,为非Unicode数据,指定的最大
长度为8000字符
VarChar
字符
可变
长度可变的字符数据。比设定长度短时不
使用空格填充,为非Unicode数据。允许最
大长度为8000字符,但可以使用max关
键字表示其长度可足够大(数据长度可达231字节)
Text
字符
可变
SQL Server 2005开始向后兼容支持该
类型。可使用varchar(max)代替
NChar
Unicode
可变
定长Unicode字符数据。比设定长度短时使
用空格填充。指定的最大长度为4000字符
NVarChar
Unicode
可变
可变长度的Unicode字符数据。比设定长度
短时不使用空格填充。允许最大长度为4000
字符,但可以使用max关键字表示其长度
可足够大(数据长度可达231字节)
Ntext
Unicode
可变
可变长度的Unicode字符数据。类似Text数
据类型,仅用作向后兼容。可使
用nvarchar(max)代替
Binary
二进制
可变
定长二进制数据,最大长度为8000字节
VarBinary
二进制
可变
可变长度二进制数据,最大特定长度为8000
字节,可使用max关键字使其作为BLOB(大对
象)字段(数据长可达231字节)
Image
二进制
可变
SQL Server 2005开始向后兼容支持该类型。
可使用varbinary(max)代替
Table
其他
特殊
主要用于操作结果集,通常作为用户自定义
函数(UDF)的结果输出或作为存储过程的参数。
在表的定义中不作为可用的数
据类型(不可以嵌套表)
HierarchyID
其他
特殊
维护层次结构定位信息的特殊数据类型。提
供特定于层次结构需要的特殊功能。允许进
行深度、父/子关系和索引比较。实际大小随
层次结构中的节点数和平均深度而变
Sql_variant
其他
特殊
与VB和C++中的变量基本无关。其实质是
用于保存大多数其他SQL Server数据类型
容器。当列或函数需要处理多种数据类型时可
使用这种数据类型。与VB不同的是,使用
这种数据类型要将其显式转换为
更具体的数据类型
XML
字符
可变
定义一个字符字段用作XML数据。用于针对
XML模式的数据验证和使用特殊的面向XML的函数
CLR
其他
可变
随CLR对象的特性而变,CLR对象支持基于
自定义数据类型的CLR。随SQL Server
2012附带的空间数据类型GEOMETRY和
GEOGRAPHY实现为CLR类型
0 0
原创粉丝点击