SQL Server 2008数据类型

时间:2021-02-05 13:24:53


在创建表时,必须为表中的每列指派一种数据类型。


今天在研究二进制存储图片时候竟然不知道image类型就是二进制类型?!所有就搜集了sql中的各种数据类型汇总,成功在于点滴积累。


1. 字符数据类型

数 据 类 型

描    述

存 储 空 间

Char(n)

N为1~8000字符之间

n字节

Nchar(n)

N为1~4000 Unicode字符之间

(2n字节)+2字

节额外开销

Ntext

最多为230–1

(1 073 741 823)Unicode字符

每字符2字节

Nvarchar(max)

最多为230–1

(1 073 741 823)Unicode字符

2×字符数+2字

节额外开销

Text

最多为231–1

(2 147 483 647)字符

每字符1字节

Varchar(n)

N为1~8000字符之间

每字符1字节+2

字节额外开销

Varchar(max)

最多为231–1(2 147 483 647)字符

每字符1字节+2

字节额外开销

2. 精确数值数据类型


数 据 类 型

描    述

存 储 空 间

bit

0、1或Null

1字节(8位)

tinyint

0~255之间的整数

1字节

smallint

–32 768~32 767之间的整数

2字节

int

–2 147 483 648~

2 147 483 647之间的整数

4字节

bigint

–9 223 372 036 854 775 808~

9 223 372 036 854 775 807

之间的整数

8字节


数 据 类 型

描    述

存 储 空 间

numeric(p,s)或

decimal(p,s)

–1 038+1~1 038–1之间的数值

最多17字节

money

–922 337 203 685 477.580 8~

922 337 203 685 477.580 7

8字节

smallmoney

–214 748.3648~2 14 748.3647

4字节

 


3. 近似数值数据类型


数 据 类 型

描    述

存 储 空 间

float[(n)]

–1.79E+308~–2.23E–

308,0,2.23E–308~1.79E+308

N< =24-4字节

N> 24-8字节

real()

–3.40E+38~–1.18E–

38,0,1.18E–38~3.40E+38

4字节



4. 二进制数据类型



数 据 类 型

描    述

存 储 空 间

Binary(n)

N为1~8000十六进制数字之间

n字节

Image

最多为231–1

(2 147 483 647)十六进制数位

每字符1字节

Varbinary(n)

N为1~8000十六进制数字之间

每字符1字节

+2字节额外开销

Varbinary(max)

最多为231–1

(2 147 483 647)十六进制数字

每字符1字节

+2字节额外开销


5. 日期和时间数据类型


数 据 类 型

描    述

存 储 空 间

Date

9999年1月1日~12月31日

3字节

Datetime

1753年1月1日~9999年12月31日,

精确到最近的3.33毫秒

8字节

Datetime2(n)

9999年1月1日~12月31日

0~7之间的N指定小数秒

6~8字节

Datetimeoffset(n)

9999年1月1日~12月31日

0~7之间的N指定小数秒+/–偏移量

8~10字节

SmalldateTime

1900年1月1日~2079年

6月6日,精确到1分钟

4字节

Time(n)

小时:分钟:秒.9999999

0~7之间的N指定小数秒

3~5字节


6. 其他系统数据类型


数 据 类 型

描    述

存 储 空 间

Cursor

包含一个对光标的引用和

可以只用作变量或存储过程参数

不适用

Hierarchyid

包含一个对层次结构中位置的引用

1~892字节+2

字节的额外开销

SQL_Variant

可能包含任何系统数据类

型的值,除了text、ntext、

image、timestamp、xml、

varchar(max)、nvarchar(max)、

varbinary (max)、sql_variant以

及用户定义的数据类型。最大尺

寸为8000字节数据+16字节

(或元数据)

8016字节

Table

用于存储用于进一步处理的数

据集。定义类似于Create Table。

主要用于返回表值函数的结果集,

它们也可用于存储过程和批处理中

取决于表定

义和存储的行数

Timestamp or

Rowversion

对于每个表来说是唯一的、自

动存储的值。通常用于版本戳,

该值在插入和每次更新时自动改变

8字节

Uniqueidentifier

可以包含全局唯一标识符

(Globally Unique Identifier,

GUID)。guid值可以从Newid()

函数获得。这个函数返回的值对

所有计算机来说是唯一的。

尽管存储为16位的二进制值,

但它显示为char(36)

16字节

XML

可以以Unicode或非Unicode形式存储

最多2GB