Loading

SQL Server 常见数据类型使用规则

列举 SQL Server 中的常见数据类型使用规则,方便查阅。

整数类型

  • int - 存储范围是 -2,147,483,648 到 2,147,483,647 之间的整数,主键列常设置此类型。(内存占用 4 字节)
  • smallint - 存储范围是 -32,768 到 32,767 之间的整数,用来存储限定在特定数值范围内的数据。(内存占用 2 字节)
  • tinyint - 存储范围是 0 到 255 之间的整数,用来存储有限数目的数值。(内存占用 1 字节)
  • bigint - 存储范围是 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 之间的整数。(每个数值占用 8 字节)
  • bit -  值只能是 0 或 1,当输入 0 以外的其他值时,系统均把它们当 1 看待。常用来表示真假、男女等二值选择。

数值类型

  • decimal(p,s) - p 为精度(有效位),表示可储存数值的最大位数,小数点左右两侧都包括在内,默认最大位为 38 位;s 为小数位数,标识小数点后  面所能储存的最大位数,默认最小位为 0 位。如:123.45,则 p=5,s=2(内存占用取决于精度 p)
  • numeric(p,s) -  numeric 和 decimal 是功能相同的,同是用来保存精度可变的浮点型数据。
  • float - 浮点型,它是一种近似数值类型,float(n) 可储存 1-53 的可变精度浮点数值。(内存占用取决于精度n)
  • money - 货币型,能存储从-9220 亿到 9220 亿之间的数据,精确到小数点后四位。(内存占用 8 字节) 

日期时间

  • datetime - 储存有效日期范围是1753/1/1~9999/12/31,可精准到 3.33 毫秒。(内存占用 8 字节)
  • smalldatetime - 货币型,能存储从 -9220 亿到 9220 亿之间的数据,精确到小数点后四位。(内存占用 8 字节) 

二进制类型

  • image - 虽然类型名为 image,实际上它可以保存任何二进制数据,该类型不常用,了解一下。

字符串类型

  • char(m) - 固定长度字符串,长度为 m。
  • nchar(m) - 国际化固定长度字符串,长度为 m。
  • varchar(m) - 可变长度字符串,最大长度为m,且必须是一个介于 1 和 8,000 之间的数值。
  • nvarchar(m) - 国际化可变长度字符串,最大长度为m, 且必须是一个介于 1 和 4,000 之间的数值。
  • text - 可变长度字符串,最大长度为 231 - 1个字节。
  • ntext - 国际化可变长度字符串,最大长度为 230 - 1个字符。

国际化就是通用与标准。char、varchar、text 储存的字符是基于 ASCII 编码格式,对于其他编码格式的字符可能会造成存储问题。Unicode 字符集(万国码)就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。nchar、 nvarchar、ntext 存储的正是 Unicode 编码格式的字符。所以一般来说,如果含有中文字符,用 nchar、nvarchar、ntext, 如果只含英文字符,就用 char、varchar、text。

posted @ 2015-10-06 21:57  Esofar  阅读(17856)  评论(1编辑  收藏