数据表是由多个列组成,创建表时必须明确每个列的数据类型,以下列举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
储存有效日期范围是1900/1/1~2079/6/6,精确到分钟。(每个数值占用 4 字节)
二进制类型
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。
网友评论