在本教程中,将学习整数数据类型以及如何有效地使用它们在数据库中存储整数值。
SQL Server支持标准SQL整数类型,包括:BIGINT
,INT
,SMALLINT
和TINYINT
。 下表说明了每种整数类型的范围和存储:
数据类型 | 数值范围 | 存储 |
---|---|---|
BIGINT | -2^63 至 2^63 -1 |
8位 |
INT | -2^31 至 2^31 -1 |
4位 |
SMALLINT | -2^15 至 2^15 -1 |
2位 |
TINYINT | 0 至 255 |
1位 |
最好使用可以可靠地包含所有可能值的最小整数数据类型。 例如,要存储一个家庭中的孩子数量,TINYINT
类型就足够了,因为现在没有人可以拥有超过255
个孩子。 然而,TINYINT
不足以存储建筑物数量,因为建筑物数量可以有超过255
个。
SQL Server整型示例
以下语句创建一个由四个整数列组成的新表:
CREATE TABLE test.sql_server_integers (
bigint_col bigint,
int_col INT,
smallint_col SMALLINT,
tinyint_col tinyint
);
以下INSERT语句将:BIGINT
,INT
,SMALLINT
和TINYINT
数据类型的最大整数添加到表的相应列:
INSERT INTO test.sql_server_integers (
bigint_col,
int_col,
smallint_col,
tinyint_col
)VALUES(
9223372036854775807,
2147483647,
32767,
255
);
要显示存储在test.sql_server_integers
表中的值,请使用以下SELECT
语句:
SELECT
bigint_col,
int_col,
smallint_col,
tinyint_col
FROM
test.sql_server_integers;
转换整数数据
SQL Server中将2,147,483,647
的整数常量转换为DECIMAL
数据类型,而不是BIGINT
数据类型,如以下示例所示:
SELECT 2147483647 / 3 AS r1,
2147483649 / 3 AS r2;
查询示例显示超过阈值时,结果的数据类型从INT
更改为DECIMAL。
在本教程中,学习了各种SQL Server整数数据类型以及如何使用它们在数据库中存储整数。