几种常见数据类型
Unicode 字符数据。 长度:1~4,000 nvarchar 意义:可变长Unicode 字符数据。 长度:1~4,000 ntext 意义:可变长度 Unicode 数据 。 长度:1~230 - 1 (1,073,741,823)
nchar与nvarchar
关于Unicode
问:什么是Unicode? 答:Unicode给每个字符提供了一个唯一的数字,不论是什么平台,不论是什么程序,不论什么语言。 问:为什么使用Unicode? 答:基本上,计算机只是处理数字。它们指定一个数字,来储存字母或其他字符。在创造Unicode之 前,有数百种指定这些数字的编码系统。没有一个编码可以包含足够的字符:例如,单单欧州共同体 就需要好几种不同的编码来包括所有的语言。即使是单一种语言,例如英语,也没有哪一个编码可以 适用于所有的字母,标点符号,和常用的技术符号。这些编码系统也会互相冲突。也就是说,两种编 码可能使用相同的数字代表两个不同的字符,或使用不同的数字代表相同的字符。任何一台特定的计 算机(特别是服务器)都需要支持许多不同的编码,但是,不论什么时候数据通过不同的编码或平台 之间,那些数据总会有损坏的危险。 问:举个例子吧。 答:比如,简体中文(GB)、繁体中文(BIG5)、日文中,“赵”都是一个字,但是编码不同。在 不同的编码下,BIG5的赵是0xBBAF,而0xBBAF在GB里面就被显示为“化”,这就是乱码。而 Unicode采用统一的编码,“赵”只有一个,不必管他在哪种文字里。 问:Unicode的优点是什么? 答:举一个最明显的例子就是Windows 2000/XP以及微软Office2000及其后的产品。因为这些软 件都是Unicode内核,因此,无论何种文字,都可以在上面正常显示,而且是同屏显示。以前,简体 中文的Word文件拿到英文版打开就会是乱码,简体中文的程序在Windows英文版上运行会出现乱码, 而现在一切都解决了。 使用Unicode有什么缺点? 答:使用Unicode时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损 失。
关于GUID
Globally Unique IDentifier的缩写.由一 个特殊的算法来产生这些128位的数,并保证 不产生重复的GUID—重复的可能性当然存 在,但有太多可用的数了,因此算法特别防止 产生重复的数,这种情况你一生都不会看到. GUID的唯一缺陷在于生成的结果串会比较 大。
固定精度和小数位的数字
numeric 意义:精确数字。 长度:- 10^38 +1 ~ 10^38 - 1
时间日期
datetime 意义:时间日期 长度:1753年1月1日~9999年12月31 日的日期和时间数据,精确到百分之三秒 (或 3.33 毫秒)。 smalldatetime 意义:时间日期 长度:1900年1月1日~2079年6月6日的日期和 时间数据,精确到分钟。
nchar和nvarchar的长度都在1到4000之 间,它们的区别在于nchar是定长字符数据, 而nvarchar是变长字符数据。所谓定长就 是长度固定的,当输入的数据长度没有达到 指定的长度时将自动以空格在其后面填充, 使长度达到相应的长度;而变长字符数据则 不会以空格填充。
整数
bigint 意义:整数 长度:-2^63 (-9,223,372,036,854,775,808)~
2^63-1 (9,223,372,036,854,775,807)
int 意义:整数 长度:-2^31 (-2,147,483,648) ~
2^31 - 1 (2,147,483,647)
tinyint 意义:整数 长度:0 ~255 bit 意义:整数 长度:0或1
近似数字
float 意义:用于表示浮点数字数据的近似数字数 据类型。浮点数据为近似值;并非数 据类型范围内的所有数据都能精确地 表示。 长度:-1.79E + 308 到 -2.23E - 308,0 2.23E + 308 到 1.79E + 308
全局唯一标识符
Uniqueidentifier 意义:全局唯一标识符 (GUID)。