SQL Server 提供的数据类型主要有六大类,即
- 精确数据类型
- 近似数据类型
- 日期和时间数据类型
- 字符串数据类型 Unicode
- 字符串数据类型
- 二进制字符串数据类型。
1.精确数据类型
(1)整型数据
数 据 类 型 | 范 围 | 存 储 |
bigint | -2E63 ~2E63-1 | 8 字节 |
int | -2E31 ~2E31-1 | 4 字节 |
smallint | -32768 ~32767 | 2 字节 |
tinyint | 0 ~255 | 1 字节 |
(2)浮点数据 decimal和 numeric是带固定精度和小数位数的数值数据类型。
(3)货币类型 money与smallmoney是货币或货币值的数据类型,其中money类型的数据占用8字节,smallmoney类型的数据占用4字节。
(4)逻辑数据类型 bit是逻辑数据类型,只占用1个字节的存储空间,其值为“0”和“1”。只要输入的值为非“0”,系统都会当作“1”处理。
2.近似数据类型
近似数据类型用于表示浮点数值数据的大致数值。
近似数据类型包括float和real两种。
float的格式为float [(n)],其中 n 为用于存储 float 数值尾数的位数,以科学记数法表示,因此可以确定精度和存储大小。如果指定了n,则它必须是介于 1 和 53 之间的某个值,n 的默认值为 53。
real类型占用的存储空间为4字节。
3.日期和时间数据类型
datetime和smalldatetime是用于表示某天的日期和时间的数据类型。
SQL Server 2005数据库用两个 4 字节的整数内部存储 datetime 数据类型的值。第一个 4 字节存储“基础日期”(即 1900 年 1 月 1 日)之前或之后的天数。另外一个 4 字节存储天的时间,以午夜后经过的 1/300 秒数表示。smalldatetime 数据类型存储天的日期和时间,但精确度低于 datetime。数据库引擎将 smalldatetime 值存储为两个 2 字节的整数,第一个 2 字节存储 1900 年 1 月 1 日后的天数,另外一个 2 字节存储午夜后经过的分钟数。
4.字符串数据类型
数据类型 | 说明 |
CHAR[(n)] | 表示单字节,有固定长度的字符串,其中n为字符串内的字符个数。n的最大值为8000。如果省略了n,那么字符串的长度就假定为1。 |
VARCHAR[(n)] | 表示单字节的字符可变长度的字符串(0<n<=8000)。和CHAR数据类型相反,VARCHAR数据值能够在它的实际长度中保存,是一种可变长度的字符数据类型。其中n 的取值范围为 1 至 8000,max 代表最大存储大小是 2E31-1个字节。 |
NCHAR[(n)] | 保存固定长度的Unicode字符。CHAR和NCHAR数据类型之间最主要的区别为NCHAR数据类型的每个字符都可以用2个字节保存。而CHAR数据类型的每个字符只用1个字节的存储空间。因此,NCHAR列中字符的个数最多维4000。 |
NVARCHAR[(n)] | 保存具有可变长度的Unicode字符串。VARCHAR和NVARCHAR数据类型之间的最主要区别为每个NVARCHAR字符都能用2个字节保存。而VARCHAR字符只用1个字节的存储空间。NVARCHAR列中的字符个数最多为4000。 |
5. Unicode 字符串数据类型
Unicode 字符串数据类型包括ntext,nchar和nvarchar三种类型。
ntext是长度可变的Unicode 字符串数据类型,存储大小 是所输入字符个数的两倍(以字节为单位)。
nchar是长度固定的Unicode字符串数据类型,格式为nchar [(n)],其中的n 值必须在 1 到 4 000 之间(含),存储大小为两倍n字节。
nvarchar是长度可变的Unicode字符串数据类型,格式为 nvarchar [(n | max)],其中的n 值在 1 到 4 000 之间(含), max 指示最大存储大小为 2E31-1个字节,存储大小是所输入 字符个数的两倍加两个字节。
6、二进制字符串数据类型
Unicode 二进制数据类型包括binary,image和varbinary三种类型。binary是固定长度的二进制数据,varbinary是可变长度的二进制数据,两种数据类型都可用来存储二进制数。image是长度可变的二进制数据,用来存储图像数据。
需要表也可以留言,截图截不下来,常用的数据类型不会很多,很多分类方式也将其分为
数值数据类型,字符数据类型,临时数据类型,混合型数据类型,但要熟悉常用的几种即可。
如何使用数据类型,请看下一篇文章。