SQL Server 基础知识/数据类型/数值类型
数据库设计简单地来讲,也就是设计表格的过程。
表格存储的数据是可以理解为一个二维表,由行和列组成。
原则上来讲,一个数据库只需要一个字段,一个数据类型就可以解决所有的问题,但是这样做并不明智,所以一般来讲,一个表格都是由多个字段来组成 ,每个字段也可以由不同的数据类型来组成。
常见的数据类型如下:
一、整数
- bigint
从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。
- int
从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。
- smallint
从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。存储大小为 2 个字节。
- tinyint
从 0 到 255 的整型数据。存储大小为 1 字节。
赋值时,如果给定的值为非整数,则会隐式转换为整数。在转换的过程中,小数位将会被舍弃;
对于整数来说,给定的值转换为整数后超出其范围,将引发溢出异常。
对于bit类型的数据来讲,如果给定的值为0或者空字符串或者空白字符串,则其值为零,其它情况其值为1。
二、非整数
- decimal[(p[, s])] 和 numeric[(p[, s])]
定点精度和小数位数。使用最大精度时,有效值从 - 10^38 +1 到 10^38 - 1。decimal 的 SQL-92 同义词是 dec 和 dec(p, s)。
p(精度)
指定小数点左边和右边可以存储的十进制数字的最大个数。精度必须是从 1 到最大精度之间的值。最大精度为 38。
s(小数位数)
指定小数点右边可以存储的十进制数字的最大个数。小数位数必须是从 0 到 p 之间的值。默认小数位数是 0,因而 0 <= s <= p。最大存储大小基于精度而变化。
精度 | 存储字节数 |
---|---|
1 - 9 | 5 |
10-19 | 9 |
20-28 | 13 |
29-38 | 17 |
- money
货币数据值介于 -2^63 (-922,337,203,685,477.5808) 与 2^63 - 1 (+922,337,203,685,477.5807) 之间,精确到货币单位的千分之十。存储大小为 8 个字节。
- smallmoney
货币数据值介于 -214,748.3648 与 +214.748,3647 之间,精确到货币单位的千分之十。存储大小为 4 个字节。
- float [ ( n ) ]
从 - 1.79E + 308 到 1.79E + 308 之间的浮点数字数据。n 为用于存储科学记数法 float 数尾数的位数,同时指示其精度和存储大小。n 必须为从 1 到 53 之间的值。
n 所在范围 | 精度 | 存储大小 |
---|---|---|
1-24 | 7 位数 | 4 字节 |
25-53 | 15 位数 | 8 字节 |
Microsoft® SQL Server™ float[(n)] 数据类型对于从 1 到 53 之间的所有 n 值均符合 SQL-92 标准。double precision 的同义词为 float(53)。
- real
从 3.40E + 38 到 3.40E + 38 之间的浮点数字数据。存储大小为 4 字节。在 SQL Server 中,real 的同义词为 float(24)。