MS-SQL基本类型
一.基本的数据类型
数值
bigint 8字节 从 -2^63 到 2^63-1 的整型数据(所有数字)
int 4字节 从 -2^31 到 2^31-1 的整型数据(所有数字)
smallint 2字节 从 -2^15 到 2^15-1 的整数数据
tinyint 1字节 从 0 到 255 的整数数据
bit 1位 1 或 0 的整数数据
decimal Decimal (p,s) 从 -10^38 +1 到 10^38 –1 的固定精度和小数位的数字数据
numeric 功能上等同于 decimal
money 8字节 货币数据值介于 -2^63 与 2^63 -1 之间,精确到货币单位的千分之十
smallmoney 4字节 货币数据值介于 -214,748.3648 与 +214,748.3647 之间,精确到货币单位的千分之十
float 4字节,7位精度 从 -1.79E + 308 到 1.79E + 308 的浮点精度数字
real 8字节,15位精度 从 -3.40E + 38 到 3.40E + 38 的浮点精度数字
datetime 8字节 从1753 年1月1日到9999年12月31日的日期和时间数据,精确到百分之三秒
smalldatetime 字节 从1900 年1月1日到2079年6月6日的日期和时间数据,精确到分钟
字符串
char 固定长度的非 Unicode 字符数据,最大长度为 8,000 个字符
varchar 可变长度的非 Unicode 数据,最长为 8,000 个字符
text 可变长度的非 Unicode 数据,最大长度为 2^31 - 1 (2,147,483,647) 个字符
Unicode 字符串
nchar 固定长度的 Unicode 数据,最大长度为 4,000 个字符
nvarchar 可变长度 Unicode 数据,其最大长度为 4,000 字符
sysname 是系统提供用户定义的数据类型,在功能上等同于nvarchar(128),用于引用
数据库对象名
ntext 可变长度 Unicode 数据,其最大长度为 2^30 - 1 (1,073,741,823) 个字符
二进制字符串
binary 固定长度的二进制数据,其最大长度为 8,000 个字节
varbinary 可变长度的二进制数据,其最大长度为 8,000 个字节
image 可变长度的二进制数据,其最大长度为 2^31 - 1 (2,147,483,647) 个字节
其它数据类型
cursor 游标的引用。
sql_variant 一种存储SQL Server支持的各种数据类型(text,ntex,timestamp和sql_variant除外)值的数据类型
table 一种特殊的数据类型,存储供以后处理的结果集
timestamp 8字节
数据库范围的唯一数字,每次更新行时也进行更新
uniqueidentifier 16字节 全局唯一标识符 (GUID)
二.详解:
1.SQL SERVER的数据类型
数据类弄是数据的一种属性,表示数据所表示信息的类型。任何一种计算机语言都定义了自己的数据类型。当然,不同的程序语言都具有不同的特点,所定义的数据类型的各类和名称都或多或少有些不同。SQLServer 提供了 25 种数据类型:
·Binary [(n)]
·Varbinary [(n)]
·Char [(n)]
·Varchar[(n)]
·Nchar[(n)]
·Nvarchar[(n)]
·Datetime
·Smalldatetime
·Decimal[(p[,s])]
·Numeric[(p[,s])]
·Float[(n)]
·Real
·Int
·Smallint
·Tinyint
·Money
·Smallmoney
·Bit
·Cursor
·Sysname
·Timestamp
·Uniqueidentifier
·Text
·Image
·Ntext
(1)二进制数据类型
二进制数据包括 Binary、Varbinary 和 Image
Binary 数据类型既可以是固定长度的(Binary),也可以是变长度的。
Binary[(n)] 是 n 位固定的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储窨的大小是 n + 4 个字节。
Varbinary[(n)] 是 n 位变长度的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储窨的大小是 n + 4个字节,不是n 个字节。
在 Image 数据类型中存储的数据是以位字符串存储的,不是由 SQL Server 解释的,必须由应用程序来解释。例如,应用程序可以使用BMP、TIEF、GIF 和 JPEG 格式把数据存储在 Image 数据类型中。
(2)字符数据类型
字符数据的类型包括 Char,Varchar 和 Text
字符数据是由任何字母、符号和数字任意组合而成的数据。
Varchar 是变长字符数据,其长度不超过 8KB。Char 是定长字符数据,其长度最多为 8KB。超过 8KB 的ASCII 数据可以使用Text数据类型存储。例如,因为 Html 文档全部都是 ASCII 字符,并且在一般情况下长度超过 8KB,所以这些文档可以 Text 数据类型存储在SQL Server 中。
(3)Unicode 数据类型
Unicode 数据类型包括 Nchar,Nvarchar 和Ntext
在 Microsoft SQL Server 中,传统的非 Unicode 数据类型允许使用由特定字符集定义的字符。在 SQL Server安装过程中,允许选择一种字符集。使用 Unicode 数据类型,列中可以存储任何由Unicode 标准定义的字符。在 Unicode 标准中,包括了以各种字符集定义的全部字符。使用Unicode数据类型,所战胜的窨是使用非 Unicode 数据类型所占用的窨大小的两倍。
在 SQL Server 中,Unicode 数据以 Nchar、Nvarchar 和 Ntext 数据类型存储。使用这种字符类型存储的列可以存储多个字符集中的字符。当列的长度变化时,应该使用Nvarchar 字符类型,这时最多可以存储 4000 个字符。当列的长度固定不变时,应该使用 Nchar 字符类型,同样,这时最多可以存储4000 个字符。当使用 Ntext 数据类型时,该列可以存储多于 4000 个字符。
(4)日期和时间数据类型
日期和时间