2024年6月12日发(作者:)
Sql server数据类型汇总
2.1 数据类型
2.2.1 整形
整形按其存储区间又分为int、tinyint、smallint、bigint四种类型,其中int是最常用的
类型。
1 int
int类型存储从-2^31~2^31-1之间的所有正负整数。每个int类型占4个字节空间。
2 tinyint
tinyint存储从0~255之间所有正整数。每个tinyint类型占1个字节空间
3 smallint
smallint存储从-2^15~2^15-1之间的所有正负整数。每个smallInt类型占2个字节的空
间。
4 bigint
bigint存储从-2^63~2^63-1之间的所有正负整数。每个bigint类型占8个字节的空间。
2.2.2 浮点型
1 real
可以精确到小数点后7位小数,每个real类型占4个字节。
2 float
可以精确到小数点后15位小数,每个float类型占8个字节。
3 decimal
decimal可以指定小数点后的位数,具体声明方法为decimal(w,d),其中i代表变量全部
的位数,d代表小数的位数。如这样声明一个变量v(15,5),就代表这个变量整体长度15位,
小数点后有5位,很明显,整数部分应该是10位。
4 numeric
这个类型和decimal一模一样。
2.2.3 字符型
字符型变量是用来存储字母、数字符号、特殊符号等,在T-SQL中,字符型数据要用一
对英文单引号(‘’)引起,如’sql server 2005’。字符型数据声明的时候就需要给它指定长度,如
char(5),char是类型,5是数据长度。
1 char
Char类型存储的均为ANSI字符,其中每个字符占一个字节,n的最大长度为8000。Char
定义的数据固定长度,若实际数据长度不够定义长度,会在数据后面自动补齐空格。若超出
定义长度,则截断超出的部分。如定义一个char型变量PhoneNumber(11),若有个电话号
码是123456六位,那么PhoneNumber=’123456’,依然是11位。
2 Nchar
与char的大部分属性均相似,唯一不同就是,nvhar存储的是unicode类型的字符,每
个字符占两个字节,所以n的最大长度只能是4000。还有一个不同点是,nchar数据赋值的
时候,需要有个N。如p=N’sql server 2005’。
3 Varchar
与char的大部分属性相同,唯一不同的是,一个varchar类型的变量的实际长度并不是
定义时候的长度,而是其实际长度,也就是说,和char比较,varchar减少了在字符末尾补
空格的这么个过程。如定义一个varchar型变量PhoneNumber(11),若有个电话号码是123456
六位,那么PhoneNumber=’123456’,现在这个varchar类型数据的长度就不是11位了,而
是6位。
4 nvarchar
与nchar类似,但与nchar不同的地方也是实际长度不取决于声明长度。
所以,在事先确定一系列数据的长度时,应该选择用char型或者nchar型。如国内邮
政编码。应该用char存储。这样效率会稍微高些,而对于那些事先不知道数据长度的列,
应该以varchar存储。
另外,在事先确认所存储的数据均为ANSI类型数据时,应该采取char或者varchar类
型存储,再不知情的情况下,应采取nchar或者nvarchar存储。这样能够保证在跨语言系统
使用数据时不会发生乱码。
2.2.4 布尔型
1 bit
bit类型是T-SQL的布尔类型,其数据占一个字节,值为0或者1,若为0和1以外的任
何值,则视为1。
2.2.5 二进制类型
1 binary
与char类型相似,不同的是,存储的字符均为二进制类型,以“0x”开头。
2 Varbinar
与varchar类型类似,不同的是,存储的字符均为二进制类型,以“0x”开头。
2.2.6 文本和图像类型
1 text
text类型用来存储大容量字符数据,理论上可以存储2^31-1个字节的字符数。每个字
符均为ANSI编码。常见的如新闻文章内容,一般采取这种类型存储。
2 ntext
ntext存储的是unicode类型的字符,故其理论容量上限为2^30-1个字节。
3 image
与text类型类,不同的是,存储的字符均为二进制类型,以“0x”开头。
4 varchar(max)
varchar(max)的存储能力和text一样,但是,其有两个重要优势。第一、这些大值数据
和sql server的基本类型varchar一样,能够很好的提高查询效率。第二、以往对varchar的
一切函数如len等均不能使用在text上,而在varchar(max)均能使用,大大增加了数据的灵
活性。
5 nvarchar(max)
与varchar(max)类似,只是存储的字符为unicode类型的,故容量为2^30-1个字节。
6 varbinary(max)
与varchar(max)类型类似,不同的是,存储的字符均为二进制类型,以“0x”开头。
2.2.7 日期
1 datetime
datetime类型是日期和时间的结合体。每个datetime类型数据占8个字节。存储时间
范围从1753年到9999年,跨度很大。并且能够精确到三百分之一秒。
2 smalldatetime
smalldatetime类型数据占4个字节,存储时间范围从1900年到2079年,跨度小,并
且其职能精确到分钟,以30秒为界进行四舍五入。如22:28:30,则smalldatetime类型的时
间显示为22:29:00。
2.2.8 特殊类型
1 money
存储的位小数点后4位的decimal类型的数据,取值范围从-2^63~2^63-1,每个money
类型数据占8个字节。
2 smallmoney
smallmoney与money类型相同,不同的是其取值范围更小,为-2^31~2^31-1,并且每
个smallmoney类型的数据占4个字节。
3 timestamp
timestamp是一个二进制的数,相当于binary(8)或者varchar(8),其代表整个数据库中唯
一的一个数值。相当于数据库的全局变量。
发布评论