sql server 2008 数据库数据类型
一、数值型
- int:整数类型,它的精度由执行机构确定。。
- smallint:短整数类型,它的精度由执行机构确定。。
- numeric(p,s):数值型,并给定精度p(总的有效位)或标度s(十进制小数点右边的位数)。
- float:浮点型数值型,其精度等于或大于给定的精度p。
- eral:浮点数值型,它的精度由执行机构确定。。
- double:双精度浮点型,它的精度由执行机构确定。
二、字符类型
1.char:char存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间。
2.VARCHAR:存储变长数据,但存储效率没有CHAR高。如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。
区别: varchar比char节省空间,但在效率上比char差一些。
varchar是可变字符串,比如:用varchar(5)存储字符串“abc”,只占用3个字节的存储空间,而用char(5)存储,则占用5个字节(“abc ”)。
3.NCHAR、NVARCHAR:从名字上看比前面三种多了个“N”。它表示存储的是Unicode数据类型的字符。我们知道字符 中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这 种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。
区别:varchar按字节存储数据
varchar(6),最多能存储6个字节的数据,比如:“哈哈哈”,“abcdef”......
nvarchar按字符存储数据
nvarchar(6),最多能存储6个字符/中文数据,比如:"哈哈哈哈哈哈",“abcdef”......
nvarchar(m)最大存储的实际字节长度=n*m(n跟据编码方式而定),如果nvarchar存储的是英文字符,也是根据编码方式存储n的字节长度。也就是说,如果用nvarchar存储英文字符,会浪费一半以上的存储空间....
正常情况下,我们使用varchar也可以存储中文字符,但是如果遇到操作系统是英文操 作系统并且对中文字体的支持不全面时, 在SQL Server存储中文字符为varchar就会出现乱码(显示为??).而且正常情况下,主机都会支持中文的环境,所以如果使用varchar来存储数 据,在开发阶段是发现不了的.多数情况下,在布署的时候也不会有问题.如果布署的主机是英文操作系统,并且不支持中文环境,那问题就出来了.
三、位串型
1.bit(n):定义二进制位串,长度为n。
2.bit varying(n):可变长二进制位串,最大长度为n。
四、时间型
datetime:定义一个日期类型,日期和时间数据由有效的日期或时间组成。
五、布尔型
boolean:定义布尔数,其值可以是true或false。