Mssql中一些常用数据类型的说明和区别

Mssql中一些常用数据类型的说明和区别

1、bigint
  占用8个字节的存储空间,取值范围在-2^63 (-9,223,372,036,854,775,808) 到 2^63-1 (9,223,372,036,854,775,807)之间的19位整数,对应C#中的Int64/long

2、int
  占用4个字节的存储空间,取值范围在-2^31 (-2,147,483,648) 到 2^31-1 (2,147,483,647)之间的10位整数,对应C#中的Int32/int

3、smallint
  占用2个字节的存储空间,取值范围在-2^15(-32768)到2^15-1(32767)之间的5位整数,对应C#中的Int16/short

4、tinyint
  占用1个字节的存储空间,取值范围在0-255之间的整数,对应C#中的Byte/byte

5、bit
  最大占用1个字节的存储空间,取值0/1(false/true),对应C#中的Boolean

6、char(n)

      固定长度,非Unicode字符串数据,存储长度为1-8000字节,一般用来存储长度一直或长度差异较小的数据项。n为自定义可存储的最大长度。

例如定义数据列的类型为char(5),当存储的数为123、abcd、12345时,它们所占用的存储空间都是5个字节的空间

7、varchar(n|max)
      非固定长度,非Unicode字符串数据,存储长度为1-8000字节,一般用来存储长度差异较大的数据项。n为自定义可存储的最大长度。

  例如定义数据列的类型为varchar(5), 当存储的数为123、abcd、12345时,它们所占用的存储空间依次为3、4、5个字节的空间(实际存储空间要+2个字节)。

  当n为max时,最大存储长度为2^31-1个字节

  来自msdn的建议:

  • 如果列数据项的大小一致,则使用 char
  • 如果列数据项的大小差异相当大,则使用 varchar
  • 如果列数据项大小相差很大,而且大小可能超过 8,000 字节,请使用 varchar(max)

8、nchar/nvarchar

  区别于char/varchar,nchar和nvarchar可存储Unicode字符,比如汉字

  英文字符在数据库中存储时占用1个字节,中文和其他一些非英文字符则占用两个字节,如果在char或者varchar中存储中文字符,在非中文的操作系统中显示为乱码??,为了解决这种问题就产生了nchar和nvarchar两种数据类型

  在nchar和nvarchar中无论是中文还是英文字符都是占用两个字节,所以最多能存储4000个字符

9、text/ntext/image类型

  分别用于存储大型非 Unicode 字符、Unicode 字符及二进制数据的固定长度数据类型和可变长度数据类型,微软表示在未来的mssql版本中将会删除这三种类型,建议使用varchar(max)/nvarchar(max)和varbinary(max)代替

 其他的后面再写,若有不当之处,烦请各位拍砖!

posted @ 2016-05-12 16:56  起个名字真是难  阅读(480)  评论(0编辑  收藏  举报