介绍各种数据类型(data_type);
字符数据类型
- 长度固定:当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度
- 从空间上考虑,用varchar合适;从效率上考虑,用char合适,关键是根据实际情况找到权衡点
- 一般来说,如果含有中文字符,用nchar/nvarchar,如果纯英文和数字,用char/varchar。
类型 | 特点 | 容量 |
---|---|---|
char | 长度固定,8000个英文,4000个汉字 | 1字节 |
varchar | 长度可变,8000个英文,4000个汉字 | 1字节 |
nchar | 长度固定 Unicode编码,存储4000个字符 | 2个字节 [不论是英文还是汉字] |
nvarchar | 长度可变 Unicode编码,存储4000个字符 | 2个字节 [不论是英文还是汉字] |
text | 长度可变 | 1字节 |
ntext | 长度可变 Unicode编码 | 2字节 |
Unicode或非Unicode
数据库中,英文字符只需要一个字节存储就足够了,但汉字和其他众多非英文字符,则需要两个字节存储。如果英文与汉字同时存在,由于占用空间数不同,容易造成混乱,导致读取出来的字符串是乱码。 Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。而前缀n就表示Unicode字符,比如nchar,nvarchar,这两种类型使用了Unicode字符集。
数值类型
数据类型 | 说明 | 大小 |
---|---|---|
Bit | 1或0 | 1位 |
Tinyint | 0~255整数 | 1字节 |
Smallint | -32,768~32,767 整数 | 2字节 |
Int | -2,147,483,648~2,147,483,647 整数 | 4字节 |
Bigint | -2$^{63}$ ~ 2$^{63}$-1 的整数 | 8字节 |
Decimal / Numeric | -10$^{38}$ +1 的固定精度数值 | 根据长度而变化 |
Money | -2$^{63}$ ~ 2$^{63}$-1 的数值,精确到万分之一 | 8字节 |
SmallMoney | -2,147,483,648~2,147,483,647 的数值,精确到万分之一 | 4字节 |
近似数据类型
DATA TYPE | FROM | TO |
---|---|---|
Float | -1.79E+308 ~1.79E+308 的浮点数值 | 4或8字节 |
Real | 24位精度的浮点值 | 4字节 |
0(默认值) | 最多包含 6 位。 根据需要使用科学记数法。 |
---|---|
1 | 始终为 8 位值。 始终使用科学记数法。 |
2 | 始终为 16 位值。 始终使用科学记数法 |
浮点数:伴随着因为无法精确表示而进行的近似或舍入。
在计算机科学中,浮点(英语:floating point,缩写为FP)是一种对于实数的近似值数值表现法,由一个有效数字(即尾数)加上幂数来表示,通常是乘以某个基数(计算机中通常是2)的整数次指数得到。以这种表示法表示的数值,称为浮点数。这种表示方法类似于基数为10的科学计数法。
浮点指的是带有小数的数值。
大部分计算机采用二进制(b=2)的表示方法。位(bit)是衡量浮点数所需存储空间的单位,通常为32位或64位,分别被叫作单精度和双精度。
日期和时间数据
数据类型 | 说明 | 字符大小 |
---|---|---|
Datetime | 1553年1月1日开始至9999年;Jan 1, 1753,精度3毫秒 | 8字节 |
Smalldatetime | 1900年至2079年6月6日;精度1分钟 | Jun 6, 2079 |
Date | 0001年至9999年; | 3字符 |
Time(2) | 时间值,精度可变 | 3-5字节 |
Datetime(2) | 0001年至9999年,精度可变,从0.01秒到100纳秒 | 6-8字节 |
Datetimeoffset |
二进制类型
杂项数据类型
DATA TYPE | Description |
---|---|
sql_variant | Stores values of various SQL Server-supported data types, except text, ntext, and timestamp. |
timestamp | Stores a database-wide unique number that gets updated every time a row gets updated |
uniqueidentifier | Stores a globally unique identifier (GUID) |
xml | Stores XML data. You can store xml instances in a column or a variable (SQL Server 2005 only). |
cursor | Reference to a cursor object |
table | Stores a result set for later processing |